mirror of
https://github.com/openharmony/third_party_rust_bytes.git
synced 2026-07-18 00:04:34 -04:00
Keep capacity when unsplit on empty other buf (#502)
This commit is contained in:
+1
-1
@@ -819,7 +819,7 @@ impl BytesMut {
|
||||
}
|
||||
|
||||
fn try_unsplit(&mut self, other: BytesMut) -> Result<(), BytesMut> {
|
||||
if other.is_empty() {
|
||||
if other.capacity() == 0 {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
|
||||
@@ -784,6 +784,31 @@ fn bytes_mut_unsplit_empty_self() {
|
||||
assert_eq!(b"aaabbbcccddd", &buf[..]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bytes_mut_unsplit_other_keeps_capacity() {
|
||||
let mut buf = BytesMut::with_capacity(64);
|
||||
buf.extend_from_slice(b"aabb");
|
||||
|
||||
// non empty other created "from" buf
|
||||
let mut other = buf.split_off(buf.len());
|
||||
other.extend_from_slice(b"ccddee");
|
||||
buf.unsplit(other);
|
||||
|
||||
assert_eq!(buf.capacity(), 64);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bytes_mut_unsplit_empty_other_keeps_capacity() {
|
||||
let mut buf = BytesMut::with_capacity(64);
|
||||
buf.extend_from_slice(b"aabbccddee");
|
||||
|
||||
// empty other created "from" buf
|
||||
let other = buf.split_off(buf.len());
|
||||
buf.unsplit(other);
|
||||
|
||||
assert_eq!(buf.capacity(), 64);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn bytes_mut_unsplit_arc_different() {
|
||||
let mut buf = BytesMut::with_capacity(64);
|
||||
|
||||
Reference in New Issue
Block a user