Replace 0 as *const/mut T with ptr::null/null_mut()

This commit is contained in:
we 2015-01-19 08:27:09 +03:00
parent 378fb5846d
commit 2c2480df5d
19 changed files with 65 additions and 55 deletions

View file

@ -46,6 +46,7 @@ use core::prelude::*;
use alloc::boxed::Box;
use core::mem;
use core::ptr;
use core::cell::UnsafeCell;
use sync::atomic::{AtomicPtr, Ordering};
@ -82,7 +83,7 @@ unsafe impl<T:Send> Sync for Queue<T> { }
impl<T> Node<T> {
unsafe fn new(v: Option<T>) -> *mut Node<T> {
mem::transmute(box Node {
next: AtomicPtr::new(0 as *mut Node<T>),
next: AtomicPtr::new(ptr::null_mut()),
value: v,
})
}

View file

@ -59,6 +59,7 @@ use core::prelude::*;
use core::cell::Cell;
use core::marker;
use core::mem;
use core::ptr;
use core::uint;
use sync::mpsc::{Receiver, RecvError};
@ -130,8 +131,8 @@ impl Select {
pub fn new() -> Select {
Select {
marker1: marker::NoSend,
head: 0 as *mut Handle<'static, ()>,
tail: 0 as *mut Handle<'static, ()>,
head: ptr::null_mut(),
tail: ptr::null_mut(),
next_id: Cell::new(1),
}
}
@ -144,8 +145,8 @@ impl Select {
#[cfg(not(stage0))] // NOTE remove cfg after next snapshot
pub fn new() -> Select {
Select {
head: 0 as *mut Handle<'static, ()>,
tail: 0 as *mut Handle<'static, ()>,
head: ptr::null_mut(),
tail: ptr::null_mut(),
next_id: Cell::new(1),
}
}
@ -159,8 +160,8 @@ impl Select {
Handle {
id: id,
selector: self,
next: 0 as *mut Handle<'static, ()>,
prev: 0 as *mut Handle<'static, ()>,
next: ptr::null_mut(),
prev: ptr::null_mut(),
added: false,
rx: rx,
packet: rx,
@ -325,8 +326,8 @@ impl<'rx, T: Send> Handle<'rx, T> {
(*self.next).prev = self.prev;
}
self.next = 0 as *mut Handle<'static, ()>;
self.prev = 0 as *mut Handle<'static, ()>;
self.next = ptr::null_mut();
self.prev = ptr::null_mut();
self.added = false;
}

View file

@ -39,6 +39,7 @@ use core::prelude::*;
use alloc::boxed::Box;
use core::mem;
use core::ptr;
use core::cell::UnsafeCell;
use sync::atomic::{AtomicPtr, AtomicUsize, Ordering};
@ -82,7 +83,7 @@ impl<T: Send> Node<T> {
unsafe {
mem::transmute(box Node {
value: None,
next: AtomicPtr::new(0 as *mut Node<T>),
next: AtomicPtr::new(ptr::null_mut::<Node<T>>()),
})
}
}
@ -131,7 +132,7 @@ impl<T: Send> Queue<T> {
let n = self.alloc();
assert!((*n).value.is_none());
(*n).value = Some(t);
(*n).next.store(0 as *mut Node<T>, Ordering::Relaxed);
(*n).next.store(ptr::null_mut(), Ordering::Relaxed);
(**self.head.get()).next.store(n, Ordering::Release);
*self.head.get() = n;
}

View file

@ -40,6 +40,7 @@ use self::Blocker::*;
use vec::Vec;
use core::mem;
use core::ptr;
use sync::atomic::{Ordering, AtomicUsize};
use sync::mpsc::blocking::{self, WaitToken, SignalToken};
@ -145,8 +146,8 @@ impl<T: Send> Packet<T> {
cap: cap,
canceled: None,
queue: Queue {
head: 0 as *mut Node,
tail: 0 as *mut Node,
head: ptr::null_mut(),
tail: ptr::null_mut(),
},
buf: Buffer {
buf: range(0, cap + if cap == 0 {1} else {0}).map(|_| None).collect(),
@ -160,7 +161,7 @@ impl<T: Send> Packet<T> {
// wait until a send slot is available, returning locked access to
// the channel state.
fn acquire_send_slot(&self) -> MutexGuard<State<T>> {
let mut node = Node { token: None, next: 0 as *mut Node };
let mut node = Node { token: None, next: ptr::null_mut() };
loop {
let mut guard = self.lock.lock().unwrap();
// are we ready to go?
@ -343,8 +344,8 @@ impl<T: Send> Packet<T> {
Vec::new()
};
let mut queue = mem::replace(&mut guard.queue, Queue {
head: 0 as *mut Node,
tail: 0 as *mut Node,
head: ptr::null_mut(),
tail: ptr::null_mut(),
});
let waiter = match mem::replace(&mut guard.blocker, NoneBlocked) {
@ -453,7 +454,7 @@ impl Queue {
fn enqueue(&mut self, node: &mut Node) -> WaitToken {
let (wait_token, signal_token) = blocking::tokens();
node.token = Some(signal_token);
node.next = 0 as *mut Node;
node.next = ptr::null_mut();
if self.tail.is_null() {
self.head = node as *mut Node;
@ -475,10 +476,10 @@ impl Queue {
let node = self.head;
self.head = unsafe { (*node).next };
if self.head.is_null() {
self.tail = 0 as *mut Node;
self.tail = ptr::null_mut();
}
unsafe {
(*node).next = 0 as *mut Node;
(*node).next = ptr::null_mut();
Some((*node).token.take().unwrap())
}
}