Clean up marker types and Unsafe initialization
This commit is contained in:
parent
181875ca50
commit
1d98fe12a8
1 changed files with 12 additions and 16 deletions
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue