std::ptr::read_ptr now takes *T instead of *mut T

Closes #10579
This commit is contained in:
Ziad Hatahet 2013-11-21 11:31:58 -08:00
parent 760942d7d2
commit 248cb90dfa
2 changed files with 3 additions and 3 deletions

View 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);

View 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))
}
}
}