about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorSteven Fackler <sfackler@gmail.com>2014-03-20 20:24:31 -0700
committerSteven Fackler <sfackler@gmail.com>2014-03-20 20:33:23 -0700
commit1d98fe12a8b2ad954f01935552d23643e96a53af (patch)
tree6d44802e6b3867a04cfb32a249f7a4f8dbfa16e9 /src/libstd
parent181875ca50853418abaa525614252cf46bfce10f (diff)
downloadrust-1d98fe12a8b2ad954f01935552d23643e96a53af.tar.gz
rust-1d98fe12a8b2ad954f01935552d23643e96a53af.zip
Clean up marker types and Unsafe initialization
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/cell.rs28
1 files changed, 12 insertions, 16 deletions
diff --git a/src/libstd/cell.rs b/src/libstd/cell.rs
index df1c29ded6e..b54396efec5 100644
--- a/src/libstd/cell.rs
+++ b/src/libstd/cell.rs
@@ -22,19 +22,17 @@ use ty::Unsafe;
 /// A mutable memory location that admits only `Pod` data.
 pub struct Cell<T> {
     priv value: Unsafe<T>,
-    priv marker1: marker::InvariantType<T>,
-    priv marker2: marker::NoFreeze,
-    priv marker3: marker::NoShare,
+    priv marker1: marker::NoFreeze,
+    priv marker2: marker::NoShare,
 }
 
 impl<T:Pod> Cell<T> {
     /// Creates a new `Cell` containing the given value.
     pub fn new(value: T) -> Cell<T> {
         Cell {
-            value: Unsafe{value: value, marker1: marker::InvariantType::<T>},
-            marker1: marker::InvariantType::<T>,
-            marker2: marker::NoFreeze,
-            marker3: marker::NoShare,
+            value: Unsafe::new(value),
+            marker1: marker::NoFreeze,
+            marker2: marker::NoShare,
         }
     }
 
@@ -75,10 +73,9 @@ impl<T: fmt::Show> fmt::Show for Cell<T> {
 pub struct RefCell<T> {
     priv value: Unsafe<T>,
     priv borrow: BorrowFlag,
-    priv marker1: marker::InvariantType<T>,
-    priv marker2: marker::NoFreeze,
-    priv marker3: marker::NoPod,
-    priv marker4: marker::NoShare,
+    priv marker1: marker::NoFreeze,
+    priv marker2: marker::NoPod,
+    priv marker3: marker::NoShare,
 }
 
 // Values [1, MAX-1] represent the number of `Ref` active
@@ -91,11 +88,10 @@ impl<T> RefCell<T> {
     /// Create a new `RefCell` containing `value`
     pub fn new(value: T) -> RefCell<T> {
         RefCell {
-            marker1: marker::InvariantType::<T>,
-            marker2: marker::NoFreeze,
-            marker3: marker::NoPod,
-            marker4: marker::NoShare,
-            value: Unsafe{value: value, marker1: marker::InvariantType::<T>},
+            marker1: marker::NoFreeze,
+            marker2: marker::NoPod,
+            marker3: marker::NoShare,
+            value: Unsafe::new(value),
             borrow: UNUSED,
         }
     }