File tree Expand file tree Collapse file tree 8 files changed +26
-18
lines changed Expand file tree Collapse file tree 8 files changed +26
-18
lines changed Original file line number Diff line number Diff line change @@ -63,7 +63,7 @@ pub unsafe fn cleanup(ptr: *mut u8) -> Box<dyn Any + Send> {
6363pub unsafe fn panic ( data : Box < dyn Any + Send > ) -> u32 {
6464 let sz = mem:: size_of_val ( & data) ;
6565 let exception = __cxa_allocate_exception ( sz) ;
66- if exception == ptr :: null_mut ( ) {
66+ if exception. is_null ( ) {
6767 return uw:: _URC_FATAL_PHASE1_ERROR as u32 ;
6868 }
6969 ptr:: write ( exception as * mut _ , data) ;
Original file line number Diff line number Diff line change @@ -77,13 +77,17 @@ pub fn init_environment(env: *const *const i8) {
7777 unsafe {
7878 ENV = Some ( Mutex :: new ( HashMap :: new ( ) ) ) ;
7979
80+ if env. is_null ( ) {
81+ return ;
82+ }
83+
8084 let mut guard = ENV . as_ref ( ) . unwrap ( ) . lock ( ) . unwrap ( ) ;
8185 let mut environ = env;
82- while environ != ptr :: null ( ) && * environ != ptr :: null ( ) {
86+ while ! ( * environ) . is_null ( ) {
8387 if let Some ( ( key, value) ) = parse ( CStr :: from_ptr ( * environ) . to_bytes ( ) ) {
8488 guard. insert ( key, value) ;
8589 }
86- environ = environ. offset ( 1 ) ;
90+ environ = environ. add ( 1 ) ;
8791 }
8892 }
8993
Original file line number Diff line number Diff line change @@ -18,14 +18,14 @@ static KEYS_LOCK: Mutex = Mutex::new();
1818static mut LOCALS : * mut BTreeMap < Key , * mut u8 > = ptr:: null_mut ( ) ;
1919
2020unsafe fn keys ( ) -> & ' static mut BTreeMap < Key , Option < Dtor > > {
21- if KEYS == ptr :: null_mut ( ) {
21+ if KEYS . is_null ( ) {
2222 KEYS = Box :: into_raw ( Box :: new ( BTreeMap :: new ( ) ) ) ;
2323 }
2424 & mut * KEYS
2525}
2626
2727unsafe fn locals ( ) -> & ' static mut BTreeMap < Key , * mut u8 > {
28- if LOCALS == ptr :: null_mut ( ) {
28+ if LOCALS . is_null ( ) {
2929 LOCALS = Box :: into_raw ( Box :: new ( BTreeMap :: new ( ) ) ) ;
3030 }
3131 & mut * LOCALS
Original file line number Diff line number Diff line change @@ -70,7 +70,7 @@ impl<'a> Drop for ActiveTls<'a> {
7070 any_non_null_dtor = false ;
7171 for ( value, dtor) in TLS_KEY_IN_USE . iter ( ) . filter_map ( & value_with_destructor) {
7272 let value = value. replace ( ptr:: null_mut ( ) ) ;
73- if value != ptr :: null_mut ( ) {
73+ if !value . is_null ( ) {
7474 any_non_null_dtor = true ;
7575 unsafe { dtor ( value) }
7676 }
Original file line number Diff line number Diff line change @@ -480,11 +480,13 @@ pub fn env() -> Env {
480480 let _guard = env_lock ( ) ;
481481 let mut environ = * environ ( ) ;
482482 let mut result = Vec :: new ( ) ;
483- while environ != ptr:: null ( ) && * environ != ptr:: null ( ) {
484- if let Some ( key_value) = parse ( CStr :: from_ptr ( * environ) . to_bytes ( ) ) {
485- result. push ( key_value) ;
483+ if !environ. is_null ( ) {
484+ while !( * environ) . is_null ( ) {
485+ if let Some ( key_value) = parse ( CStr :: from_ptr ( * environ) . to_bytes ( ) ) {
486+ result. push ( key_value) ;
487+ }
488+ environ = environ. add ( 1 ) ;
486489 }
487- environ = environ. offset ( 1 ) ;
488490 }
489491 return Env { iter : result. into_iter ( ) , _dont_send_or_sync_me : PhantomData } ;
490492 }
Original file line number Diff line number Diff line change @@ -226,15 +226,15 @@ pub fn env() -> Env {
226226 unsafe {
227227 let _guard = env_lock ( ) ;
228228 let mut environ = * environ ( ) ;
229- if environ == ptr :: null ( ) {
229+ if environ. is_null ( ) {
230230 panic ! ( "os::env() failure getting env string from OS: {}" , io:: Error :: last_os_error( ) ) ;
231231 }
232232 let mut result = Vec :: new ( ) ;
233- while * environ != ptr :: null ( ) {
233+ while ! ( * environ) . is_null ( ) {
234234 if let Some ( key_value) = parse ( CStr :: from_ptr ( * environ) . to_bytes ( ) ) {
235235 result. push ( key_value) ;
236236 }
237- environ = environ. offset ( 1 ) ;
237+ environ = environ. add ( 1 ) ;
238238 }
239239 return Env { iter : result. into_iter ( ) , _dont_send_or_sync_me : PhantomData } ;
240240 }
Original file line number Diff line number Diff line change @@ -107,11 +107,13 @@ pub fn env() -> Env {
107107 let _guard = env_lock ( ) ;
108108 let mut environ = libc:: environ;
109109 let mut result = Vec :: new ( ) ;
110- while environ != ptr:: null_mut ( ) && * environ != ptr:: null_mut ( ) {
111- if let Some ( key_value) = parse ( CStr :: from_ptr ( * environ) . to_bytes ( ) ) {
112- result. push ( key_value) ;
110+ if !environ. is_null ( ) {
111+ while !( * environ) . is_null ( ) {
112+ if let Some ( key_value) = parse ( CStr :: from_ptr ( * environ) . to_bytes ( ) ) {
113+ result. push ( key_value) ;
114+ }
115+ environ = environ. add ( 1 ) ;
113116 }
114- environ = environ. offset ( 1 ) ;
115117 }
116118 return Env { iter : result. into_iter ( ) , _dont_send_or_sync_me : PhantomData } ;
117119 }
Original file line number Diff line number Diff line change @@ -43,7 +43,7 @@ pub fn error_string(mut errnum: i32) -> String {
4343 ] ;
4444 module = c:: GetModuleHandleW ( NTDLL_DLL . as_ptr ( ) ) ;
4545
46- if module != ptr :: null_mut ( ) {
46+ if !module . is_null ( ) {
4747 errnum ^= c:: FACILITY_NT_BIT as i32 ;
4848 flags = c:: FORMAT_MESSAGE_FROM_HMODULE ;
4949 }
You can’t perform that action at this time.
0 commit comments