diff --git a/src/vec-raw.md b/src/vec-raw.md index 897d6cc..94410d1 100644 --- a/src/vec-raw.md +++ b/src/vec-raw.md @@ -58,7 +58,14 @@ impl Drop for RawVec { fn drop(&mut self) { if self.cap != 0 { unsafe { - alloc::dealloc(self.ptr.as_ptr() as *mut u8, alloc::Layout::new::()); + let align = mem::align_of::(); + let elem_size = mem::size_of::(); + let num_bytes = elem_size * self.cap; + + alloc::dealloc( + self.buf.as_ptr() as *mut u8, + alloc::Layout::from_size_align_unchecked(num_bytes, align), + ); } } }