Skip to content

Commit a5cc17a

Browse files
committed
io: Simplify BufReader::with_capacity
Use the vec![] macro directly to create a sized, zeroed vector. This should result in a big speedup when creating BufReader, because vec![0; cap] compiles to a memset call, while the previous extend code currently did not.
1 parent 6ac0ba3 commit a5cc17a

File tree

1 file changed

+1
-4
lines changed

1 file changed

+1
-4
lines changed

src/libstd/io/buffered.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ use error;
1919
use fmt;
2020
use io::{self, DEFAULT_BUF_SIZE, Error, ErrorKind, SeekFrom};
2121
use ptr;
22-
use iter;
2322

2423
/// Wraps a `Read` and buffers input from it
2524
///
@@ -63,11 +62,9 @@ impl<R: Read> BufReader<R> {
6362
/// Creates a new `BufReader` with the specified buffer capacity
6463
#[stable(feature = "rust1", since = "1.0.0")]
6564
pub fn with_capacity(cap: usize, inner: R) -> BufReader<R> {
66-
let mut buf = Vec::with_capacity(cap);
67-
buf.extend(iter::repeat(0).take(cap));
6865
BufReader {
6966
inner: inner,
70-
buf: buf,
67+
buf: vec![0; cap],
7168
pos: 0,
7269
cap: 0,
7370
}

0 commit comments

Comments
 (0)