diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs index 25a6429d8518..65be214c14ed 100644 --- a/src/libstd/vec.rs +++ b/src/libstd/vec.rs @@ -2673,11 +2673,9 @@ impl DoubleEndedIterator for MoveIterator { #[unsafe_destructor] impl Drop for MoveIterator { fn drop(&mut self) { + // destroy the remaining elements + for _x in *self {} unsafe { - // destroy the remaining elements - for x in self.iter { - ptr::read_ptr(x); - } if owns_managed::() { local_free(self.allocation as *u8 as *c_char) } else {