diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-11-01 18:06:31 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2014-01-04 14:44:12 -0800 |
| commit | 3b1862a82f04f8f5bcb197715d2ff506c6cdecc3 (patch) | |
| tree | 0057a02e6d56e9bea0357d649a420b6e66b5be71 /src/libstd/rt/task.rs | |
| parent | 18cef3fad47f90c6c5ec1f2ad4dbc12b86b7ee7e (diff) | |
| download | rust-3b1862a82f04f8f5bcb197715d2ff506c6cdecc3.tar.gz rust-3b1862a82f04f8f5bcb197715d2ff506c6cdecc3.zip | |
Don't allow newtype structs to be dereferenced. #6246
Diffstat (limited to 'src/libstd/rt/task.rs')
| -rw-r--r-- | src/libstd/rt/task.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libstd/rt/task.rs b/src/libstd/rt/task.rs index 41819421be8..3efa979e515 100644 --- a/src/libstd/rt/task.rs +++ b/src/libstd/rt/task.rs @@ -153,9 +153,13 @@ impl Task { // annihilated invoke TLS. Sadly these two operations seemed to // be intertwined, and miraculously work for now... let mut task = Local::borrow(None::<Task>); - let storage = task.get().storage.take(); + let storage_map = { + let task = task.get(); + let LocalStorage(ref mut optmap) = task.storage; + optmap.take() + }; drop(task); - drop(storage); + drop(storage_map); // Destroy remaining boxes. Also may run user dtors. unsafe { cleanup::annihilate(); } |
