diff options
| author | Daniel Micay <danielmicay@gmail.com> | 2013-05-07 12:57:28 -0400 |
|---|---|---|
| committer | Daniel Micay <danielmicay@gmail.com> | 2013-05-07 13:02:56 -0400 |
| commit | 43165b54e05d0640fda8cf419de09d9f6d032724 (patch) | |
| tree | 1c7c3408ae8f770e44c89f07d80451f9fbd80949 /src/libstd | |
| parent | 38a6a7a394fa55235ff0b3cab4d0903d7ba5a5a3 (diff) | |
| download | rust-43165b54e05d0640fda8cf419de09d9f6d032724.tar.gz rust-43165b54e05d0640fda8cf419de09d9f6d032724.zip | |
rc: remove the managed pointer workaround
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/rc.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/libstd/rc.rs b/src/libstd/rc.rs index 3eb480f9ea8..6f72d8dc16d 100644 --- a/src/libstd/rc.rs +++ b/src/libstd/rc.rs @@ -24,9 +24,9 @@ struct RcBox<T> { } /// Immutable reference counted pointer type +#[non_owned] pub struct Rc<T> { priv ptr: *mut RcBox<T>, - priv non_owned: Option<@()> // FIXME: #5601: replace with `#[non_owned]` } pub impl<'self, T: Owned> Rc<T> { @@ -35,7 +35,7 @@ pub impl<'self, T: Owned> Rc<T> { let ptr = malloc(sys::size_of::<RcBox<T>>() as size_t) as *mut RcBox<T>; assert!(!ptr::is_null(ptr)); intrinsics::move_val_init(&mut *ptr, RcBox{value: value, count: 1}); - Rc{ptr: ptr, non_owned: None} + Rc{ptr: ptr} } } @@ -64,7 +64,7 @@ impl<T: Owned> Clone for Rc<T> { fn clone(&self) -> Rc<T> { unsafe { (*self.ptr).count += 1; - Rc{ptr: self.ptr, non_owned: None} + Rc{ptr: self.ptr} } } } @@ -113,9 +113,10 @@ struct RcMutBox<T> { } /// Mutable reference counted pointer type +#[non_owned] +#[mutable] pub struct RcMut<T> { priv ptr: *mut RcMutBox<T>, - priv non_owned: Option<@mut ()> // FIXME: #5601: replace with `#[non_owned]` and `#[non_const]` } pub impl<'self, T: Owned> RcMut<T> { @@ -124,7 +125,7 @@ pub impl<'self, T: Owned> RcMut<T> { let ptr = malloc(sys::size_of::<RcMutBox<T>>() as size_t) as *mut RcMutBox<T>; assert!(!ptr::is_null(ptr)); intrinsics::move_val_init(&mut *ptr, RcMutBox{value: value, count: 1, borrow: Nothing}); - RcMut{ptr: ptr, non_owned: None} + RcMut{ptr: ptr} } } @@ -171,7 +172,7 @@ impl<T: Owned> Clone for RcMut<T> { fn clone(&self) -> RcMut<T> { unsafe { (*self.ptr).count += 1; - RcMut{ptr: self.ptr, non_owned: None} + RcMut{ptr: self.ptr} } } } |
