about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCadence Marseille <cadencemarseille@gmail.com>2014-03-16 17:20:44 -0400
committerCadence Marseille <cadencemarseille@gmail.com>2014-03-16 17:20:44 -0400
commit5db7f7ed2413476e2006af6068d1b3a53e00db38 (patch)
tree14c69ef83ce049e373eb646360660696d62e127d
parent7156ded5bcf6831a6da22688d08f71985fdc81df (diff)
downloadrust-5db7f7ed2413476e2006af6068d1b3a53e00db38.tar.gz
rust-5db7f7ed2413476e2006af6068d1b3a53e00db38.zip
Add method Vec<T>::as_mut_ptr()
-rw-r--r--src/libstd/vec_ng.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libstd/vec_ng.rs b/src/libstd/vec_ng.rs
index 7b77a4b60fb..d36617e1924 100644
--- a/src/libstd/vec_ng.rs
+++ b/src/libstd/vec_ng.rs
@@ -415,8 +415,7 @@ impl<T> Vec<T> {
         unsafe { // infallible
             // The spot to put the new value
             {
-                let slice = self.as_mut_slice();
-                let p = slice.as_mut_ptr().offset(index as int);
+                let p = self.as_mut_ptr().offset(index as int);
                 // Shift everything over to make space. (Duplicating the
                 // `index`th element into two consecutive places.)
                 ptr::copy_memory(p.offset(1), &*p, len - index);
@@ -434,9 +433,8 @@ impl<T> Vec<T> {
             unsafe { // infallible
                 let ret;
                 {
-                    let slice = self.as_mut_slice();
                     // the place we are taking from.
-                    let ptr = slice.as_mut_ptr().offset(index as int);
+                    let ptr = self.as_mut_ptr().offset(index as int);
                     // copy it out, unsafely having a copy of the value on
                     // the stack and in the vector at the same time.
                     ret = Some(ptr::read(ptr as *T));
@@ -499,6 +497,11 @@ impl<T> Vec<T> {
     pub fn as_ptr(&self) -> *T {
         self.as_slice().as_ptr()
     }
+
+    #[inline]
+    pub fn as_mut_ptr(&mut self) -> *mut T {
+        self.as_mut_slice().as_mut_ptr()
+    }
 }
 
 impl<T> Mutable for Vec<T> {