]> git.lizzy.rs Git - rust.git/commitdiff
std::vec: make init_elem nicer by doing fewer moves.
authorHuon Wilson <dbau.pp+github@gmail.com>
Mon, 16 Dec 2013 21:33:50 +0000 (08:33 +1100)
committerHuon Wilson <dbau.pp+github@gmail.com>
Mon, 16 Dec 2013 21:36:04 +0000 (08:36 +1100)
src/libstd/vec.rs

index 2a0f575cddec9e5552c7376e06fda20c627eff1a..8722109736cfe925a3ea368c82043bed1a798b44 100644 (file)
@@ -2196,11 +2196,7 @@ unsafe fn unsafe_set(self, index: uint, val: T) {
 
     #[inline]
     unsafe fn init_elem(self, i: uint, val: T) {
-        let mut alloc = Some(val);
-        self.as_mut_buf(|p, _len| {
-            intrinsics::move_val_init(&mut(*ptr::mut_offset(p, i as int)),
-                                      alloc.take_unwrap());
-        })
+        intrinsics::move_val_init(&mut (*self.as_mut_ptr().offset(i as int)), val);
     }
 
     #[inline]