diff options
| author | Huon Wilson <dbau.pp+github@gmail.com> | 2015-05-20 19:18:03 +1000 |
|---|---|---|
| committer | Huon Wilson <dbau.pp+github@gmail.com> | 2015-06-24 17:00:43 -0700 |
| commit | 225b116829ef76b72f01c2ebf718259c20aa7e14 (patch) | |
| tree | de81c44d7ef654e4e44eaa318308f873ff96d9d9 /src/liballoc | |
| parent | 2ad26e850ed5dfedda8c96d7315aee50145ceedd (diff) | |
| download | rust-225b116829ef76b72f01c2ebf718259c20aa7e14.tar.gz rust-225b116829ef76b72f01c2ebf718259c20aa7e14.zip | |
Make `align_of` behave like `min_align_of`.
This removes a footgun, since it is a reasonable assumption to make that pointers to `T` will be aligned to `align_of::<T>()`. This also matches the behaviour of C/C++. `min_align_of` is now deprecated. Closes #21611.
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/arc.rs | 6 | ||||
| -rw-r--r-- | src/liballoc/rc.rs | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/liballoc/arc.rs b/src/liballoc/arc.rs index 7bfeaec36d7..dd9c1d1fd18 100644 --- a/src/liballoc/arc.rs +++ b/src/liballoc/arc.rs @@ -77,7 +77,7 @@ use core::atomic; use core::atomic::Ordering::{Relaxed, Release, Acquire, SeqCst}; use core::fmt; use core::cmp::Ordering; -use core::mem::{min_align_of_val, size_of_val}; +use core::mem::{align_of_val, size_of_val}; use core::intrinsics::drop_in_place; use core::mem; use core::nonzero::NonZero; @@ -241,7 +241,7 @@ impl<T: ?Sized> Arc<T> { if self.inner().weak.fetch_sub(1, Release) == 1 { atomic::fence(Acquire); - deallocate(ptr as *mut u8, size_of_val(&*ptr), min_align_of_val(&*ptr)) + deallocate(ptr as *mut u8, size_of_val(&*ptr), align_of_val(&*ptr)) } } } @@ -565,7 +565,7 @@ impl<T: ?Sized> Drop for Weak<T> { atomic::fence(Acquire); unsafe { deallocate(ptr as *mut u8, size_of_val(&*ptr), - min_align_of_val(&*ptr)) } + align_of_val(&*ptr)) } } } } diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs index d5b6c86ef35..3dfafd0a378 100644 --- a/src/liballoc/rc.rs +++ b/src/liballoc/rc.rs @@ -162,7 +162,7 @@ use core::fmt; use core::hash::{Hasher, Hash}; use core::intrinsics::{assume, drop_in_place}; use core::marker::{self, Unsize}; -use core::mem::{self, min_align_of, size_of, min_align_of_val, size_of_val, forget}; +use core::mem::{self, align_of, size_of, align_of_val, size_of_val, forget}; use core::nonzero::NonZero; use core::ops::{CoerceUnsized, Deref}; use core::ptr; @@ -246,7 +246,7 @@ impl<T> Rc<T> { // destruct the box and skip our Drop // we can ignore the refcounts because we know we're unique deallocate(*rc._ptr as *mut u8, size_of::<RcBox<T>>(), - min_align_of::<RcBox<T>>()); + align_of::<RcBox<T>>()); forget(rc); Ok(val) } @@ -496,7 +496,7 @@ impl<T: ?Sized> Drop for Rc<T> { if self.weak() == 0 { deallocate(ptr as *mut u8, size_of_val(&*ptr), - min_align_of_val(&*ptr)) + align_of_val(&*ptr)) } } } @@ -805,7 +805,7 @@ impl<T: ?Sized> Drop for Weak<T> { // the strong pointers have disappeared. if self.weak() == 0 { deallocate(ptr as *mut u8, size_of_val(&*ptr), - min_align_of_val(&*ptr)) + align_of_val(&*ptr)) } } } |
