Skip to content

Commit e847d46

Browse files
committed
migrate everything to using mem::needs_drop
1 parent 892df1d commit e847d46

File tree

5 files changed

+13
-13
lines changed

5 files changed

+13
-13
lines changed

src/libarena/lib.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#![feature(core_intrinsics)]
3333
#![feature(dropck_eyepatch)]
3434
#![feature(generic_param_attrs)]
35+
#![feature(needs_drop)]
3536
#![cfg_attr(stage0, feature(staged_api))]
3637
#![cfg_attr(test, feature(test))]
3738

@@ -82,7 +83,7 @@ impl<T> TypedArenaChunk<T> {
8283
unsafe fn destroy(&mut self, len: usize) {
8384
// The branch on needs_drop() is an -O1 performance optimization.
8485
// Without the branch, dropping TypedArena<u8> takes linear time.
85-
if intrinsics::needs_drop::<T>() {
86+
if mem::needs_drop::<T>() {
8687
let mut start = self.start();
8788
// Destroy all allocated objects.
8889
for _ in 0..len {
@@ -350,7 +351,7 @@ impl DroplessArena {
350351
#[inline]
351352
pub fn alloc<T>(&self, object: T) -> &mut T {
352353
unsafe {
353-
assert!(!intrinsics::needs_drop::<T>());
354+
assert!(!mem::needs_drop::<T>());
354355
assert!(mem::size_of::<T>() != 0);
355356

356357
self.align_for::<T>();
@@ -379,9 +380,7 @@ impl DroplessArena {
379380
#[inline]
380381
pub fn alloc_slice<T>(&self, slice: &[T]) -> &mut [T]
381382
where T: Copy {
382-
unsafe {
383-
assert!(!intrinsics::needs_drop::<T>());
384-
}
383+
assert!(!mem::needs_drop::<T>());
385384
assert!(mem::size_of::<T>() != 0);
386385
assert!(slice.len() != 0);
387386
self.align_for::<T>();

src/libstd/collections/hash/table.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ use alloc::heap::{allocate, deallocate};
1212

1313
use cmp;
1414
use hash::{BuildHasher, Hash, Hasher};
15-
use intrinsics::needs_drop;
1615
use marker;
17-
use mem::{align_of, size_of};
16+
use mem::{align_of, size_of, needs_drop};
1817
use mem;
1918
use ops::{Deref, DerefMut};
2019
use ptr::{self, Unique, Shared};

src/libstd/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@
281281
#![feature(linkage)]
282282
#![feature(macro_reexport)]
283283
#![feature(needs_panic_runtime)]
284+
#![feature(needs_drop)]
284285
#![feature(never_type)]
285286
#![feature(num_bits_bytes)]
286287
#![feature(old_wrapping)]

src/libstd/sys/redox/fast_thread_local.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,10 @@
1212
#![unstable(feature = "thread_local_internals", issue = "0")]
1313

1414
use cell::{Cell, UnsafeCell};
15-
use intrinsics;
15+
use mem;
1616
use ptr;
1717

18+
1819
pub struct Key<T> {
1920
inner: UnsafeCell<Option<T>>,
2021

@@ -37,7 +38,7 @@ impl<T> Key<T> {
3738

3839
pub fn get(&'static self) -> Option<&'static UnsafeCell<Option<T>>> {
3940
unsafe {
40-
if intrinsics::needs_drop::<T>() && self.dtor_running.get() {
41+
if mem::needs_drop::<T>() && self.dtor_running.get() {
4142
return None
4243
}
4344
self.register_dtor();
@@ -46,7 +47,7 @@ impl<T> Key<T> {
4647
}
4748

4849
unsafe fn register_dtor(&self) {
49-
if !intrinsics::needs_drop::<T>() || self.dtor_registered.get() {
50+
if !mem::needs_drop::<T>() || self.dtor_registered.get() {
5051
return
5152
}
5253

src/libstd/sys/unix/fast_thread_local.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
use cell::{Cell, UnsafeCell};
1515
use fmt;
16-
use intrinsics;
16+
use mem;
1717
use ptr;
1818

1919
pub struct Key<T> {
@@ -44,7 +44,7 @@ impl<T> Key<T> {
4444

4545
pub fn get(&'static self) -> Option<&'static UnsafeCell<Option<T>>> {
4646
unsafe {
47-
if intrinsics::needs_drop::<T>() && self.dtor_running.get() {
47+
if mem::needs_drop::<T>() && self.dtor_running.get() {
4848
return None
4949
}
5050
self.register_dtor();
@@ -53,7 +53,7 @@ impl<T> Key<T> {
5353
}
5454

5555
unsafe fn register_dtor(&self) {
56-
if !intrinsics::needs_drop::<T>() || self.dtor_registered.get() {
56+
if !mem::needs_drop::<T>() || self.dtor_registered.get() {
5757
return
5858
}
5959

0 commit comments

Comments
 (0)