about summary refs log tree commit diff
path: root/src/libstd/task/local_data_priv.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2013-07-10 14:43:25 -0700
committerPatrick Walton <pcwalton@mimiga.net>2013-07-17 14:57:53 -0700
commite20549ff192edec9d625f1119bcb077c3abaf070 (patch)
tree9cf88e584f36dc0d7f9f29a2fae55f0203bbc39c /src/libstd/task/local_data_priv.rs
parent99d44d24c7744361b352499b5f54b8f0bab876ec (diff)
downloadrust-e20549ff192edec9d625f1119bcb077c3abaf070.tar.gz
rust-e20549ff192edec9d625f1119bcb077c3abaf070.zip
librustc: Remove all uses of the `Copy` bound.
Diffstat (limited to 'src/libstd/task/local_data_priv.rs')
-rw-r--r--src/libstd/task/local_data_priv.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libstd/task/local_data_priv.rs b/src/libstd/task/local_data_priv.rs
index 75fd6eacc1b..d5f4973e8c7 100644
--- a/src/libstd/task/local_data_priv.rs
+++ b/src/libstd/task/local_data_priv.rs
@@ -15,6 +15,7 @@ use libc;
 use local_data;
 use prelude::*;
 use ptr;
+use sys;
 use task::rt;
 use util;
 
@@ -156,8 +157,9 @@ unsafe fn get_local_map(handle: Handle) -> &mut TaskLocalMap {
     }
 }
 
-fn key_to_key_value<T: 'static>(key: local_data::Key<T>) -> *libc::c_void {
-    unsafe { cast::transmute(key) }
+unsafe fn key_to_key_value<T: 'static>(key: local_data::Key<T>) -> *libc::c_void {
+    let pair: sys::Closure = cast::transmute_copy(&key);
+    return pair.code as *libc::c_void;
 }
 
 pub unsafe fn local_pop<T: 'static>(handle: Handle,