![]() |
Public API Reference |
#include <blockallocator.h>
Public Methods | |
csBlockAllocator (int s) | |
Construct a new block allocator which uses 'size' elements per block. More... | |
~csBlockAllocator () | |
Destruct all. More... | |
T * | Alloc () |
Allocate a new element. More... | |
void | Free (T *el) |
Deallocate an element. More... | |
void | Dump () |
For debugging: dump contents. More... |
It has NO memory overhead per allocation (unless the objects are smaller than 8 bytes) and is extremely fast, both for Alloc and Free. Only restriction is it can only be used for the same type of object.
Note that the objects are properly constructed and destructed.
WARNING: This class does VERY little error checking!
Definition at line 42 of file blockallocator.h.
|
Construct a new block allocator which uses 'size' elements per block. Using a bigger 'size' means there is more memory 'wasted' but it makes performance faster. Definition at line 116 of file blockallocator.h. References csArray::Push. |
|
Destruct all. Note that objects have to be freed properly before the block allocator is called, otherwise the destructors will not be called! In debug mode this destructor will also check that all objects are freed correctly. Definition at line 139 of file blockallocator.h. References csArray::Length. |
|
Allocate a new element.
Definition at line 156 of file blockallocator.h. |
|
For debugging: dump contents.
Definition at line 308 of file blockallocator.h. References csArray::Length. |
|
Deallocate an element. It is ok to give a NULL pointer here. Definition at line 187 of file blockallocator.h. |