Skip to content

Commit e835c6b

Browse files
committed
rt: remove a series of unfortunate casts.
1 parent 440f1e2 commit e835c6b

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

src/libstd/rt/local_ptr.rs

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,27 +121,20 @@ pub unsafe fn borrow<T>(f: &fn(&mut T)) {
121121
/// For the Scheduler pointer to be aliased
122122
pub unsafe fn unsafe_borrow<T>() -> *mut T {
123123
let key = tls_key();
124-
let mut void_ptr: *mut c_void = tls::get(key);
124+
let void_ptr = tls::get(key);
125125
if void_ptr.is_null() {
126126
rtabort!("thread-local pointer is null. bogus!");
127127
}
128-
let ptr: *mut *mut c_void = &mut void_ptr;
129-
let ptr: *mut ~T = ptr as *mut ~T;
130-
let ptr: *mut T = &mut **ptr;
131-
return ptr;
128+
void_ptr as *mut T
132129
}
133130

134131
pub unsafe fn try_unsafe_borrow<T>() -> Option<*mut T> {
135132
let key = tls_key();
136-
let mut void_ptr: *mut c_void = tls::get(key);
133+
let void_ptr = tls::get(key);
137134
if void_ptr.is_null() {
138-
return None;
139-
}
140-
{
141-
let ptr: *mut *mut c_void = &mut void_ptr;
142-
let ptr: *mut ~T = ptr as *mut ~T;
143-
let ptr: *mut T = &mut **ptr;
144-
return Some(ptr);
135+
None
136+
} else {
137+
Some(void_ptr as *mut T)
145138
}
146139
}
147140

0 commit comments

Comments
 (0)