Auto merge of #27024 - bluss:io-drain, r=alexcrichton

Use Vec::drain in BufWriter

I happened past a comment that asked for functionality that we now have.
This commit is contained in:
bors 2015-07-14 11:13:21 +00:00
commit e4e93196e1
2 changed files with 2 additions and 8 deletions

View file

@ -18,7 +18,6 @@ use cmp;
use error; use error;
use fmt; use fmt;
use io::{self, DEFAULT_BUF_SIZE, Error, ErrorKind, SeekFrom}; use io::{self, DEFAULT_BUF_SIZE, Error, ErrorKind, SeekFrom};
use ptr;
/// The `BufReader` struct adds buffering to any reader. /// The `BufReader` struct adds buffering to any reader.
/// ///
@ -308,14 +307,8 @@ impl<W: Write> BufWriter<W> {
} }
} }
if written > 0 { if written > 0 {
// NB: would be better expressed as .remove(0..n) if it existed self.buf.drain(..written);
unsafe {
ptr::copy(self.buf.as_ptr().offset(written as isize),
self.buf.as_mut_ptr(),
len - written);
}
} }
self.buf.truncate(len - written);
ret ret
} }

View file

@ -119,6 +119,7 @@
#![feature(core_intrinsics)] #![feature(core_intrinsics)]
#![feature(core_prelude)] #![feature(core_prelude)]
#![feature(core_simd)] #![feature(core_simd)]
#![feature(drain)]
#![feature(fnbox)] #![feature(fnbox)]
#![feature(heap_api)] #![feature(heap_api)]
#![feature(int_error_internals)] #![feature(int_error_internals)]