about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbinarycat <binarycat@envs.net>2025-08-17 14:13:05 -0500
committerbinarycat <binarycat@envs.net>2025-08-17 14:13:05 -0500
commitab19755630ea6eb3c2f2a364300380ab01eff923 (patch)
tree8186089e5963faaeaab529b246c62fd315a0cc43
parent425a9c0a0e365c0b8c6cfd00c2ded83a73bed9a0 (diff)
downloadrust-ab19755630ea6eb3c2f2a364300380ab01eff923.tar.gz
rust-ab19755630ea6eb3c2f2a364300380ab01eff923.zip
bufreader::Buffer::backshift: don't move the uninit bytes
previous code was perfectly sound because of MaybeUninit,
but it did waste cycles on copying memory that is
known to be uninitialized.
-rw-r--r--library/std/src/io/buffered/bufreader/buffer.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/library/std/src/io/buffered/bufreader/buffer.rs b/library/std/src/io/buffered/bufreader/buffer.rs
index 574288e579e..9b600cd5575 100644
--- a/library/std/src/io/buffered/bufreader/buffer.rs
+++ b/library/std/src/io/buffered/bufreader/buffer.rs
@@ -122,7 +122,7 @@ impl Buffer {
 
     /// Remove bytes that have already been read from the buffer.
     pub fn backshift(&mut self) {
-        self.buf.copy_within(self.pos.., 0);
+        self.buf.copy_within(self.pos..self.filled, 0);
         self.filled -= self.pos;
         self.pos = 0;
     }