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/libstd | |
| parent | 2ad26e850ed5dfedda8c96d7315aee50145ceedd (diff) | |
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/libstd')
| -rw-r--r-- | src/libstd/collections/hash/table.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/libstd/collections/hash/table.rs b/src/libstd/collections/hash/table.rs index 2616bc52785..349462aebe3 100644 --- a/src/libstd/collections/hash/table.rs +++ b/src/libstd/collections/hash/table.rs @@ -15,7 +15,7 @@ use cmp; use hash::{Hash, Hasher}; use iter::{Iterator, ExactSizeIterator}; use marker::{Copy, Send, Sync, Sized, self}; -use mem::{min_align_of, size_of}; +use mem::{align_of, size_of}; use mem; use num::wrapping::OverflowingOps; use ops::{Deref, DerefMut, Drop}; @@ -553,9 +553,9 @@ fn calculate_allocation(hash_size: usize, hash_align: usize, vals_align); let (end_of_vals, oflo2) = vals_offset.overflowing_add(vals_size); - let min_align = cmp::max(hash_align, cmp::max(keys_align, vals_align)); + let align = cmp::max(hash_align, cmp::max(keys_align, vals_align)); - (min_align, hash_offset, end_of_vals, oflo || oflo2) + (align, hash_offset, end_of_vals, oflo || oflo2) } #[test] @@ -597,9 +597,9 @@ impl<K, V> RawTable<K, V> { // factored out into a different function. let (malloc_alignment, hash_offset, size, oflo) = calculate_allocation( - hashes_size, min_align_of::<u64>(), - keys_size, min_align_of::< K >(), - vals_size, min_align_of::< V >()); + hashes_size, align_of::<u64>(), + keys_size, align_of::< K >(), + vals_size, align_of::< V >()); assert!(!oflo, "capacity overflow"); @@ -630,8 +630,8 @@ impl<K, V> RawTable<K, V> { let buffer = *self.hashes as *mut u8; let (keys_offset, vals_offset, oflo) = calculate_offsets(hashes_size, - keys_size, min_align_of::<K>(), - min_align_of::<V>()); + keys_size, align_of::<K>(), + align_of::<V>()); debug_assert!(!oflo, "capacity overflow"); unsafe { RawBucket { @@ -1005,9 +1005,9 @@ impl<K, V> Drop for RawTable<K, V> { let keys_size = self.capacity * size_of::<K>(); let vals_size = self.capacity * size_of::<V>(); let (align, _, size, oflo) = - calculate_allocation(hashes_size, min_align_of::<u64>(), - keys_size, min_align_of::<K>(), - vals_size, min_align_of::<V>()); + calculate_allocation(hashes_size, align_of::<u64>(), + keys_size, align_of::<K>(), + vals_size, align_of::<V>()); debug_assert!(!oflo, "should be impossible"); |
