diff options
| author | Ben Blum <bblum@andrew.cmu.edu> | 2013-06-10 18:18:04 -0400 |
|---|---|---|
| committer | Ben Blum <bblum@andrew.cmu.edu> | 2013-06-10 18:18:04 -0400 |
| commit | 8081aea3b86d9e25746ff03acabe53c3644b600c (patch) | |
| tree | bd703fd655cd002528a0d6da6dbd5968b9bc1936 | |
| parent | d25fae0e10d92d7329211170a5b38b104a5093f0 (diff) | |
| download | rust-8081aea3b86d9e25746ff03acabe53c3644b600c.tar.gz rust-8081aea3b86d9e25746ff03acabe53c3644b600c.zip | |
Tag a bunch of destructors that need mutable self with FIXME for #4330. Close #4943.
| -rw-r--r-- | src/libstd/pipes.rs | 1 | ||||
| -rw-r--r-- | src/libstd/rt/rc.rs | 2 | ||||
| -rw-r--r-- | src/libstd/run.rs | 2 | ||||
| -rw-r--r-- | src/libstd/task/spawn.rs | 1 | ||||
| -rw-r--r-- | src/libstd/unstable/atomics.rs | 1 |
5 files changed, 5 insertions, 2 deletions
diff --git a/src/libstd/pipes.rs b/src/libstd/pipes.rs index 1137540ae70..012ad0ed80d 100644 --- a/src/libstd/pipes.rs +++ b/src/libstd/pipes.rs @@ -315,6 +315,7 @@ struct BufferResource<T> { impl<T> Drop for BufferResource<T> { fn finalize(&self) { unsafe { + // FIXME(#4330) Need self by value to get mutability. let this: &mut BufferResource<T> = transmute(self); let mut b = move_it!(this.buffer); diff --git a/src/libstd/rt/rc.rs b/src/libstd/rt/rc.rs index 1c0c8c14fdf..2977d081508 100644 --- a/src/libstd/rt/rc.rs +++ b/src/libstd/rt/rc.rs @@ -78,7 +78,7 @@ impl<T> Drop for RC<T> { assert!(self.refcount() > 0); unsafe { - // XXX: Mutable finalizer + // FIXME(#4330) Need self by value to get mutability. let this: &mut RC<T> = cast::transmute_mut(self); match *this.get_mut_state() { diff --git a/src/libstd/run.rs b/src/libstd/run.rs index 41bc573f10d..85015c9bc5e 100644 --- a/src/libstd/run.rs +++ b/src/libstd/run.rs @@ -429,7 +429,7 @@ impl Process { impl Drop for Process { fn finalize(&self) { - // FIXME #4943: transmute is bad. + // FIXME(#4330) Need self by value to get mutability. let mut_self: &mut Process = unsafe { cast::transmute(self) }; mut_self.finish(); diff --git a/src/libstd/task/spawn.rs b/src/libstd/task/spawn.rs index 87e9296657f..bc409e06633 100644 --- a/src/libstd/task/spawn.rs +++ b/src/libstd/task/spawn.rs @@ -323,6 +323,7 @@ impl Drop for TCB { // Runs on task exit. fn finalize(&self) { unsafe { + // FIXME(#4330) Need self by value to get mutability. let this: &mut TCB = transmute(self); // If we are failing, the whole taskgroup needs to die. diff --git a/src/libstd/unstable/atomics.rs b/src/libstd/unstable/atomics.rs index 58d0c01f990..856f4e6e3c1 100644 --- a/src/libstd/unstable/atomics.rs +++ b/src/libstd/unstable/atomics.rs @@ -275,6 +275,7 @@ impl<T> Drop for AtomicOption<T> { // This will ensure that the contained data is // destroyed, unless it's null. unsafe { + // FIXME(#4330) Need self by value to get mutability. let this : &mut AtomicOption<T> = cast::transmute(self); let _ = this.take(SeqCst); } |
