Struct gharial::TestAlloc

source ·
pub struct TestAlloc<A>where
    A: GlobalAlloc,{ /* private fields */ }
Expand description

TestAlloc is a implementation for GlobalAlloc to test memory leak and so on.

It is a wrapper of another GlobalAlloc, and checks the requests delegating to the backend allocator.

The checks are followings.

  • The argument *mut u8 passed to dealloc is not null. (GlobalAlloc interface does not define the behavior.)
  • The consistency of the argument Layout. i.e. the argument passed to dealloc must matche to that passed to alloc to return the corresponding pointer.
  • All allocated memories have already been deallocated on the drop. (Note that cloned instances share the allocating memory information. The check is done when the last cloned instance is dropped.)

See also GAlloc . It is an alias to TestAlloc<std::alloc::System> .

Implementations§

source§

impl<A> TestAlloc<A>where A: GlobalAlloc,

source

pub fn providing_pointers(&self) -> Vec<(*mut u8, Layout)>

Returns the list of pointers and layouts that were allocated and not deallocated. The returned value is sorted by the pointer.

Trait Implementations§

source§

impl<A> Clone for TestAlloc<A>where A: GlobalAlloc + Clone,

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<A> Debug for TestAlloc<A>where A: GlobalAlloc + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<A> Default for TestAlloc<A>where A: GlobalAlloc + Default,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<A> Drop for TestAlloc<A>where A: GlobalAlloc,

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<A> From<A> for TestAlloc<A>where A: GlobalAlloc,

source§

fn from(inner: A) -> Self

Converts to this type from the input type.
source§

impl<A> GlobalAlloc for TestAlloc<A>where A: GlobalAlloc,

source§

unsafe fn alloc(&self, layout: Layout) -> *mut u8

Allocate memory as described by the given layout. Read more
source§

unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout)

Deallocate the block of memory at the given ptr pointer with the given layout. Read more
1.28.0 · source§

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. Read more
1.28.0 · source§

unsafe fn realloc(&self, ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8

Shrink or grow a block of memory to the given new_size in bytes. The block is described by the given ptr pointer and layout. Read more
source§

impl<A> Send for TestAlloc<A>where A: GlobalAlloc + Send,

source§

impl<A> Sync for TestAlloc<A>where A: GlobalAlloc + Send + Sync,

Auto Trait Implementations§

§

impl<A> RefUnwindSafe for TestAlloc<A>where A: RefUnwindSafe,

§

impl<A> Unpin for TestAlloc<A>where A: Unpin,

§

impl<A> UnwindSafe for TestAlloc<A>where A: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<!> for T

const: unstable · source§

fn from(t: !) -> T

Converts to this type from the input type.
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V