mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-07 00:00:13 +02:00
Don't set len in BytesMut::reserve (#682)
A fundamental invariant of `reserve` is that it can extend capacity while the stored data remains the same, even if it's moved to a new allocation. As a result, `len` can never change during a call to `reserve`.
This commit is contained in:
+2
-2
@@ -639,8 +639,8 @@ impl BytesMut {
|
||||
|
||||
// Update the info
|
||||
self.ptr = vptr(v.as_mut_ptr().add(off));
|
||||
self.len = v.len() - off;
|
||||
self.cap = v.capacity() - off;
|
||||
debug_assert_eq!(self.len, v.len() - off);
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -746,8 +746,8 @@ impl BytesMut {
|
||||
let data = (original_capacity_repr << ORIGINAL_CAPACITY_OFFSET) | KIND_VEC;
|
||||
self.data = invalid_ptr(data);
|
||||
self.ptr = vptr(v.as_mut_ptr());
|
||||
self.len = v.len();
|
||||
self.cap = v.capacity();
|
||||
debug_assert_eq!(self.len, v.len());
|
||||
}
|
||||
|
||||
/// Appends given bytes to this `BytesMut`.
|
||||
|
||||
Reference in New Issue
Block a user