@@ -24,24 +24,28 @@ static mut DLMALLOC: dlmalloc::Dlmalloc = dlmalloc::DLMALLOC_INIT;
24
24
unsafe impl GlobalAlloc for System {
25
25
#[ inline]
26
26
unsafe fn alloc ( & self , layout : Layout ) -> * mut u8 {
27
+ // SAFETY: DLMALLOC.malloc() is guranteed to be safe since lock::lock() aqcuire a globl lock
27
28
let _lock = lock:: lock ( ) ;
28
29
unsafe { DLMALLOC . malloc ( layout. size ( ) , layout. align ( ) ) }
29
30
}
30
31
31
32
#[ inline]
32
33
unsafe fn alloc_zeroed ( & self , layout : Layout ) -> * mut u8 {
34
+ // SAFETY: DLMALLOC.calloc() is guranteed to be safe since lock::lock() aqcuire a globl lock
33
35
let _lock = lock:: lock ( ) ;
34
36
unsafe { DLMALLOC . calloc ( layout. size ( ) , layout. align ( ) ) }
35
37
}
36
38
37
39
#[ inline]
38
40
unsafe fn dealloc ( & self , ptr : * mut u8 , layout : Layout ) {
41
+ // SAFETY: DLMALLOC.free() is guranteed to be safe since lock::lock() aqcuire a globl lock
39
42
let _lock = lock:: lock ( ) ;
40
43
unsafe { DLMALLOC . free ( ptr, layout. size ( ) , layout. align ( ) ) }
41
44
}
42
45
43
46
#[ inline]
44
47
unsafe fn realloc ( & self , ptr : * mut u8 , layout : Layout , new_size : usize ) -> * mut u8 {
48
+ // SAFETY: DLMALLOC.realloc() is guranteed to be safe since lock::lock() aqcuire a globl lock
45
49
let _lock = lock:: lock ( ) ;
46
50
unsafe { DLMALLOC . realloc ( ptr, layout. size ( ) , layout. align ( ) , new_size) }
47
51
}
0 commit comments