pub struct Dlmalloc(/* private fields */);
Expand description
An allocator instance
Instances of this type are used to allocate blocks of memory. For best
results only use one of these. Currently doesn’t implement Drop
to release
lingering memory back to the OS. That may happen eventually though!
Implementations§
Source§impl Dlmalloc
impl Dlmalloc
Sourcepub unsafe fn malloc(&mut self, size: usize, align: usize) -> *mut u8
pub unsafe fn malloc(&mut self, size: usize, align: usize) -> *mut u8
Allocates size
bytes with align
align.
Returns a null pointer if allocation fails. Returns a valid pointer otherwise.
Safety and contracts are largely governed by the GlobalAlloc::alloc
method contracts.
Sourcepub unsafe fn calloc(&mut self, size: usize, align: usize) -> *mut u8
pub unsafe fn calloc(&mut self, size: usize, align: usize) -> *mut u8
Same as malloc
, except if the allocation succeeds it’s guaranteed to
point to size
bytes of zeros.
Sourcepub unsafe fn free(&mut self, ptr: *mut u8, _size: usize, _align: usize)
pub unsafe fn free(&mut self, ptr: *mut u8, _size: usize, _align: usize)
Deallocates a ptr
with size
and align
as the previous request used
to allocate it.
Safety and contracts are largely governed by the GlobalAlloc::dealloc
method contracts.
Sourcepub unsafe fn realloc(
&mut self,
ptr: *mut u8,
old_size: usize,
old_align: usize,
new_size: usize,
) -> *mut u8
pub unsafe fn realloc( &mut self, ptr: *mut u8, old_size: usize, old_align: usize, new_size: usize, ) -> *mut u8
Reallocates ptr
, a previous allocation with old_size
and
old_align
, to have new_size
and the same alignment as before.
Returns a null pointer if the memory couldn’t be reallocated, but ptr
is still valid. Returns a valid pointer and frees ptr
if the request
is satisfied.
Safety and contracts are largely governed by the GlobalAlloc::realloc
method contracts.
Sourcepub unsafe fn get_alloced_mem_size(&self) -> usize
pub unsafe fn get_alloced_mem_size(&self) -> usize
Returns alloced mem size