From 9425e304b13e5cfc6f5d36f0a872fc8313da40aa Mon Sep 17 00:00:00 2001 From: Caleb Sander Date: Mon, 28 Dec 2020 15:45:36 -0500 Subject: [PATCH] Avoid unnecessary Vec construction in BufReader --- library/std/src/io/buffered/bufreader.rs | 7 +++---- library/std/src/lib.rs | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/std/src/io/buffered/bufreader.rs b/library/std/src/io/buffered/bufreader.rs index 987371f50ec22..152bd34ffbaf2 100644 --- a/library/std/src/io/buffered/bufreader.rs +++ b/library/std/src/io/buffered/bufreader.rs @@ -90,10 +90,9 @@ impl BufReader { #[stable(feature = "rust1", since = "1.0.0")] pub fn with_capacity(capacity: usize, inner: R) -> BufReader { unsafe { - let mut buffer = Vec::with_capacity(capacity); - buffer.set_len(capacity); - inner.initializer().initialize(&mut buffer); - BufReader { inner, buf: buffer.into_boxed_slice(), pos: 0, cap: 0 } + let mut buf = Box::new_uninit_slice(capacity).assume_init(); + inner.initializer().initialize(&mut buf); + BufReader { inner, buf, pos: 0, cap: 0 } } } } diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs index ba49dee38e642..f62fb83533ca2 100644 --- a/library/std/src/lib.rs +++ b/library/std/src/lib.rs @@ -289,6 +289,7 @@ #![feature(needs_panic_runtime)] #![feature(negative_impls)] #![feature(never_type)] +#![feature(new_uninit)] #![feature(nll)] #![feature(nonnull_slice_from_raw_parts)] #![feature(once_cell)]