Inherits DD::Image::IAllocator.
Public Member Functions | |
HeapAllocator (const char *allocatorName) | |
void * | allocate (size_t size) |
template<typename T > | |
T * | allocate (size_t numItems) |
template<typename T > | |
T * | New () |
void | deallocate (void *memory) |
void | setObjAddress (void *address) |
template<typename T > | |
void | Delete (T *memory) |
virtual const char * | getName () const |
virtual const char * | getType () const |
virtual size_t | getRequestedUsage () const |
virtual size_t | getRequestedHighWaterMark () const |
virtual void | resetHighWaterMark () |
virtual const AllocationTracker * | getTracker () const |
Heap Allocator
This is a very simple, thread-safe Heap allocator which calls through to DD::Image::Memory and tracks how much memory its using. Additionally, if FN_TRACK_MEMORY_ALLOCATIONS is defined (in Memory.h), and the NUKE_TRACK_OBJECT_ALLOCATIONS environment variable is set to 1, allocations using this allocator will be tracked between checkpoints, so that leaks can be identified. See the _nuke_internal.memAllocCheckpoint()/memAllocInfo() Python API calls for details.
void DD::Image::HeapAllocator::setObjAddress | ( | void * | address | ) |
Called from constructors of objects allocated using this allocator with their this pointer. This allows the allocation tracker to track the actual object address within an allocated block.