diff options
| author | Tim Diekmann <tim.diekmann@3dvision.de> | 2020-08-20 11:55:41 +0200 |
|---|---|---|
| committer | Tim Diekmann <tim.diekmann@3dvision.de> | 2020-08-20 11:56:46 +0200 |
| commit | 46b547cb5861febd3e0401acb0af6f65be775948 (patch) | |
| tree | 2f69c7ddeabb9648836c2a8a4911c1876711e1dd /library/alloc/src | |
| parent | 303ee3fd8382947d0da7a728c728bc672dc0f7be (diff) | |
| download | rust-46b547cb5861febd3e0401acb0af6f65be775948.tar.gz rust-46b547cb5861febd3e0401acb0af6f65be775948.zip | |
Assume same alignment in `RawVec`
Diffstat (limited to 'library/alloc/src')
| -rw-r--r-- | library/alloc/src/raw_vec.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/library/alloc/src/raw_vec.rs b/library/alloc/src/raw_vec.rs index dafbb0acd11..05382d0b559 100644 --- a/library/alloc/src/raw_vec.rs +++ b/library/alloc/src/raw_vec.rs @@ -3,6 +3,7 @@ use core::alloc::LayoutErr; use core::cmp; +use core::intrinsics; use core::mem::{self, ManuallyDrop, MaybeUninit}; use core::ops::Drop; use core::ptr::{NonNull, Unique}; @@ -495,7 +496,11 @@ where let memory = if let Some((ptr, old_layout)) = current_memory { debug_assert_eq!(old_layout.align(), new_layout.align()); - unsafe { alloc.grow(ptr, old_layout, new_layout) } + unsafe { + // The allocator checks for alignment equality + intrinsics::assume(old_layout.align() == new_layout.align()); + alloc.grow(ptr, old_layout, new_layout) + } } else { alloc.alloc(new_layout) }; |
