Pyrogenesis  trunk
Public Member Functions | Private Member Functions | Private Attributes | List of all members
HeaderlessAllocator::Impl Class Reference
Collaboration diagram for HeaderlessAllocator::Impl:
Collaboration graph
[legend]

Public Member Functions

 Impl (size_t poolSize)
 
 ~Impl ()
 
void Reset ()
 
NOTHROW_DEFINE void * Allocate (size_t size)
 
void Deallocate (u8 *p, size_t size)
 
void Validate () const
 

Private Member Functions

void AddToFreelist (u8 *p, size_t size)
 
void RemoveFromFreelist (FreedBlock *freedBlock)
 
void Coalesce (u8 *&p, size_t &size)
 expand a block by coalescing it with its free neighbor(s). More...
 
void * TakeAndSplitFreeBlock (size_t size)
 

Private Attributes

Pool m_pool
 
SegregatedRangeLists m_segregatedRangeLists
 
BoundaryTagManager m_boundaryTagManager
 
Stats m_stats
 

Constructor & Destructor Documentation

HeaderlessAllocator::Impl::Impl ( size_t  poolSize)
inline
HeaderlessAllocator::Impl::~Impl ( )
inline

Member Function Documentation

void HeaderlessAllocator::Impl::AddToFreelist ( u8 p,
size_t  size 
)
inlineprivate
NOTHROW_DEFINE void* HeaderlessAllocator::Impl::Allocate ( size_t  size)
inline
void HeaderlessAllocator::Impl::Coalesce ( u8 *&  p,
size_t &  size 
)
inlineprivate

expand a block by coalescing it with its free neighbor(s).

void HeaderlessAllocator::Impl::Deallocate ( u8 p,
size_t  size 
)
inline
void HeaderlessAllocator::Impl::RemoveFromFreelist ( FreedBlock freedBlock)
inlineprivate
void HeaderlessAllocator::Impl::Reset ( )
inline
void* HeaderlessAllocator::Impl::TakeAndSplitFreeBlock ( size_t  size)
inlineprivate
void HeaderlessAllocator::Impl::Validate ( ) const
inline

Member Data Documentation

BoundaryTagManager HeaderlessAllocator::Impl::m_boundaryTagManager
private
Pool HeaderlessAllocator::Impl::m_pool
private
SegregatedRangeLists HeaderlessAllocator::Impl::m_segregatedRangeLists
private
Stats HeaderlessAllocator::Impl::m_stats
private

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