about summary refs log tree commit diff
diff options
context:
space:
mode:
authorchansuke <chansuke@georepublic.de>2020-10-24 17:59:58 +0900
committerchansuke <chansuke@georepublic.de>2020-10-24 17:59:58 +0900
commitde87ae79610925502f45ec07cf24bac51e037ed1 (patch)
treedcbc84590575a520c566602c4f3b8c3d2f44ad8e
parenteed45107da8da6293d9cecc302ad3b9870848b51 (diff)
downloadrust-de87ae79610925502f45ec07cf24bac51e037ed1.tar.gz
rust-de87ae79610925502f45ec07cf24bac51e037ed1.zip
Add documents for DLMALLOC
-rw-r--r--library/std/src/sys/wasm/alloc.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/library/std/src/sys/wasm/alloc.rs b/library/std/src/sys/wasm/alloc.rs
index b85f4d50021..b61a7872265 100644
--- a/library/std/src/sys/wasm/alloc.rs
+++ b/library/std/src/sys/wasm/alloc.rs
@@ -24,28 +24,32 @@ static mut DLMALLOC: dlmalloc::Dlmalloc = dlmalloc::DLMALLOC_INIT;
 unsafe impl GlobalAlloc for System {
     #[inline]
     unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
-        // SAFETY:  DLMALLOC.malloc() is guranteed to be safe since lock::lock() aqcuire a globl lock
+        // SAFETY: DLMALLOC access is guranteed to be safe because the lock gives us unique and non-reentrant access.
+        // Calling malloc() is safe because preconditions on this function match the trait method preconditions.
         let _lock = lock::lock();
         unsafe { DLMALLOC.malloc(layout.size(), layout.align()) }
     }
 
     #[inline]
     unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8 {
-        // SAFETY:  DLMALLOC.calloc() is guranteed to be safe since lock::lock() aqcuire a globl lock
+        // SAFETY: DLMALLOC access is guranteed to be safe because the lock gives us unique and non-reentrant access.
+        // Calling calloc() is safe because preconditions on this function match the trait method preconditions.
         let _lock = lock::lock();
         unsafe { DLMALLOC.calloc(layout.size(), layout.align()) }
     }
 
     #[inline]
     unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout) {
-        // SAFETY:  DLMALLOC.free() is guranteed to be safe since lock::lock() aqcuire a globl lock
+        // SAFETY: DLMALLOC access is guranteed to be safe because the lock gives us unique and non-reentrant access.
+        // Calling free() is safe because preconditions on this function match the trait method preconditions.
         let _lock = lock::lock();
         unsafe { DLMALLOC.free(ptr, layout.size(), layout.align()) }
     }
 
     #[inline]
     unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {
-        // SAFETY:  DLMALLOC.realloc() is guranteed to be safe since lock::lock() aqcuire a globl lock
+        // SAFETY: DLMALLOC access is guranteed to be safe because the lock gives us unique and non-reentrant access.
+        // Calling realloc() is safe because preconditions on this function match the trait method preconditions.
         let _lock = lock::lock();
         unsafe { DLMALLOC.realloc(ptr, layout.size(), layout.align(), new_size) }
     }