about summary refs log tree commit diff
path: root/src/libstd/task/local_data_priv.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd/task/local_data_priv.rs')
-rw-r--r--src/libstd/task/local_data_priv.rs7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/libstd/task/local_data_priv.rs b/src/libstd/task/local_data_priv.rs
index 42cfcbc16db..1a2141e996a 100644
--- a/src/libstd/task/local_data_priv.rs
+++ b/src/libstd/task/local_data_priv.rs
@@ -15,9 +15,9 @@ use libc;
 use local_data;
 use prelude::*;
 use ptr;
-use sys;
 use task::rt;
 use util;
+use vec;
 
 use super::rt::rust_task;
 use rt::task::{Task, LocalStorage};
@@ -142,9 +142,8 @@ unsafe fn get_local_map(handle: Handle) -> &mut TaskLocalMap {
     }
 }
 
-unsafe fn key_to_key_value<T: 'static>(key: local_data::Key<T>) -> *libc::c_void {
-    let pair: sys::Closure = cast::transmute(key);
-    return pair.code as *libc::c_void;
+fn key_to_key_value<T: 'static>(key: local_data::Key<T>) -> *libc::c_void {
+    return vec::raw::to_ptr(key) as *libc::c_void;
 }
 
 pub unsafe fn local_pop<T: 'static>(handle: Handle,