#[repr(C)]pub struct SnMalloc;
Implementations§
Trait Implementations§
Source§impl GlobalAlloc for SnMalloc
impl GlobalAlloc for SnMalloc
Source§unsafe fn alloc(&self, layout: Layout) -> *mut u8
unsafe fn alloc(&self, layout: Layout) -> *mut u8
Allocate the memory with the given alignment and size. On success, it returns a pointer pointing to the required memory address. On failure, it returns a null pointer. The client must assure the following things:
alignment
is greater than zero- Other constrains are the same as the rust standard library.
The program may be forced to abort if the constrains are not full-filled.
Source§unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout)
unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout)
De-allocate the memory at the given address with the given alignment and size. The client must assure the following things:
- the memory is acquired using the same allocator and the pointer points to the start position.
- Other constrains are the same as the rust standard library.
The program may be forced to abort if the constrains are not full-filled.
Source§unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8
unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8
Behaves like alloc, but also ensures that the contents are set to zero before being returned.
Source§unsafe fn realloc(
&self,
ptr: *mut u8,
layout: Layout,
new_size: usize,
) -> *mut u8
unsafe fn realloc( &self, ptr: *mut u8, layout: Layout, new_size: usize, ) -> *mut u8
Re-allocate the memory at the given address with the given alignment and size.
On success, it returns a pointer pointing to the required memory address.
The memory content within the new_size
will remains the same as previous.
On failure, it returns a null pointer. In this situation, the previous memory is not returned to the allocator.
The client must assure the following things:
- the memory is acquired using the same allocator and the pointer points to the start position
alignment
fulfills all the requirements asrust_alloc
- Other constrains are the same as the rust standard library.
The program may be forced to abort if the constrains are not full-filled.