Browse Source

Refactor suggested in code review.

Andrew Walbran 1 year ago
parent
commit
36785ff1eb
1 changed files with 3 additions and 8 deletions
  1. 3 8
      src/device/socket/multiconnectionmanager.rs

+ 3 - 8
src/device/socket/multiconnectionmanager.rs

@@ -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