diff options
| author | binarycat <binarycat@envs.net> | 2025-08-17 14:13:05 -0500 |
|---|---|---|
| committer | binarycat <binarycat@envs.net> | 2025-08-17 14:13:05 -0500 |
| commit | ab19755630ea6eb3c2f2a364300380ab01eff923 (patch) | |
| tree | 8186089e5963faaeaab529b246c62fd315a0cc43 | |
| parent | 425a9c0a0e365c0b8c6cfd00c2ded83a73bed9a0 (diff) | |
| download | rust-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.rs | 2 |
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; } |
