diff options
Diffstat (limited to 'src/libstd/rt')
| -rw-r--r-- | src/libstd/rt/local_ptr.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/libstd/rt/local_ptr.rs b/src/libstd/rt/local_ptr.rs index 3f9b7fc83df..33384594c57 100644 --- a/src/libstd/rt/local_ptr.rs +++ b/src/libstd/rt/local_ptr.rs @@ -129,12 +129,16 @@ pub unsafe fn unsafe_borrow<T>() -> *mut T { } pub unsafe fn try_unsafe_borrow<T>() -> Option<*mut T> { - let key = tls_key(); - let void_ptr = tls::get(key); - if void_ptr.is_null() { - None - } else { - Some(void_ptr as *mut T) + match maybe_tls_key() { + Some(key) => { + let void_ptr = tls::get(key); + if void_ptr.is_null() { + None + } else { + Some(void_ptr as *mut T) + } + } + None => None } } |
