about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorHuon Wilson <dbau.pp+github@gmail.com>2013-08-29 22:28:49 +1000
committerHuon Wilson <dbau.pp+github@gmail.com>2013-08-29 22:55:59 +1000
commite835c6b042b88720d5fd0d606d25e0ea4fa27b1a (patch)
tree3d31195c583a6fc57fe494ac31e7aa4f551412d1 /src
parent440f1e2dadaf7c56575b65aa13c30abf9d5cec26 (diff)
downloadrust-e835c6b042b88720d5fd0d606d25e0ea4fa27b1a.tar.gz
rust-e835c6b042b88720d5fd0d606d25e0ea4fa27b1a.zip
rt: remove a series of unfortunate casts.
Diffstat (limited to 'src')
-rw-r--r--src/libstd/rt/local_ptr.rs19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/libstd/rt/local_ptr.rs b/src/libstd/rt/local_ptr.rs
index e843fd1adef..3f9b7fc83df 100644
--- a/src/libstd/rt/local_ptr.rs
+++ b/src/libstd/rt/local_ptr.rs
@@ -121,27 +121,20 @@ pub unsafe fn borrow<T>(f: &fn(&mut T)) {
 /// For the Scheduler pointer to be aliased
 pub unsafe fn unsafe_borrow<T>() -> *mut T {
     let key = tls_key();
-    let mut void_ptr: *mut c_void = tls::get(key);
+    let void_ptr = tls::get(key);
     if void_ptr.is_null() {
         rtabort!("thread-local pointer is null. bogus!");
     }
-    let ptr: *mut *mut c_void = &mut void_ptr;
-    let ptr: *mut ~T = ptr as *mut ~T;
-    let ptr: *mut T = &mut **ptr;
-    return ptr;
+    void_ptr as *mut T
 }
 
 pub unsafe fn try_unsafe_borrow<T>() -> Option<*mut T> {
     let key = tls_key();
-    let mut void_ptr: *mut c_void = tls::get(key);
+    let void_ptr = tls::get(key);
     if void_ptr.is_null() {
-        return None;
-    }
-    {
-        let ptr: *mut *mut c_void = &mut void_ptr;
-        let ptr: *mut ~T = ptr as *mut ~T;
-        let ptr: *mut T = &mut **ptr;
-        return Some(ptr);
+        None
+    } else {
+        Some(void_ptr as *mut T)
     }
 }