|
@@ -335,16 +335,11 @@ impl RingBuffer {
|
|
|
// The number of bytes to copy from `bytes` to `buffer` between `first_available` and
|
|
|
// `buffer.len()`.
|
|
|
let copy_length_before_wraparound = min(bytes.len(), self.buffer.len() - first_available);
|
|
|
- // The number of bytes to copy from `bytes` to `buffer` after wrapping back around to the
|
|
|
- // start of `buffer`.
|
|
|
- let copy_length_after_wraparound = bytes
|
|
|
- .len()
|
|
|
- .checked_sub(copy_length_before_wraparound)
|
|
|
- .unwrap_or_default();
|
|
|
self.buffer[first_available..first_available + copy_length_before_wraparound]
|
|
|
.copy_from_slice(&bytes[0..copy_length_before_wraparound]);
|
|
|
- self.buffer[0..copy_length_after_wraparound]
|
|
|
- .copy_from_slice(&bytes[copy_length_before_wraparound..]);
|
|
|
+ if let Some(bytes_after_wraparound) = bytes.get(copy_length_before_wraparound..) {
|
|
|
+ self.buffer[0..bytes_after_wraparound.len()].copy_from_slice(bytes_after_wraparound);
|
|
|
+ }
|
|
|
self.used += bytes.len();
|
|
|
|
|
|
true
|