about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/ptr.rs34
-rw-r--r--src/libstd/reflect.rs1
-rw-r--r--src/libstd/repr.rs25
-rw-r--r--src/libstd/unstable/intrinsics.rs1
4 files changed, 24 insertions, 37 deletions
diff --git a/src/libstd/ptr.rs b/src/libstd/ptr.rs
index caf15120bd7..bccdc30a073 100644
--- a/src/libstd/ptr.rs
+++ b/src/libstd/ptr.rs
@@ -87,8 +87,7 @@ pub fn is_not_null<T>(ptr: *const T) -> bool { !is_null(ptr) }
 #[inline]
 #[cfg(target_word_size = "32")]
 pub unsafe fn copy_memory<T>(dst: *mut T, src: *const T, count: uint) {
-    use unstable::intrinsics::memmove32;
-    memmove32(dst, src as *T, count as u32);
+    intrinsics::memmove32(dst, src as *T, count as u32);
 }
 
 /**
@@ -100,8 +99,7 @@ pub unsafe fn copy_memory<T>(dst: *mut T, src: *const T, count: uint) {
 #[inline]
 #[cfg(target_word_size = "64")]
 pub unsafe fn copy_memory<T>(dst: *mut T, src: *const T, count: uint) {
-    use unstable::intrinsics::memmove64;
-    memmove64(dst, src as *T, count as u64);
+    intrinsics::memmove64(dst, src as *T, count as u64);
 }
 
 /**
@@ -113,8 +111,7 @@ pub unsafe fn copy_memory<T>(dst: *mut T, src: *const T, count: uint) {
 #[inline]
 #[cfg(target_word_size = "32")]
 pub unsafe fn copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T, count: uint) {
-    use unstable::intrinsics::memcpy32;
-    memcpy32(dst, src as *T, count as u32);
+    intrinsics::memcpy32(dst, src as *T, count as u32);
 }
 
 /**
@@ -126,8 +123,7 @@ pub unsafe fn copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T, count: u
 #[inline]
 #[cfg(target_word_size = "64")]
 pub unsafe fn copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T, count: uint) {
-    use unstable::intrinsics::memcpy64;
-    memcpy64(dst, src as *T, count as u64);
+    intrinsics::memcpy64(dst, src as *T, count as u64);
 }
 
 /**
@@ -137,8 +133,7 @@ pub unsafe fn copy_nonoverlapping_memory<T>(dst: *mut T, src: *const T, count: u
 #[inline]
 #[cfg(target_word_size = "32")]
 pub unsafe fn set_memory<T>(dst: *mut T, c: u8, count: uint) {
-    use unstable::intrinsics::memset32;
-    memset32(dst, c, count as u32);
+    intrinsics::memset32(dst, c, count as u32);
 }
 
 /**
@@ -148,35 +143,18 @@ pub unsafe fn set_memory<T>(dst: *mut T, c: u8, count: uint) {
 #[inline]
 #[cfg(target_word_size = "64")]
 pub unsafe fn set_memory<T>(dst: *mut T, c: u8, count: uint) {
-    use unstable::intrinsics::memset64;
-    memset64(dst, c, count as u64);
+    intrinsics::memset64(dst, c, count as u64);
 }
 
 /**
  * Zeroes out `count * size_of::<T>` bytes of memory at `dst`
  */
 #[inline]
-#[cfg(not(stage0))]
 pub unsafe fn zero_memory<T>(dst: *mut T, count: uint) {
     set_memory(dst, 0, count);
 }
 
 /**
- * Zeroes out `count * size_of::<T>` bytes of memory at `dst`
- */
-#[inline]
-#[cfg(stage0)]
-pub unsafe fn zero_memory<T>(dst: *mut T, count: uint) {
-    let mut count = count * sys::size_of::<T>();
-    let mut dst = dst as *mut u8;
-    while count > 0 {
-        *dst = 0;
-        dst = mut_offset(dst, 1);
-        count -= 1;
-    }
-}
-
-/**
  * Swap the values at two mutable locations of the same type, without
  * deinitialising or copying either one.
  */
diff --git a/src/libstd/reflect.rs b/src/libstd/reflect.rs
index fd16f4e5c69..63d2492bd33 100644
--- a/src/libstd/reflect.rs
+++ b/src/libstd/reflect.rs
@@ -197,6 +197,7 @@ impl<V:TyVisitor + MovePtr> TyVisitor for MovePtrAdaptor<V> {
         true
     }
 
+    #[cfg(stage0)]
     fn visit_str(&self) -> bool {
         self.align_to::<~str>();
         if ! self.inner.visit_str() { return false; }
diff --git a/src/libstd/repr.rs b/src/libstd/repr.rs
index 7707e83a9ce..0aeff2b0b77 100644
--- a/src/libstd/repr.rs
+++ b/src/libstd/repr.rs
@@ -200,7 +200,7 @@ impl ReprVisitor {
     }
 
     pub fn write_vec_range(&self,
-                           mtbl: uint,
+                           _mtbl: uint,
                            ptr: *u8,
                            len: uint,
                            inner: *TyDesc)
@@ -218,7 +218,6 @@ impl ReprVisitor {
             } else {
                 self.writer.write_str(", ");
             }
-            self.write_mut_qualifier(mtbl);
             self.visit_ptr_inner(p as *c_void, inner);
             p = align(ptr::offset(p, sz) as uint, al) as *u8;
             left -= dec;
@@ -269,6 +268,7 @@ impl TyVisitor for ReprVisitor {
     }
 
     // Type no longer exists, vestigial function.
+    #[cfg(stage0)]
     fn visit_str(&self) -> bool { fail!(); }
 
     fn visit_estr_box(&self) -> bool {
@@ -302,18 +302,16 @@ impl TyVisitor for ReprVisitor {
         }
     }
 
-    fn visit_uniq(&self, mtbl: uint, inner: *TyDesc) -> bool {
+    fn visit_uniq(&self, _mtbl: uint, inner: *TyDesc) -> bool {
         self.writer.write_char('~');
-        self.write_mut_qualifier(mtbl);
         do self.get::<*c_void> |b| {
             self.visit_ptr_inner(*b, inner);
         }
     }
 
     #[cfg(not(stage0))]
-    fn visit_uniq_managed(&self, mtbl: uint, inner: *TyDesc) -> bool {
+    fn visit_uniq_managed(&self, _mtbl: uint, inner: *TyDesc) -> bool {
         self.writer.write_char('~');
-        self.write_mut_qualifier(mtbl);
         do self.get::<&managed::raw::BoxRepr> |b| {
             let p = ptr::to_unsafe_ptr(&b.data) as *c_void;
             self.visit_ptr_inner(p, inner);
@@ -348,10 +346,20 @@ impl TyVisitor for ReprVisitor {
     fn visit_evec_box(&self, mtbl: uint, inner: *TyDesc) -> bool {
         do self.get::<&VecRepr> |b| {
             self.writer.write_char('@');
+            self.write_mut_qualifier(mtbl);
+            self.write_unboxed_vec_repr(mtbl, &b.unboxed, inner);
+        }
+    }
+
+    #[cfg(stage0)]
+    fn visit_evec_uniq(&self, mtbl: uint, inner: *TyDesc) -> bool {
+        do self.get::<&VecRepr> |b| {
+            self.writer.write_char('~');
             self.write_unboxed_vec_repr(mtbl, &b.unboxed, inner);
         }
     }
 
+    #[cfg(not(stage0))]
     fn visit_evec_uniq(&self, mtbl: uint, inner: *TyDesc) -> bool {
         do self.get::<&UnboxedVecRepr> |b| {
             self.writer.write_char('~');
@@ -613,13 +621,14 @@ fn test_repr() {
     exact_test(&(@"hello"), "@\"hello\"");
     exact_test(&(~"he\u10f3llo"), "~\"he\\u10f3llo\"");
 
-    // FIXME #4210: the mut fields are a bit off here.
     exact_test(&(@10), "@10");
-    exact_test(&(@mut 10), "@10");
+    exact_test(&(@mut 10), "@10"); // FIXME: #4210: incorrect
+    exact_test(&((@mut 10, 2)), "(@mut 10, 2)");
     exact_test(&(~10), "~10");
     exact_test(&(&10), "&10");
     let mut x = 10;
     exact_test(&(&mut x), "&mut 10");
+    exact_test(&(@mut [1, 2]), "@mut [1, 2]");
 
     exact_test(&(1,), "(1,)");
     exact_test(&(@[1,2,3,4,5,6,7,8]),
diff --git a/src/libstd/unstable/intrinsics.rs b/src/libstd/unstable/intrinsics.rs
index 015ecd67c83..796f691dd56 100644
--- a/src/libstd/unstable/intrinsics.rs
+++ b/src/libstd/unstable/intrinsics.rs
@@ -82,7 +82,6 @@ pub trait TyVisitor {
     fn visit_f64(&self) -> bool;
 
     fn visit_char(&self) -> bool;
-    fn visit_str(&self) -> bool;
 
     fn visit_estr_box(&self) -> bool;
     fn visit_estr_uniq(&self) -> bool;