mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-23 00:00:13 +02:00
Fix: From<BytesMut> fo Vec<u8> implementation (#554)
Signed-off-by: Jiahao XU <[email protected]>
This commit is contained in:
+6
-5
@@ -1550,18 +1550,19 @@ impl From<BytesMut> for Vec<u8> {
|
|||||||
rebuild_vec(bytes.ptr.as_ptr(), bytes.len, bytes.cap, off)
|
rebuild_vec(bytes.ptr.as_ptr(), bytes.len, bytes.cap, off)
|
||||||
}
|
}
|
||||||
} else if kind == KIND_ARC {
|
} else if kind == KIND_ARC {
|
||||||
let shared = unsafe { &mut *(bytes.data as *mut Shared) };
|
let shared = bytes.data as *mut Shared;
|
||||||
if shared.is_unique() {
|
|
||||||
let vec = mem::replace(&mut shared.vec, Vec::new());
|
if unsafe { (*shared).is_unique() } {
|
||||||
|
let vec = mem::replace(unsafe { &mut (*shared).vec }, Vec::new());
|
||||||
|
|
||||||
unsafe { release_shared(shared) };
|
unsafe { release_shared(shared) };
|
||||||
|
|
||||||
vec
|
vec
|
||||||
} else {
|
} else {
|
||||||
return bytes.deref().into();
|
return bytes.deref().to_vec();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return bytes.deref().into();
|
return bytes.deref().to_vec();
|
||||||
};
|
};
|
||||||
|
|
||||||
let len = bytes.len;
|
let len = bytes.len;
|
||||||
|
|||||||
Reference in New Issue
Block a user