Skip to content

Commit 06fb196

Browse files
committedSep 3, 2015
Use null()/null_mut() instead of 0 as *const T/0 as *mut T
1 parent 3903ea9 commit 06fb196

File tree

22 files changed

+65
-52
lines changed

22 files changed

+65
-52
lines changed
 

‎src/libcollections/btree/node.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ impl<K, V> Drop for Node<K, V> {
296296
self.destroy();
297297
}
298298

299-
self.keys = unsafe { Unique::new(0 as *mut K) };
299+
self.keys = unsafe { Unique::new(ptr::null_mut()) };
300300
}
301301
}
302302

‎src/libcollections/vec.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1135,7 +1135,7 @@ impl<T> ops::Deref for Vec<T> {
11351135
fn deref(&self) -> &[T] {
11361136
unsafe {
11371137
let p = self.buf.ptr();
1138-
assume(p != 0 as *mut T);
1138+
assume(!p.is_null());
11391139
slice::from_raw_parts(p, self.len)
11401140
}
11411141
}

‎src/liblog/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ use std::io::{self, Stderr};
184184
use std::io::prelude::*;
185185
use std::mem;
186186
use std::env;
187+
use std::ptr;
187188
use std::rt;
188189
use std::slice;
189190
use std::sync::{Once, StaticMutex};
@@ -209,11 +210,10 @@ static LOCK: StaticMutex = StaticMutex::new();
209210
/// logging statement should be run.
210211
static mut LOG_LEVEL: u32 = MAX_LOG_LEVEL;
211212

212-
static mut DIRECTIVES: *mut Vec<directive::LogDirective> =
213-
0 as *mut Vec<directive::LogDirective>;
213+
static mut DIRECTIVES: *mut Vec<directive::LogDirective> = ptr::null_mut();
214214

215215
/// Optional filter.
216-
static mut FILTER: *mut String = 0 as *mut _;
216+
static mut FILTER: *mut String = ptr::null_mut();
217217

218218
/// Debug log level
219219
pub const DEBUG: u32 = 4;

‎src/librustc_trans/back/archive.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use std::io;
1818
use std::mem;
1919
use std::path::{Path, PathBuf};
2020
use std::process::{Command, Output, Stdio};
21+
use std::ptr;
2122
use std::str;
2223

2324
use libc;
@@ -449,7 +450,7 @@ impl<'a> ArchiveBuilder<'a> {
449450
}
450451

451452
let name = try!(CString::new(child_name));
452-
members.push(llvm::LLVMRustArchiveMemberNew(0 as *const _,
453+
members.push(llvm::LLVMRustArchiveMemberNew(ptr::null(),
453454
name.as_ptr(),
454455
child.raw()));
455456
strings.push(name);
@@ -462,7 +463,7 @@ impl<'a> ArchiveBuilder<'a> {
462463
let name = try!(CString::new(name_in_archive));
463464
members.push(llvm::LLVMRustArchiveMemberNew(path.as_ptr(),
464465
name.as_ptr(),
465-
0 as *mut _));
466+
ptr::null_mut()));
466467
strings.push(path);
467468
strings.push(name);
468469
}
@@ -472,7 +473,7 @@ impl<'a> ArchiveBuilder<'a> {
472473
if skip(child_name) { continue }
473474

474475
let name = try!(CString::new(child_name));
475-
let m = llvm::LLVMRustArchiveMemberNew(0 as *const _,
476+
let m = llvm::LLVMRustArchiveMemberNew(ptr::null(),
476477
name.as_ptr(),
477478
child.raw());
478479
members.push(m);

‎src/librustc_trans/back/msvc/registry.rs

+8-7
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use std::io;
1212
use std::ffi::{OsString, OsStr};
1313
use std::os::windows::prelude::*;
1414
use std::ops::RangeFrom;
15+
use std::ptr;
1516
use libc::{DWORD, LPCWSTR, LONG, LPDWORD, LPBYTE, ERROR_SUCCESS};
1617
use libc::c_void;
1718

@@ -88,7 +89,7 @@ impl RegistryKey {
8889

8990
pub fn open(&self, key: &OsStr) -> io::Result<RegistryKey> {
9091
let key = key.encode_wide().chain(Some(0)).collect::<Vec<_>>();
91-
let mut ret = 0 as *mut _;
92+
let mut ret = ptr::null_mut();
9293
let err = unsafe {
9394
RegOpenKeyExW(self.raw(), key.as_ptr(), 0,
9495
KEY_READ | KEY_WOW64_32KEY, &mut ret)
@@ -110,8 +111,8 @@ impl RegistryKey {
110111
let mut len = 0;
111112
let mut kind = 0;
112113
unsafe {
113-
let err = RegQueryValueExW(self.raw(), name.as_ptr(), 0 as *mut _,
114-
&mut kind, 0 as *mut _, &mut len);
114+
let err = RegQueryValueExW(self.raw(), name.as_ptr(), ptr::null_mut(),
115+
&mut kind, ptr::null_mut(), &mut len);
115116
if err != ERROR_SUCCESS {
116117
return Err(io::Error::from_raw_os_error(err as i32))
117118
}
@@ -124,8 +125,8 @@ impl RegistryKey {
124125
// characters so we need to be sure to halve it for the capacity
125126
// passed in.
126127
let mut v = Vec::with_capacity(len as usize / 2);
127-
let err = RegQueryValueExW(self.raw(), name.as_ptr(), 0 as *mut _,
128-
0 as *mut _, v.as_mut_ptr() as *mut _,
128+
let err = RegQueryValueExW(self.raw(), name.as_ptr(), ptr::null_mut(),
129+
ptr::null_mut(), v.as_mut_ptr() as *mut _,
129130
&mut len);
130131
if err != ERROR_SUCCESS {
131132
return Err(io::Error::from_raw_os_error(err as i32))
@@ -156,8 +157,8 @@ impl<'a> Iterator for Iter<'a> {
156157
let mut v = Vec::with_capacity(256);
157158
let mut len = v.capacity() as DWORD;
158159
let ret = RegEnumKeyExW(self.key.raw(), i, v.as_mut_ptr(), &mut len,
159-
0 as *mut _, 0 as *mut _, 0 as *mut _,
160-
0 as *mut _);
160+
ptr::null_mut(), ptr::null_mut(), ptr::null_mut(),
161+
ptr::null_mut());
161162
if ret == ERROR_NO_MORE_ITEMS as LONG {
162163
None
163164
} else if ret != ERROR_SUCCESS {

‎src/libstd/io/lazy.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use prelude::v1::*;
1212

1313
use cell::Cell;
14+
use ptr;
1415
use rt;
1516
use sync::{StaticMutex, Arc};
1617

@@ -26,7 +27,7 @@ impl<T: Send + Sync + 'static> Lazy<T> {
2627
pub const fn new(init: fn() -> Arc<T>) -> Lazy<T> {
2728
Lazy {
2829
lock: StaticMutex::new(),
29-
ptr: Cell::new(0 as *mut _),
30+
ptr: Cell::new(ptr::null_mut()),
3031
init: init
3132
}
3233
}

‎src/libstd/rand/os.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ mod imp {
185185

186186
use io;
187187
use mem;
188+
use ptr;
188189
use rand::Rng;
189190
use libc::{c_int, size_t};
190191

@@ -207,7 +208,7 @@ mod imp {
207208
enum SecRandom {}
208209

209210
#[allow(non_upper_case_globals)]
210-
const kSecRandomDefault: *const SecRandom = 0 as *const SecRandom;
211+
const kSecRandomDefault: *const SecRandom = ptr::null();
211212

212213
#[link(name = "Security", kind = "framework")]
213214
extern "C" {

‎src/libstd/rt/at_exit_imp.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
use alloc::boxed::FnBox;
2020
use boxed::Box;
21+
use ptr;
2122
use sys_common::mutex::Mutex;
2223
use vec::Vec;
2324

@@ -28,7 +29,7 @@ type Queue = Vec<Box<FnBox()>>;
2829
// the thread infrastructure to be in place (useful on the borders of
2930
// initialization/destruction).
3031
static LOCK: Mutex = Mutex::new();
31-
static mut QUEUE: *mut Queue = 0 as *mut Queue;
32+
static mut QUEUE: *mut Queue = ptr::null_mut();
3233

3334
// The maximum number of times the cleanup routines will be run. While running
3435
// the at_exit closures new ones may be registered, and this count is the number

‎src/libstd/rt/unwind/seh.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ use prelude::v1::*;
5353

5454
use any::Any;
5555
use libc::{c_ulong, DWORD, c_void};
56+
use ptr;
5657
use sys_common::thread_local::StaticKey;
5758

5859
// 0x R U S T
@@ -98,7 +99,7 @@ pub unsafe fn panic(data: Box<Any + Send + 'static>) -> ! {
9899
rtassert!(PANIC_DATA.get().is_null());
99100
PANIC_DATA.set(Box::into_raw(exception) as *mut u8);
100101

101-
RaiseException(RUST_PANIC, 0, 0, 0 as *const _);
102+
RaiseException(RUST_PANIC, 0, 0, ptr::null());
102103
rtabort!("could not unwind stack");
103104
}
104105

@@ -108,7 +109,7 @@ pub unsafe fn cleanup(ptr: *mut u8) -> Box<Any + Send + 'static> {
108109
rtassert!(ptr as DWORD == RUST_PANIC);
109110

110111
let data = PANIC_DATA.get() as *mut Box<Any + Send + 'static>;
111-
PANIC_DATA.set(0 as *mut u8);
112+
PANIC_DATA.set(ptr::null_mut());
112113
rtassert!(!data.is_null());
113114

114115
*Box::from_raw(data)

‎src/libstd/sys/common/net.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use io::{self, Error, ErrorKind};
1616
use libc::{self, c_int, c_char, c_void, socklen_t};
1717
use mem;
1818
use net::{SocketAddr, Shutdown, IpAddr};
19+
use ptr;
1920
use str::from_utf8;
2021
use sys::c;
2122
use sys::net::{cvt, cvt_r, cvt_gai, Socket, init, wrlen_t};
@@ -123,9 +124,9 @@ pub fn lookup_host(host: &str) -> io::Result<LookupHost> {
123124
init();
124125

125126
let c_host = try!(CString::new(host));
126-
let mut res = 0 as *mut _;
127+
let mut res = ptr::null_mut();
127128
unsafe {
128-
try!(cvt_gai(getaddrinfo(c_host.as_ptr(), 0 as *const _, 0 as *const _,
129+
try!(cvt_gai(getaddrinfo(c_host.as_ptr(), ptr::null(), ptr::null(),
129130
&mut res)));
130131
Ok(LookupHost { original: res, cur: res })
131132
}
@@ -154,7 +155,7 @@ pub fn lookup_addr(addr: &IpAddr) -> io::Result<String> {
154155
let data = unsafe {
155156
try!(cvt_gai(getnameinfo(inner, len,
156157
hostbuf.as_mut_ptr(), NI_MAXHOST as libc::size_t,
157-
0 as *mut _, 0, 0)));
158+
ptr::null_mut(), 0, 0)));
158159

159160
CStr::from_ptr(hostbuf.as_ptr())
160161
};

‎src/libstd/sys/unix/backtrace/printing/libbacktrace.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ pub fn print(w: &mut Write, idx: isize, addr: *mut libc::c_void,
123123
// FIXME: We also call self_exe_name() on DragonFly BSD. I haven't
124124
// tested if this is required or not.
125125
unsafe fn init_state() -> *mut backtrace_state {
126-
static mut STATE: *mut backtrace_state = 0 as *mut backtrace_state;
126+
static mut STATE: *mut backtrace_state = ptr::null_mut();
127127
static mut LAST_FILENAME: [libc::c_char; 256] = [0; 256];
128128
if !STATE.is_null() { return STATE }
129129
let selfname = if cfg!(target_os = "freebsd") ||

‎src/libstd/sys/unix/os.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,7 @@ pub fn args() -> Args {
291291
};
292292
Args {
293293
iter: vec.into_iter(),
294-
_dont_send_or_sync_me: 0 as *mut (),
294+
_dont_send_or_sync_me: ptr::null_mut(),
295295
}
296296
}
297297

@@ -347,7 +347,7 @@ pub fn args() -> Args {
347347
}
348348
}
349349

350-
Args { iter: res.into_iter(), _dont_send_or_sync_me: 0 as *mut _ }
350+
Args { iter: res.into_iter(), _dont_send_or_sync_me: ptr::null_mut() }
351351
}
352352

353353
#[cfg(any(target_os = "linux",
@@ -363,7 +363,7 @@ pub fn args() -> Args {
363363
let v: Vec<OsString> = bytes.into_iter().map(|v| {
364364
OsStringExt::from_vec(v)
365365
}).collect();
366-
Args { iter: v.into_iter(), _dont_send_or_sync_me: 0 as *mut _ }
366+
Args { iter: v.into_iter(), _dont_send_or_sync_me: ptr::null_mut() }
367367
}
368368

369369
pub struct Env {
@@ -403,7 +403,7 @@ pub fn env() -> Env {
403403
result.push(parse(CStr::from_ptr(*environ).to_bytes()));
404404
environ = environ.offset(1);
405405
}
406-
Env { iter: result.into_iter(), _dont_send_or_sync_me: 0 as *mut _ }
406+
Env { iter: result.into_iter(), _dont_send_or_sync_me: ptr::null_mut() }
407407
};
408408

409409
fn parse(input: &[u8]) -> (OsString, OsString) {
@@ -481,7 +481,7 @@ pub fn home_dir() -> Option<PathBuf> {
481481
loop {
482482
let mut buf = Vec::with_capacity(amt);
483483
let mut passwd: c::passwd = mem::zeroed();
484-
let mut result = 0 as *mut _;
484+
let mut result = ptr::null_mut();
485485
match c::getpwuid_r(me, &mut passwd, buf.as_mut_ptr(),
486486
buf.capacity() as libc::size_t,
487487
&mut result) {

‎src/libstd/sys/unix/process.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ fn make_envp(env: Option<&HashMap<OsString, OsString>>)
405405

406406
(ptrs.as_ptr() as *const _, tmps, ptrs)
407407
} else {
408-
(0 as *const _, Vec::new(), Vec::new())
408+
(ptr::null(), Vec::new(), Vec::new())
409409
}
410410
}
411411

‎src/libstd/sys/unix/stack_overflow.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ mod imp {
9393
// See comment above for why this function returns.
9494
}
9595

96-
static mut MAIN_ALTSTACK: *mut libc::c_void = 0 as *mut libc::c_void;
96+
static mut MAIN_ALTSTACK: *mut libc::c_void = ptr::null_mut();
9797

9898
pub unsafe fn init() {
9999
PAGE_SIZE = ::sys::os::page_size();
@@ -155,7 +155,7 @@ mod imp {
155155
}
156156

157157
pub unsafe fn make_handler() -> super::Handler {
158-
super::Handler { _data: 0 as *mut libc::c_void }
158+
super::Handler { _data: ptr::null_mut() }
159159
}
160160

161161
pub unsafe fn drop_handler(_handler: &mut super::Handler) {

‎src/libstd/sys/unix/sync.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,16 @@ extern {
5959
target_os = "openbsd"))]
6060
mod os {
6161
use libc;
62+
use ptr;
6263

6364
pub type pthread_mutex_t = *mut libc::c_void;
6465
pub type pthread_mutexattr_t = *mut libc::c_void;
6566
pub type pthread_cond_t = *mut libc::c_void;
6667
pub type pthread_rwlock_t = *mut libc::c_void;
6768

68-
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = 0 as *mut _;
69-
pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = 0 as *mut _;
70-
pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = 0 as *mut _;
69+
pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = ptr::null_mut();
70+
pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = ptr::null_mut();
71+
pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = ptr::null_mut();
7172
pub const PTHREAD_MUTEX_RECURSIVE: libc::c_int = 2;
7273
}
7374

@@ -213,6 +214,7 @@ mod os {
213214
#[cfg(target_os = "android")]
214215
mod os {
215216
use libc;
217+
use ptr;
216218

217219
#[repr(C)]
218220
pub struct pthread_mutex_t { value: libc::c_int }
@@ -243,7 +245,7 @@ mod os {
243245
writerThreadId: 0,
244246
pendingReaders: 0,
245247
pendingWriters: 0,
246-
reserved: [0 as *mut _; 4],
248+
reserved: [ptr::null_mut(); 4],
247249
};
248250
pub const PTHREAD_MUTEX_RECURSIVE: libc::c_int = 1;
249251
}

‎src/libstd/sys/unix/thread.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ impl Thread {
7272

7373
extern fn thread_start(main: *mut libc::c_void) -> *mut libc::c_void {
7474
unsafe { start_thread(main); }
75-
0 as *mut _
75+
ptr::null_mut()
7676
}
7777
}
7878

‎src/libstd/sys/windows/c.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use libc;
1616
use libc::{c_uint, c_ulong};
1717
use libc::{DWORD, BOOL, BOOLEAN, ERROR_CALL_NOT_IMPLEMENTED, LPVOID, HANDLE};
1818
use libc::{LPCWSTR, LONG};
19+
use ptr;
1920

2021
pub use self::GET_FILEEX_INFO_LEVELS::*;
2122
pub use self::FILE_INFO_BY_HANDLE_CLASS::*;
@@ -294,9 +295,9 @@ pub struct CRITICAL_SECTION {
294295
}
295296

296297
pub const CONDITION_VARIABLE_INIT: CONDITION_VARIABLE = CONDITION_VARIABLE {
297-
ptr: 0 as *mut _,
298+
ptr: ptr::null_mut(),
298299
};
299-
pub const SRWLOCK_INIT: SRWLOCK = SRWLOCK { ptr: 0 as *mut _ };
300+
pub const SRWLOCK_INIT: SRWLOCK = SRWLOCK { ptr: ptr::null_mut() };
300301

301302
#[repr(C)]
302303
pub struct LUID {

‎src/libstd/sys/windows/fs.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -328,12 +328,12 @@ impl File {
328328
try!(cvt({
329329
c::DeviceIoControl(self.handle.raw(),
330330
c::FSCTL_GET_REPARSE_POINT,
331-
0 as *mut _,
331+
ptr::null_mut(),
332332
0,
333333
space.as_mut_ptr() as *mut _,
334334
space.len() as libc::DWORD,
335335
&mut bytes,
336-
0 as *mut _)
336+
ptr::null_mut())
337337
}));
338338
Ok((bytes, &*(space.as_ptr() as *const c::REPARSE_DATA_BUFFER)))
339339
}
@@ -680,15 +680,15 @@ fn directory_junctions_are_directories() {
680680
c::FSCTL_SET_REPARSE_POINT,
681681
data.as_ptr() as *mut _,
682682
(*db).ReparseDataLength + 8,
683-
0 as *mut _, 0,
683+
ptr::null_mut(), 0,
684684
&mut ret,
685-
0 as *mut _)).map(|_| ())
685+
ptr::null_mut())).map(|_| ())
686686
}
687687
}
688688

689689
fn opendir(p: &Path, write: bool) -> io::Result<File> {
690690
unsafe {
691-
let mut token = 0 as *mut _;
691+
let mut token = ptr::null_mut();
692692
let mut tp: c::TOKEN_PRIVILEGES = mem::zeroed();
693693
try!(cvt(c::OpenProcessToken(c::GetCurrentProcess(),
694694
c::TOKEN_ADJUST_PRIVILEGES,
@@ -699,14 +699,14 @@ fn directory_junctions_are_directories() {
699699
"SeBackupPrivilege".as_ref()
700700
};
701701
let name = name.encode_wide().chain(Some(0)).collect::<Vec<_>>();
702-
try!(cvt(c::LookupPrivilegeValueW(0 as *const _,
702+
try!(cvt(c::LookupPrivilegeValueW(ptr::null(),
703703
name.as_ptr(),
704704
&mut tp.Privileges[0].Luid)));
705705
tp.PrivilegeCount = 1;
706706
tp.Privileges[0].Attributes = c::SE_PRIVILEGE_ENABLED;
707707
let size = mem::size_of::<c::TOKEN_PRIVILEGES>() as libc::DWORD;
708708
try!(cvt(c::AdjustTokenPrivileges(token, libc::FALSE, &mut tp, size,
709-
0 as *mut _, 0 as *mut _)));
709+
ptr::null_mut(), ptr::null_mut())));
710710
try!(cvt(libc::CloseHandle(token)));
711711

712712
File::open_reparse_point(p, write)
@@ -726,9 +726,9 @@ fn directory_junctions_are_directories() {
726726
c::FSCTL_DELETE_REPARSE_POINT,
727727
data.as_ptr() as *mut _,
728728
(*db).ReparseDataLength + 8,
729-
0 as *mut _, 0,
729+
ptr::null_mut(), 0,
730730
&mut bytes,
731-
0 as *mut _)).map(|_| ())
731+
ptr::null_mut())).map(|_| ())
732732
}
733733
}
734734
}

‎src/libstd/sys/windows/net.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use mem;
1515
use net::SocketAddr;
1616
use num::One;
1717
use ops::Neg;
18+
use ptr;
1819
use rt;
1920
use sync::Once;
2021
use sys;
@@ -80,7 +81,7 @@ impl Socket {
8081
SocketAddr::V6(..) => libc::AF_INET6,
8182
};
8283
let socket = try!(unsafe {
83-
match c::WSASocketW(fam, ty, 0, 0 as *mut _, 0,
84+
match c::WSASocketW(fam, ty, 0, ptr::null_mut(), 0,
8485
c::WSA_FLAG_OVERLAPPED) {
8586
INVALID_SOCKET => Err(last_error()),
8687
n => Ok(Socket(n)),

‎src/libstd/sys/windows/pipe.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
use io;
1212
use libc;
13+
use ptr;
1314
use sys::cvt;
1415
use sys::c;
1516
use sys::handle::Handle;
@@ -26,7 +27,7 @@ pub fn anon_pipe() -> io::Result<(AnonPipe, AnonPipe)> {
2627
let mut reader = libc::INVALID_HANDLE_VALUE;
2728
let mut writer = libc::INVALID_HANDLE_VALUE;
2829
try!(cvt(unsafe {
29-
c::CreatePipe(&mut reader, &mut writer, 0 as *mut _, 0)
30+
c::CreatePipe(&mut reader, &mut writer, ptr::null_mut(), 0)
3031
}));
3132
let reader = Handle::new(reader);
3233
let writer = Handle::new(writer);

‎src/libstd/sys/windows/thread_local.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ pub type Dtor = unsafe extern fn(*mut u8);
5858
// the thread infrastructure to be in place (useful on the borders of
5959
// initialization/destruction).
6060
static DTOR_LOCK: Mutex = Mutex::new();
61-
static mut DTORS: *mut Vec<(Key, Dtor)> = 0 as *mut _;
61+
static mut DTORS: *mut Vec<(Key, Dtor)> = ptr::null_mut();
6262

6363
// -------------------------------------------------------------------------
6464
// Native bindings

‎src/libstd/thread/scoped_tls.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -226,14 +226,15 @@ impl<T> ScopedKey<T> {
226226
#[doc(hidden)]
227227
mod imp {
228228
use cell::Cell;
229+
use ptr;
229230

230231
pub struct KeyInner<T> { inner: Cell<*mut T> }
231232

232233
unsafe impl<T> ::marker::Sync for KeyInner<T> { }
233234

234235
impl<T> KeyInner<T> {
235236
pub const fn new() -> KeyInner<T> {
236-
KeyInner { inner: Cell::new(0 as *mut _) }
237+
KeyInner { inner: Cell::new(ptr::null_mut()) }
237238
}
238239
pub unsafe fn set(&self, ptr: *mut T) { self.inner.set(ptr); }
239240
pub unsafe fn get(&self) -> *mut T { self.inner.get() }

0 commit comments

Comments
 (0)
Please sign in to comment.