about summary refs log tree commit diff
path: root/library/alloc/src
diff options
context:
space:
mode:
authorTim Diekmann <tim.diekmann@3dvision.de>2020-08-20 11:55:41 +0200
committerTim Diekmann <tim.diekmann@3dvision.de>2020-08-20 11:56:46 +0200
commit46b547cb5861febd3e0401acb0af6f65be775948 (patch)
tree2f69c7ddeabb9648836c2a8a4911c1876711e1dd /library/alloc/src
parent303ee3fd8382947d0da7a728c728bc672dc0f7be (diff)
downloadrust-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.rs7
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)
     };