]> git.lizzy.rs Git - rust.git/commitdiff
`std::ptr::read_ptr` now takes `*T` instead of `*mut T`
authorZiad Hatahet <hatahet@gmail.com>
Thu, 21 Nov 2013 19:31:58 +0000 (11:31 -0800)
committerZiad Hatahet <hatahet@gmail.com>
Thu, 21 Nov 2013 19:31:58 +0000 (11:31 -0800)
Closes #10579

src/libstd/ptr.rs
src/libstd/vec.rs

index 887f7f2e9a6310ea4743c691235c11478d0df664..9f60c3a32b266717b6c0162643c974a44fe8efb2 100644 (file)
@@ -155,7 +155,7 @@ pub unsafe fn replace_ptr<T>(dest: *mut T, mut src: T) -> T {
  * Reads the value from `*src` and returns it. Does not copy `*src`.
  */
 #[inline(always)]
-pub unsafe fn read_ptr<T>(src: *mut T) -> T {
+pub unsafe fn read_ptr<T>(src: *T) -> T {
     let mut tmp: T = intrinsics::uninit();
     copy_nonoverlapping_memory(&mut tmp, src, 1);
     tmp
@@ -168,7 +168,7 @@ pub unsafe fn read_ptr<T>(src: *mut T) -> T {
 #[inline(always)]
 pub unsafe fn read_and_zero_ptr<T>(dest: *mut T) -> T {
     // Copy the data out from `dest`:
-    let tmp = read_ptr(dest);
+    let tmp = read_ptr(&*dest);
 
     // Now zero out `dest`:
     zero_memory(dest, 1);
index 2bd6a00ed4a0e3e7c9aa9013173a4d110d2017a6..079d8adae58e2161a9535464558861d6d14bf70c 100644 (file)
@@ -1527,7 +1527,7 @@ fn pop_opt(&mut self) -> Option<T> {
                 let valptr = ptr::to_mut_unsafe_ptr(&mut self[ln - 1u]);
                 unsafe {
                     raw::set_len(self, ln - 1u);
-                    Some(ptr::read_ptr(valptr))
+                    Some(ptr::read_ptr(&*valptr))
                 }
             }
         }