Botan 1.10.17
Botan::Malloc_Allocator Class Reference

#include <defalloc.h>

Inheritance diagram for Botan::Malloc_Allocator:
Botan::Allocator

Public Member Functions

void * allocate (size_t)
void deallocate (void *, size_t)
virtual void destroy ()
virtual void init ()
std::string type () const

Static Public Member Functions

static Allocatorget (bool locking)

Detailed Description

Allocator using malloc

Definition at line 18 of file defalloc.h.

Member Function Documentation

◆ allocate()

void * Botan::Malloc_Allocator::allocate ( size_t n)
virtual

Allocate a block of memory

Parameters
nhow many bytes to allocate
Returns
pointer to n bytes of memory

Implements Botan::Allocator.

Definition at line 55 of file defalloc.cpp.

56 {
57 void* ptr = do_malloc(n, false);
58 if(!ptr)
59 throw Memory_Exhaustion();
60 return ptr;
61 }

◆ deallocate()

void Botan::Malloc_Allocator::deallocate ( void * ptr,
size_t n )
virtual

Deallocate memory allocated with allocate()

Parameters
ptrthe pointer returned by allocate()
nthe size of the block pointed to by ptr

Implements Botan::Allocator.

Definition at line 66 of file defalloc.cpp.

67 {
68 do_free(ptr, n, false);
69 }

◆ destroy()

virtual void Botan::Allocator::destroy ( )
inlinevirtualinherited

Shutdown the allocator

Reimplemented in Botan::Pooling_Allocator.

Definition at line 58 of file allocate.h.

58{}

◆ get()

Allocator * Botan::Allocator::get ( bool locking)
staticinherited

Acquire a pointer to an allocator

Parameters
lockingis true if the allocator should attempt to secure the memory (eg for using to store keys)
Returns
pointer to an allocator; ownership remains with library, so do not delete

Definition at line 90 of file defalloc.cpp.

91 {
92 std::string type = "";
93 if(!locking)
94 type = "malloc";
95
96 Allocator* alloc = global_state().get_allocator(type);
97 if(alloc)
98 return alloc;
99
100 throw Internal_Error("Couldn't find an allocator to use in get_allocator");
101 }
virtual std::string type() const =0
Allocator * get_allocator(const std::string &name="") const
Definition libstate.cpp:67
Library_State & global_state()
Internal_Error(const std::string &err)
Definition exceptn.h:47

References Botan::Library_State::get_allocator(), Botan::global_state(), Botan::Internal_Error::Internal_Error(), and type().

Referenced by Botan::GMP_Engine::GMP_Engine(), and Botan::MemoryRegion< T >::init().

◆ init()

virtual void Botan::Allocator::init ( )
inlinevirtualinherited

Initialize the allocator

Definition at line 53 of file allocate.h.

53{}

Referenced by Botan::Library_State::add_allocator().

◆ type()

std::string Botan::Malloc_Allocator::type ( ) const
inlinevirtual
Returns
name of this allocator type

Implements Botan::Allocator.

Definition at line 24 of file defalloc.h.

24{ return "malloc"; }

The documentation for this class was generated from the following files: