diff --git a/src/arrayvec.rs b/src/arrayvec.rs index 1387e45..24bfb40 100644 --- a/src/arrayvec.rs +++ b/src/arrayvec.rs @@ -590,8 +590,8 @@ impl ArrayVec { Err(self) } else { unsafe { - let array = ptr::read(self.as_ptr() as *const [T; CAP]); - mem::forget(self); + let self_ = ManuallyDrop::new(self); + let array = ptr::read(self_.as_ptr() as *const [T; CAP]); Ok(array) } }