diff options
| author | Corey Richardson <corey@octayn.net> | 2014-02-14 18:42:01 -0500 |
|---|---|---|
| committer | Corey Richardson <corey@octayn.net> | 2014-02-15 12:11:41 -0500 |
| commit | 49e11630fa84eefc27a34c39ad28a9afb515c5a1 (patch) | |
| tree | ed7700d5a4ccb1666fc975bc5962a32737f90836 /src/libstd/vec.rs | |
| parent | 3496e93d13590140242f862c905dc2d591d2e2ea (diff) | |
std: clean up ptr a bit
Diffstat (limited to 'src/libstd/vec.rs')
| -rw-r--r-- | src/libstd/vec.rs | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/src/libstd/vec.rs b/src/libstd/vec.rs index cfe2ad5a08a..f8f9f82b657 100644 --- a/src/libstd/vec.rs +++ b/src/libstd/vec.rs @@ -102,6 +102,7 @@ There are a number of free functions that create or take vectors, for example: #[warn(non_camel_case_types)]; use cast; +use cast::transmute; use ops::Drop; use clone::{Clone, DeepClone}; use container::{Container, Mutable}; @@ -112,7 +113,6 @@ use default::Default; use iter::*; use num::{Integer, CheckedAdd, Saturating, checked_next_power_of_two}; use option::{None, Option, Some}; -use ptr::to_unsafe_ptr; use ptr; use ptr::RawPtr; use rt::global_heap::{malloc_raw, realloc_raw, exchange_free}; @@ -188,7 +188,7 @@ pub fn with_capacity<T>(capacity: uint) -> ~[T] { let ptr = malloc_raw(size) as *mut Vec<()>; (*ptr).alloc = alloc; (*ptr).fill = 0; - cast::transmute(ptr) + transmute(ptr) } } @@ -216,7 +216,7 @@ pub fn build<A>(size: Option<uint>, builder: |push: |v: A||) -> ~[A] { */ pub fn ref_slice<'a, A>(s: &'a A) -> &'a [A] { unsafe { - cast::transmute(Slice { data: s, len: 1 }) + transmute(Slice { data: s, len: 1 }) } } @@ -225,8 +225,8 @@ pub fn ref_slice<'a, A>(s: &'a A) -> &'a [A] { */ pub fn mut_ref_slice<'a, A>(s: &'a mut A) -> &'a mut [A] { unsafe { - let ptr: *A = cast::transmute(s); - cast::transmute(Slice { data: ptr, len: 1 }) + let ptr: *A = transmute(s); + transmute(Slice { data: ptr, len: 1 }) } } @@ -991,7 +991,7 @@ impl<'a,T> ImmutableVector<'a, T> for &'a [T] { assert!(start <= end); assert!(end <= self.len()); unsafe { - cast::transmute(Slice { + transmute(Slice { data: self.as_ptr().offset(start as int), len: (end - start) }) @@ -1109,7 +1109,7 @@ impl<'a,T> ImmutableVector<'a, T> for &'a [T] { #[inline] unsafe fn unsafe_ref(self, index: uint) -> &'a T { - cast::transmute(self.repr().data.offset(index as int)) + transmute(self.repr().data.offset(index as int)) } #[inline] @@ -1144,7 +1144,7 @@ impl<'a,T> ImmutableVector<'a, T> for &'a [T] { fn shift_ref(&mut self) -> Option<&'a T> { if self.len() == 0 { return None; } unsafe { - let s: &mut Slice<T> = cast::transmute(self); + let s: &mut Slice<T> = transmute(self); Some(&*raw::shift_ptr(s)) } } @@ -1152,7 +1152,7 @@ impl<'a,T> ImmutableVector<'a, T> for &'a [T] { fn pop_ref(&mut self) -> Option<&'a T> { if self.len() == 0 { return None; } unsafe { - let s: &mut Slice<T> = cast::transmute(self); + let s: &mut Slice<T> = transmute(self); Some(&*raw::pop_ptr(s)) } } @@ -1417,8 +1417,8 @@ impl<T> OwnedVector<T> for ~[T] { #[inline] fn move_iter(self) -> MoveItems<T> { unsafe { - let iter = cast::transmute(self.iter()); - let ptr = cast::transmute(self); + let iter = transmute(self.iter()); + let ptr = transmute(self); MoveItems { allocation: ptr, iter: iter } } } @@ -1432,7 +1432,7 @@ impl<T> OwnedVector<T> for ~[T] { // Only make the (slow) call into the runtime if we have to if self.capacity() < n { unsafe { - let ptr: *mut *mut Vec<()> = cast::transmute(self); + let ptr: *mut *mut Vec<()> = transmute(self); let alloc = n * mem::nonzero_size_of::<T>(); let size = alloc + mem::size_of::<Vec<()>>(); if alloc / mem::nonzero_size_of::<T>() != n || size < alloc { @@ -1463,14 +1463,14 @@ impl<T> OwnedVector<T> for ~[T] { #[inline] fn capacity(&self) -> uint { unsafe { - let repr: **Vec<()> = cast::transmute(self); + let repr: **Vec<()> = transmute(self); (**repr).alloc / mem::nonzero_size_of::<T>() } } fn shrink_to_fit(&mut self) { unsafe { - let ptr: *mut *mut Vec<()> = cast::transmute(self); + let ptr: *mut *mut Vec<()> = transmute(self); let alloc = (**ptr).fill; let size = alloc + mem::size_of::<Vec<()>>(); *ptr = realloc_raw(*ptr as *mut u8, size) as *mut Vec<()>; @@ -1481,7 +1481,7 @@ impl<T> OwnedVector<T> for ~[T] { #[inline] fn push(&mut self, t: T) { unsafe { - let repr: **Vec<()> = cast::transmute(&mut *self); + let repr: **Vec<()> = transmute(&mut *self); let fill = (**repr).fill; if (**repr).alloc <= fill { self.reserve_additional(1); @@ -1493,10 +1493,10 @@ impl<T> OwnedVector<T> for ~[T] { // This doesn't bother to make sure we have space. #[inline] // really pretty please unsafe fn push_fast<T>(this: &mut ~[T], t: T) { - let repr: **mut Vec<u8> = cast::transmute(this); + let repr: **mut Vec<u8> = transmute(this); let fill = (**repr).fill; (**repr).fill += mem::nonzero_size_of::<T>(); - let p = to_unsafe_ptr(&((**repr).data)); + let p = &((**repr).data) as *u8; let p = p.offset(fill as int) as *mut T; mem::move_val_init(&mut(*p), t); } @@ -1521,10 +1521,10 @@ impl<T> OwnedVector<T> for ~[T] { match self.len() { 0 => None, ln => { - let valptr = ptr::to_mut_unsafe_ptr(&mut self[ln - 1u]); + let valptr = &mut self[ln - 1u] as *mut T; unsafe { self.set_len(ln - 1u); - Some(ptr::read_ptr(&*valptr)) + Some(ptr::read(&*valptr)) } } } @@ -1568,7 +1568,7 @@ impl<T> OwnedVector<T> for ~[T] { let ptr = self.as_mut_ptr().offset(i as int); // copy it out, unsafely having a copy of the value on // the stack and in the vector at the same time. - let ret = Some(ptr::read_ptr(ptr as *T)); + let ret = Some(ptr::read(ptr as *T)); // Shift everything down to fill in that spot. ptr::copy_memory(ptr, &*ptr.offset(1), len - i - 1); @@ -1598,7 +1598,7 @@ impl<T> OwnedVector<T> for ~[T] { let p = self.as_mut_ptr(); // This loop is optimized out for non-drop types. for i in range(newlen, oldlen) { - ptr::read_and_zero_ptr(p.offset(i as int)); + ptr::read_and_zero(p.offset(i as int)); } } unsafe { self.set_len(newlen); } @@ -1648,7 +1648,7 @@ impl<T> OwnedVector<T> for ~[T] { #[inline] unsafe fn set_len(&mut self, new_len: uint) { - let repr: **mut Vec<()> = cast::transmute(self); + let repr: **mut Vec<()> = transmute(self); (**repr).fill = new_len * mem::nonzero_size_of::<T>(); } } @@ -1844,7 +1844,7 @@ fn insertion_sort<T>(v: &mut [T], compare: |&T, &T| -> Ordering) { // `.offset(j)` is always in bounds. if i != j { - let tmp = ptr::read_ptr(read_ptr); + let tmp = ptr::read(read_ptr); ptr::copy_memory(buf_v.offset(j + 1), &*buf_v.offset(j), (i - j) as uint); @@ -2269,7 +2269,7 @@ impl<'a,T> MutableVector<'a, T> for &'a mut [T] { assert!(start <= end); assert!(end <= self.len()); unsafe { - cast::transmute(Slice { + transmute(Slice { data: self.as_mut_ptr().offset(start as int) as *T, len: (end - start) }) @@ -2338,7 +2338,7 @@ impl<'a,T> MutableVector<'a, T> for &'a mut [T] { fn mut_shift_ref(&mut self) -> Option<&'a mut T> { if self.len() == 0 { return None; } unsafe { - let s: &mut Slice<T> = cast::transmute(self); + let s: &mut Slice<T> = transmute(self); Some(cast::transmute_mut(&*raw::shift_ptr(s))) } } @@ -2346,7 +2346,7 @@ impl<'a,T> MutableVector<'a, T> for &'a mut [T] { fn mut_pop_ref(&mut self) -> Option<&'a mut T> { if self.len() == 0 { return None; } unsafe { - let s: &mut Slice<T> = cast::transmute(self); + let s: &mut Slice<T> = transmute(self); Some(cast::transmute_mut(&*raw::pop_ptr(s))) } } @@ -2357,7 +2357,7 @@ impl<'a,T> MutableVector<'a, T> for &'a mut [T] { // them to their raw pointers to do the swap let pa: *mut T = &mut self[a]; let pb: *mut T = &mut self[b]; - ptr::swap_ptr(pa, pb); + ptr::swap(pa, pb); } } @@ -2385,7 +2385,7 @@ impl<'a,T> MutableVector<'a, T> for &'a mut [T] { #[inline] unsafe fn unsafe_mut_ref(self, index: uint) -> &'a mut T { - cast::transmute((self.repr().data as *mut T).offset(index as int)) + transmute((self.repr().data as *mut T).offset(index as int)) } #[inline] @@ -2484,7 +2484,7 @@ pub unsafe fn from_buf<T>(ptr: *T, elts: uint) -> ~[T] { /// Unsafe operations pub mod raw { - use cast; + use cast::transmute; use ptr; use ptr::RawPtr; use vec::{with_capacity, MutableVector, OwnedVector}; @@ -2497,7 +2497,7 @@ pub mod raw { #[inline] pub unsafe fn buf_as_slice<T,U>(p: *T, len: uint, f: |v: &[T]| -> U) -> U { - f(cast::transmute(Slice { + f(transmute(Slice { data: p, len: len })) @@ -2514,7 +2514,7 @@ pub mod raw { len: uint, f: |v: &mut [T]| -> U) -> U { - f(cast::transmute(Slice { + f(transmute(Slice { data: p as *T, len: len })) @@ -2698,12 +2698,12 @@ macro_rules! iterator { // purposefully don't use 'ptr.offset' because for // vectors with 0-size elements this would return the // same pointer. - cast::transmute(self.ptr as uint + 1) + transmute(self.ptr as uint + 1) } else { self.ptr.offset(1) }; - Some(cast::transmute(old)) + Some(transmute(old)) } } } @@ -2726,11 +2726,11 @@ macro_rules! iterator { } else { self.end = if mem::size_of::<T>() == 0 { // See above for why 'ptr.offset' isn't used - cast::transmute(self.end as uint - 1) + transmute(self.end as uint - 1) } else { self.end.offset(-1) }; - Some(cast::transmute(self.end)) + Some(transmute(self.end)) } } } @@ -2749,7 +2749,7 @@ impl<'a, T> RandomAccessIterator<&'a T> for Items<'a, T> { fn idx(&self, index: uint) -> Option<&'a T> { unsafe { if index < self.indexable() { - cast::transmute(self.ptr.offset(index as int)) + transmute(self.ptr.offset(index as int)) } else { None } @@ -2895,7 +2895,7 @@ impl<T> Iterator<T> for MoveItems<T> { #[inline] fn next(&mut self) -> Option<T> { unsafe { - self.iter.next().map(|x| ptr::read_ptr(x)) + self.iter.next().map(|x| ptr::read(x)) } } @@ -2909,7 +2909,7 @@ impl<T> DoubleEndedIterator<T> for MoveItems<T> { #[inline] fn next_back(&mut self) -> Option<T> { unsafe { - self.iter.next_back().map(|x| ptr::read_ptr(x)) + self.iter.next_back().map(|x| ptr::read(x)) } } } |
