Botan  1.10.9
Public Member Functions | Static Public Member Functions | List of all members
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

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  }
BigInt n
Definition: numthry.cpp:26
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  }
BigInt n
Definition: numthry.cpp:26
virtual void Botan::Allocator::destroy ( )
inlinevirtualinherited

Shutdown the allocator

Reimplemented in Botan::Pooling_Allocator.

Definition at line 58 of file allocate.h.

58 {}
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.

References alloc, Botan::Library_State::get_allocator(), Botan::Global_State_Management::global_state(), and Botan::Allocator::type().

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

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  }
Library_State & global_state()
Allocator * get_allocator(const std::string &name="") const
Definition: libstate.cpp:67
virtual std::string type() const =0
Allocator * alloc
Definition: bzip2.cpp:29
virtual void Botan::Allocator::init ( )
inlinevirtualinherited

Initialize the allocator

Definition at line 53 of file allocate.h.

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

53 {}
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: