mirror of
https://github.com/openharmony/third_party_rust_bytes.git
synced 2026-07-18 16:24:29 -04:00
Fix regression in Bytes::truncate (#333)
When the length to truncate is greater than the buffer's current length, do nothing instead of clearing the contents.
This commit is contained in:
committed by
Carl Lerche
parent
5012a86462
commit
bad4e1b3ab
+1
-3
@@ -373,9 +373,7 @@ impl Bytes {
|
||||
/// [`split_off`]: #method.split_off
|
||||
#[inline]
|
||||
pub fn truncate(&mut self, len: usize) {
|
||||
if len >= self.len {
|
||||
self.len = 0;
|
||||
} else {
|
||||
if len < self.len {
|
||||
self.len = len;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,6 +312,18 @@ fn split_off_to_at_gt_len() {
|
||||
}).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn truncate() {
|
||||
let s = &b"helloworld"[..];
|
||||
let mut hello = Bytes::from(s);
|
||||
hello.truncate(15);
|
||||
assert_eq!(hello, s);
|
||||
hello.truncate(10);
|
||||
assert_eq!(hello, s);
|
||||
hello.truncate(5);
|
||||
assert_eq!(hello, "hello");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn freeze_clone_shared() {
|
||||
let s = &b"abcdefgh"[..];
|
||||
|
||||
Reference in New Issue
Block a user