Skip to content

Commit 9e9f1fb

Browse files
committed
fix #2
1 parent 298bf06 commit 9e9f1fb

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/buffer.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,9 @@ impl From<Buffer> for Vec<u8> {
192192
let len = buffer.copy_to(&mut slice);
193193

194194
unsafe {
195-
Vec::from_raw_parts(slice.as_mut_ptr(), len, slice.len())
195+
let vec = Vec::from_raw_parts(slice.as_mut_ptr(), len, slice.len());
196+
mem::forget(slice);
197+
vec
196198
}
197199
}
198200
}
@@ -291,4 +293,17 @@ mod tests {
291293
buffer.copy_to(&mut out);
292294
assert!(&out == b"hello world");
293295
}
296+
297+
#[test]
298+
fn vec_from_buffer() {
299+
let mut buffer = Buffer::new();
300+
let bytes = b"hello world";
301+
buffer.push(bytes);
302+
303+
assert!(buffer.len() == bytes.len());
304+
305+
let vec = Vec::from(buffer);
306+
307+
assert!(&vec == bytes);
308+
}
294309
}

0 commit comments

Comments
 (0)