Skip to content

Commit 6d682c9

Browse files
committed
Stop using deprecated NonZero APIs
These will eventually be removed (though the NonZero<T> lang item will likely stay).
1 parent 22f7a02 commit 6d682c9

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

src/libcore/ptr.rs

+18-10
Original file line numberDiff line numberDiff line change
@@ -2341,17 +2341,21 @@ impl<T: ?Sized> Unique<T> {
23412341
///
23422342
/// `ptr` must be non-null.
23432343
pub const unsafe fn new_unchecked(ptr: *mut T) -> Self {
2344-
Unique { pointer: NonZero::new_unchecked(ptr), _marker: PhantomData }
2344+
Unique { pointer: NonZero(ptr as _), _marker: PhantomData }
23452345
}
23462346

23472347
/// Creates a new `Unique` if `ptr` is non-null.
23482348
pub fn new(ptr: *mut T) -> Option<Self> {
2349-
NonZero::new(ptr as *const T).map(|nz| Unique { pointer: nz, _marker: PhantomData })
2349+
if !ptr.is_null() {
2350+
Some(Unique { pointer: NonZero(ptr as _), _marker: PhantomData })
2351+
} else {
2352+
None
2353+
}
23502354
}
23512355

23522356
/// Acquires the underlying `*mut` pointer.
23532357
pub fn as_ptr(self) -> *mut T {
2354-
self.pointer.get() as *mut T
2358+
self.pointer.0 as *mut T
23552359
}
23562360

23572361
/// Dereferences the content.
@@ -2397,15 +2401,15 @@ impl<T: ?Sized> fmt::Pointer for Unique<T> {
23972401
#[allow(deprecated)]
23982402
impl<'a, T: ?Sized> From<&'a mut T> for Unique<T> {
23992403
fn from(reference: &'a mut T) -> Self {
2400-
Unique { pointer: NonZero::from(reference), _marker: PhantomData }
2404+
Unique { pointer: NonZero(reference as _), _marker: PhantomData }
24012405
}
24022406
}
24032407

24042408
#[unstable(feature = "ptr_internals", issue = "0")]
24052409
#[allow(deprecated)]
24062410
impl<'a, T: ?Sized> From<&'a T> for Unique<T> {
24072411
fn from(reference: &'a T) -> Self {
2408-
Unique { pointer: NonZero::from(reference), _marker: PhantomData }
2412+
Unique { pointer: NonZero(reference as _), _marker: PhantomData }
24092413
}
24102414
}
24112415

@@ -2476,19 +2480,23 @@ impl<T: ?Sized> NonNull<T> {
24762480
/// `ptr` must be non-null.
24772481
#[stable(feature = "nonnull", since = "1.25.0")]
24782482
pub const unsafe fn new_unchecked(ptr: *mut T) -> Self {
2479-
NonNull { pointer: NonZero::new_unchecked(ptr) }
2483+
NonNull { pointer: NonZero(ptr as _) }
24802484
}
24812485

24822486
/// Creates a new `NonNull` if `ptr` is non-null.
24832487
#[stable(feature = "nonnull", since = "1.25.0")]
24842488
pub fn new(ptr: *mut T) -> Option<Self> {
2485-
NonZero::new(ptr as *const T).map(|nz| NonNull { pointer: nz })
2489+
if !ptr.is_null() {
2490+
Some(NonNull { pointer: NonZero(ptr as _) })
2491+
} else {
2492+
None
2493+
}
24862494
}
24872495

24882496
/// Acquires the underlying `*mut` pointer.
24892497
#[stable(feature = "nonnull", since = "1.25.0")]
24902498
pub fn as_ptr(self) -> *mut T {
2491-
self.pointer.get() as *mut T
2499+
self.pointer.0 as *mut T
24922500
}
24932501

24942502
/// Dereferences the content.
@@ -2589,14 +2597,14 @@ impl<T: ?Sized> From<Unique<T>> for NonNull<T> {
25892597
#[allow(deprecated)]
25902598
impl<'a, T: ?Sized> From<&'a mut T> for NonNull<T> {
25912599
fn from(reference: &'a mut T) -> Self {
2592-
NonNull { pointer: NonZero::from(reference) }
2600+
NonNull { pointer: NonZero(reference as _) }
25932601
}
25942602
}
25952603

25962604
#[stable(feature = "nonnull", since = "1.25.0")]
25972605
#[allow(deprecated)]
25982606
impl<'a, T: ?Sized> From<&'a T> for NonNull<T> {
25992607
fn from(reference: &'a T) -> Self {
2600-
NonNull { pointer: NonZero::from(reference) }
2608+
NonNull { pointer: NonZero(reference as _) }
26012609
}
26022610
}

0 commit comments

Comments
 (0)