Skip to content

Commit 5b1a40c

Browse files
committed
BufWriter::write* methods now use fewer runtime checks
1 parent 70ba320 commit 5b1a40c

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/libstd/io/buffered.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -722,7 +722,8 @@ impl<W: Write> Write for BufWriter<W> {
722722
self.panicked = false;
723723
r
724724
} else {
725-
Ok(self.write_to_buf(buf))
725+
self.buf.extend_from_slice(buf);
726+
Ok(buf.len())
726727
}
727728
}
728729

@@ -741,7 +742,7 @@ impl<W: Write> Write for BufWriter<W> {
741742
self.panicked = false;
742743
r
743744
} else {
744-
self.write_to_buf(buf);
745+
self.buf.extend_from_slice(buf);
745746
Ok(())
746747
}
747748
}
@@ -758,7 +759,8 @@ impl<W: Write> Write for BufWriter<W> {
758759
self.panicked = false;
759760
r
760761
} else {
761-
self.buf.write_vectored(bufs)
762+
bufs.iter().for_each(|b| self.buf.extend_from_slice(b));
763+
Ok(total_len)
762764
}
763765
}
764766

@@ -1403,7 +1405,11 @@ mod tests {
14031405
// rustfmt-on-save.
14041406
impl Read for ShortReader {
14051407
fn read(&mut self, _: &mut [u8]) -> io::Result<usize> {
1406-
if self.lengths.is_empty() { Ok(0) } else { Ok(self.lengths.remove(0)) }
1408+
if self.lengths.is_empty() {
1409+
Ok(0)
1410+
} else {
1411+
Ok(self.lengths.remove(0))
1412+
}
14071413
}
14081414
}
14091415

0 commit comments

Comments
 (0)