From 3b1862a82f04f8f5bcb197715d2ff506c6cdecc3 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Fri, 1 Nov 2013 18:06:31 -0700 Subject: Don't allow newtype structs to be dereferenced. #6246 --- src/libstd/rt/task.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/libstd/rt') 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::); - 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(); } -- cgit 1.4.1-3-g733a5