Calculate original capacity only if necessary (#666)

We don't need the original capacity if the shared data is unique, so
let's not calculate it until after that check.
This commit is contained in:
Brad Dunbar
2024-02-06 10:46:49 -08:00
committed by GitHub
parent 47e83056f2
commit c6972d6132
+3 -6
View File
@@ -652,13 +652,7 @@ impl BytesMut {
// Compute the new capacity
let mut new_cap = len.checked_add(additional).expect("overflow");
let original_capacity;
let original_capacity_repr;
unsafe {
original_capacity_repr = (*shared).original_capacity_repr;
original_capacity = original_capacity_from_repr(original_capacity_repr);
// First, try to reclaim the buffer. This is possible if the current
// handle is the only outstanding handle pointing to the buffer.
if (*shared).is_unique() {
@@ -729,6 +723,9 @@ impl BytesMut {
}
}
let original_capacity_repr = unsafe { (*shared).original_capacity_repr };
let original_capacity = original_capacity_from_repr(original_capacity_repr);
new_cap = cmp::max(new_cap, original_capacity);
// Create a new vector to store the data