diff --git a/src/lib.rs b/src/lib.rs index f9efe3b..d7158f2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -739,11 +739,10 @@ impl Drop for IntoIter { let len = self.v.len(); unsafe { self.v.set_len(0); - let elements = slice::from_raw_parts(self.v.get_unchecked_mut(index), - len - index); - for elt in elements { - ptr::read(elt); - } + let elements = slice::from_raw_parts_mut( + self.v.get_unchecked_mut(index), + len - index); + ptr::drop_in_place(elements); } } }