about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-11-21 09:01:50 +0000
committerbors <bors@rust-lang.org>2014-11-21 09:01:50 +0000
commite583c4d24be2d68d4a0d940fe8639537103b537e (patch)
tree061445d91c04d16f2f97e9175dba5645633b6299
parent2fcbf90d6823000ee9a7fa9c4c214ee6a6041931 (diff)
parent59b3c83a819567a1ca8b7c8535dad5bf73c855b1 (diff)
downloadrust-e583c4d24be2d68d4a0d940fe8639537103b537e.tar.gz
rust-e583c4d24be2d68d4a0d940fe8639537103b537e.zip
auto merge of #18908 : tbu-/rust/pr_mapinplace_fixzerosized, r=alexcrichton
-rw-r--r--src/libcollections/vec.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libcollections/vec.rs b/src/libcollections/vec.rs
index d6a21ef19a2..0777a1a128f 100644
--- a/src/libcollections/vec.rs
+++ b/src/libcollections/vec.rs
@@ -1647,7 +1647,10 @@ impl<T> Vec<T> {
             // Create a `Vec` from our `PartialVecZeroSized` and make sure the
             // destructor of the latter will not run. None of this can panic.
             let mut result = Vec::new();
-            unsafe { result.set_len(pv.num_u); }
+            unsafe {
+                result.set_len(pv.num_u);
+                mem::forget(pv);
+            }
             result
         }
     }