* 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
#[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);
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))
}
}
}