diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2013-08-29 22:28:49 +1000 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2013-08-29 22:55:59 +1000 |
| commit | e835c6b042b88720d5fd0d606d25e0ea4fa27b1a (patch) | |
| tree | 3d31195c583a6fc57fe494ac31e7aa4f551412d1 /src/libstd/rt/local_ptr.rs | |
| parent | 440f1e2dadaf7c56575b65aa13c30abf9d5cec26 (diff) | |
| download | rust-e835c6b042b88720d5fd0d606d25e0ea4fa27b1a.tar.gz rust-e835c6b042b88720d5fd0d606d25e0ea4fa27b1a.zip | |
rt: remove a series of unfortunate casts.
Diffstat (limited to 'src/libstd/rt/local_ptr.rs')
| -rw-r--r-- | src/libstd/rt/local_ptr.rs | 19 |
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) } } |
