Skip to content

Commit 5348f55

Browse files
NobodyXulelongg
authored andcommitted
Fix: From<BytesMut> fo Vec<u8> implementation (tokio-rs#554)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
1 parent 30015c2 commit 5348f55

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/bytes_mut.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1550,18 +1550,19 @@ impl From<BytesMut> for Vec<u8> {
15501550
rebuild_vec(bytes.ptr.as_ptr(), bytes.len, bytes.cap, off)
15511551
}
15521552
} else if kind == KIND_ARC {
1553-
let shared = unsafe { &mut *(bytes.data as *mut Shared) };
1554-
if shared.is_unique() {
1555-
let vec = mem::replace(&mut shared.vec, Vec::new());
1553+
let shared = bytes.data as *mut Shared;
1554+
1555+
if unsafe { (*shared).is_unique() } {
1556+
let vec = mem::replace(unsafe { &mut (*shared).vec }, Vec::new());
15561557

15571558
unsafe { release_shared(shared) };
15581559

15591560
vec
15601561
} else {
1561-
return bytes.deref().into();
1562+
return bytes.deref().to_vec();
15621563
}
15631564
} else {
1564-
return bytes.deref().into();
1565+
return bytes.deref().to_vec();
15651566
};
15661567

15671568
let len = bytes.len;

0 commit comments

Comments
 (0)