]> git.lizzy.rs Git - rust.git/commitdiff
Make `grow_impl` unsafe
authorTim Diekmann <tim.diekmann@3dvision.de>
Tue, 18 Aug 2020 13:22:10 +0000 (15:22 +0200)
committerTim Diekmann <tim.diekmann@3dvision.de>
Tue, 18 Aug 2020 13:22:10 +0000 (15:22 +0200)
library/alloc/src/alloc.rs
library/std/src/alloc.rs

index 4f25b713d753188348ac85ff642223115f4ab07d..fa5eb1823f1a0755c721abbed9a13b5e5e5a0b84 100644 (file)
@@ -175,8 +175,9 @@ fn alloc_impl(&mut self, layout: Layout, zeroed: bool) -> Result<NonNull<[u8]>,
         }
     }
 
+    // Safety: Same as `AllocRef::grow`
     #[inline]
-    fn grow_impl(
+    unsafe fn grow_impl(
         &mut self,
         ptr: NonNull<u8>,
         layout: Layout,
@@ -241,7 +242,8 @@ unsafe fn grow(
         layout: Layout,
         new_size: usize,
     ) -> Result<NonNull<[u8]>, AllocErr> {
-        self.grow_impl(ptr, layout, new_size, false)
+        // SAFETY: all conditions must be upheld by the caller
+        unsafe { self.grow_impl(ptr, layout, new_size, false) }
     }
 
     #[inline]
@@ -251,7 +253,8 @@ unsafe fn grow_zeroed(
         layout: Layout,
         new_size: usize,
     ) -> Result<NonNull<[u8]>, AllocErr> {
-        self.grow_impl(ptr, layout, new_size, true)
+        // SAFETY: all conditions must be upheld by the caller
+        unsafe { self.grow_impl(ptr, layout, new_size, true) }
     }
 
     #[inline]
index bc895640fd22c16382a527999aedb03df0863d40..b4009c86419d5148e3fb6f79a17e6d43b1d692e0 100644 (file)
@@ -149,8 +149,9 @@ fn alloc_impl(&mut self, layout: Layout, zeroed: bool) -> Result<NonNull<[u8]>,
         }
     }
 
+    // Safety: Same as `AllocRef::grow`
     #[inline]
-    fn grow_impl(
+    unsafe fn grow_impl(
         &mut self,
         ptr: NonNull<u8>,
         layout: Layout,
@@ -217,7 +218,8 @@ unsafe fn grow(
         layout: Layout,
         new_size: usize,
     ) -> Result<NonNull<[u8]>, AllocErr> {
-        self.grow_impl(ptr, layout, new_size, false)
+        // SAFETY: all conditions must be upheld by the caller
+        unsafe { self.grow_impl(ptr, layout, new_size, false) }
     }
 
     #[inline]
@@ -227,7 +229,8 @@ unsafe fn grow_zeroed(
         layout: Layout,
         new_size: usize,
     ) -> Result<NonNull<[u8]>, AllocErr> {
-        self.grow_impl(ptr, layout, new_size, true)
+        // SAFETY: all conditions must be upheld by the caller
+        unsafe { self.grow_impl(ptr, layout, new_size, true) }
     }
 
     #[inline]