Skip to content

Commit

Permalink
migrate everything to using mem::needs_drop
Browse files Browse the repository at this point in the history
  • Loading branch information
Gankra committed May 20, 2017
1 parent 892df1d commit e847d46
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 13 deletions.
9 changes: 4 additions & 5 deletions src/libarena/lib.rs
Expand Up @@ -32,6 +32,7 @@
#![feature(core_intrinsics)]
#![feature(dropck_eyepatch)]
#![feature(generic_param_attrs)]
#![feature(needs_drop)]
#![cfg_attr(stage0, feature(staged_api))]
#![cfg_attr(test, feature(test))]

Expand Down Expand Up @@ -82,7 +83,7 @@ impl<T> TypedArenaChunk<T> {
unsafe fn destroy(&mut self, len: usize) {
// The branch on needs_drop() is an -O1 performance optimization.
// Without the branch, dropping TypedArena<u8> takes linear time.
if intrinsics::needs_drop::<T>() {
if mem::needs_drop::<T>() {
let mut start = self.start();
// Destroy all allocated objects.
for _ in 0..len {
Expand Down Expand Up @@ -350,7 +351,7 @@ impl DroplessArena {
#[inline]
pub fn alloc<T>(&self, object: T) -> &mut T {
unsafe {
assert!(!intrinsics::needs_drop::<T>());
assert!(!mem::needs_drop::<T>());
assert!(mem::size_of::<T>() != 0);

self.align_for::<T>();
Expand Down Expand Up @@ -379,9 +380,7 @@ impl DroplessArena {
#[inline]
pub fn alloc_slice<T>(&self, slice: &[T]) -> &mut [T]
where T: Copy {
unsafe {
assert!(!intrinsics::needs_drop::<T>());
}
assert!(!mem::needs_drop::<T>());
assert!(mem::size_of::<T>() != 0);
assert!(slice.len() != 0);
self.align_for::<T>();
Expand Down
3 changes: 1 addition & 2 deletions src/libstd/collections/hash/table.rs
Expand Up @@ -12,9 +12,8 @@ use alloc::heap::{allocate, deallocate};

use cmp;
use hash::{BuildHasher, Hash, Hasher};
use intrinsics::needs_drop;
use marker;
use mem::{align_of, size_of};
use mem::{align_of, size_of, needs_drop};
use mem;
use ops::{Deref, DerefMut};
use ptr::{self, Unique, Shared};
Expand Down
1 change: 1 addition & 0 deletions src/libstd/lib.rs
Expand Up @@ -281,6 +281,7 @@
#![feature(linkage)]
#![feature(macro_reexport)]
#![feature(needs_panic_runtime)]
#![feature(needs_drop)]
#![feature(never_type)]
#![feature(num_bits_bytes)]
#![feature(old_wrapping)]
Expand Down
7 changes: 4 additions & 3 deletions src/libstd/sys/redox/fast_thread_local.rs
Expand Up @@ -12,9 +12,10 @@
#![unstable(feature = "thread_local_internals", issue = "0")]

use cell::{Cell, UnsafeCell};
use intrinsics;
use mem;
use ptr;


pub struct Key<T> {
inner: UnsafeCell<Option<T>>,

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

pub fn get(&'static self) -> Option<&'static UnsafeCell<Option<T>>> {
unsafe {
if intrinsics::needs_drop::<T>() && self.dtor_running.get() {
if mem::needs_drop::<T>() && self.dtor_running.get() {
return None
}
self.register_dtor();
Expand All @@ -46,7 +47,7 @@ impl<T> Key<T> {
}

unsafe fn register_dtor(&self) {
if !intrinsics::needs_drop::<T>() || self.dtor_registered.get() {
if !mem::needs_drop::<T>() || self.dtor_registered.get() {
return
}

Expand Down
6 changes: 3 additions & 3 deletions src/libstd/sys/unix/fast_thread_local.rs
Expand Up @@ -13,7 +13,7 @@

use cell::{Cell, UnsafeCell};
use fmt;
use intrinsics;
use mem;
use ptr;

pub struct Key<T> {
Expand Down Expand Up @@ -44,7 +44,7 @@ impl<T> Key<T> {

pub fn get(&'static self) -> Option<&'static UnsafeCell<Option<T>>> {
unsafe {
if intrinsics::needs_drop::<T>() && self.dtor_running.get() {
if mem::needs_drop::<T>() && self.dtor_running.get() {
return None
}
self.register_dtor();
Expand All @@ -53,7 +53,7 @@ impl<T> Key<T> {
}

unsafe fn register_dtor(&self) {
if !intrinsics::needs_drop::<T>() || self.dtor_registered.get() {
if !mem::needs_drop::<T>() || self.dtor_registered.get() {
return
}

Expand Down

0 comments on commit e847d46

Please sign in to comment.