diff options
| -rw-r--r-- | src/libstd/cell.rs | 28 |
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, } } |
