mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-25 00:00:22 +02: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> {
|
fn try_unsplit(&mut self, other: BytesMut) -> Result<(), BytesMut> {
|
||||||
if other.is_empty() {
|
if other.capacity() == 0 {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -784,6 +784,31 @@ fn bytes_mut_unsplit_empty_self() {
|
|||||||
assert_eq!(b"aaabbbcccddd", &buf[..]);
|
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]
|
#[test]
|
||||||
fn bytes_mut_unsplit_arc_different() {
|
fn bytes_mut_unsplit_arc_different() {
|
||||||
let mut buf = BytesMut::with_capacity(64);
|
let mut buf = BytesMut::with_capacity(64);
|
||||||
|
|||||||
Reference in New Issue
Block a user