]> git.lizzy.rs Git - rust.git/commitdiff
Clean up marker types and Unsafe initialization
authorSteven Fackler <sfackler@gmail.com>
Fri, 21 Mar 2014 03:24:31 +0000 (20:24 -0700)
committerSteven Fackler <sfackler@gmail.com>
Fri, 21 Mar 2014 03:33:23 +0000 (20:33 -0700)
src/libstd/cell.rs

index df1c29ded6e0eb10beadaf0bcff43b5c6855a965..b54396efec505c68c0ca9d13c380e00251c9fb23 100644 (file)
 /// 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 @@ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
 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,
         }
     }