#include <MaxHeap.h>
The base class in Max that controls the memory management for any class that derives from it.
The sole purpose of this class is to provide various overloads of the new and delete operators. By doing this, any class that derives from this class and doesn't implement it's own new and delete operators will see all of its memory operation go through the Max Core. Doing this permits plugins to easily benefit from the same memory allocation optimizations the Max Core has or will receive in the future. It also permits plugins linked with a different CRT than the Max Core to safely pass memory pointers to heap blocks allocated on one side of the plugin dll boundary and deallocated on the other.
If a plugin class has to implement its own new and delete operators but also derive indirectly from MaxHeapOperators, access to the new and delete operators will have to be disambiguated. For an example on how to do this with a "using" declaration, see the class MaxWrapper in maxsdk\include\maxscrpt\maxobj.h.
Static Public Member Functions | |
static UtilExport void * | operator new (size_t size) |
Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, const std::nothrow_t &e) |
Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new (size_t size, const char *filename, int line) |
New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, const std::nothrow_t &e, const char *filename, int line) |
New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new (size_t size, unsigned long flags) |
New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, const std::nothrow_t &e, unsigned long flags) |
New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new[] (size_t size) |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new[] (size_t size, const std::nothrow_t &e) |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new[] (size_t size, const char *filename, int line) |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new[] (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate arrays of objects. More... | |
static UtilExport void * | operator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line) |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void * | operator new[] (size_t size, unsigned long flags) |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More... | |
static UtilExport void * | operator new[] (size_t size, const std::nothrow_t &e, unsigned long flags) |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More... | |
static UtilExport void | operator delete (void *ptr) |
Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete (void *ptr, const std::nothrow_t &e) |
Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete (void *ptr, const char *filename, int line) |
Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete (void *ptr, int block_type, const char *filename, int line) |
Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line) |
Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete (void *ptr, unsigned long flags) |
Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags) |
Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete[] (void *ptr) |
Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete[] (void *ptr, const std::nothrow_t &e) |
Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete[] (void *ptr, const char *filename, int line) |
Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete[] (void *ptr, int block_type, const char *filename, int line) |
Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line) |
Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More... | |
static UtilExport void | operator delete[] (void *ptr, unsigned long flags) |
Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void | operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags) |
Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More... | |
static UtilExport void * | operator new (size_t size, void *placement_ptr) |
Placement new operator. More... | |
static UtilExport void | operator delete (void *ptr, void *placement_ptr) |
Placement delete operator. More... | |
static UtilExport void * | aligned_malloc (size_t size, size_t alignment) |
Allocates memory on a specified alignment boundary. More... | |
static UtilExport void * | aligned_realloc (void *ptr, size_t size, size_t alignment) |
Reallocates memory on a specified alignment boundary. More... | |
static UtilExport void | aligned_free (void *ptr) |
Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More... | |
|
static |
Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown.
[in] | size | The size of the object to be allocated |
|
static |
Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned.
[in] | size | The size of the object to be allocated |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
|
static |
New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown.
[in] | size | The size of the object to be allocated |
[in] | filename | The name of the file that contains the call to new - may be NULL |
[in] | line | The line number in the file that contains the call to new |
|
static |
New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown.
[in] | size | The size of the object to be allocated |
[in] | block_type | The type of memory to be allocated by the CRT. This is always _NORMAL_BLOCK. |
[in] | filename | The name of the file that contains the call to new - may be NULL |
[in] | line | The line number in the file that contains the call to new |
|
static |
New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned.
[in] | size | The size of the object to be allocated |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
[in] | filename | The name of the file that contains the call to new - may be NULL |
[in] | line | The line number in the file that contains the call to new |
|
static |
New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown.
[in] | size | The size of the object to be allocated |
[in] | flags | Flags specifying whether any special operations should be done when allocating memory |
|
static |
New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned.
[in] | size | The size of the object to be allocated |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
[in] | flags | Flags specifying whether any special operations should be done when allocating memory |
|
static |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
[in] | size | The size of the array of objects to be allocated |
|
static |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
[in] | size | The size of the array of objects to be allocated |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
|
static |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
[in] | size | The size of the array of objects to be allocated |
[in] | filename | The name of the file that contains the call to new - may be NULL |
[in] | line | The line number in the file that contains the call to new |
|
static |
New operator used to allocate arrays of objects.
This takes the size to be allocated, the type of memory, filename and line where new was called. If there is insufficient memory, an exception will be thrown
[in] | size | The size of the array of objects to be allocated |
[in] | block_type | The type of memory to be allocated by the CRT. This is always _NORMAL_BLOCK. |
[in] | filename | The name of the file that contains the call to new - may be NULL |
[in] | line | The line number in the file that contains the call to new |
|
static |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
[in] | size | The size of the array of objects to be allocated |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
[in] | filename | The name of the file that contains the call to new - may be NULL |
[in] | line | The line number in the file that contains the call to new |
|
static |
New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
[in] | size | The size of the array of objects to be allocated |
[in] | flags | Flags specifying whether any special operations should be done when allocating memory |
|
static |
New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
[in] | size | The size of the array of objects to be allocated |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
[in] | flags | Flags specifying whether any special operations should be done when allocating memory |
|
static |
Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the object to be deleted |
|
static |
Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen.
[in] | ptr | The void pointer to the object to be deleted |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
|
static |
Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the object to be deleted |
[in] | filename | The name of the file that contains the call to delete - may be NULL |
[in] | line | The line number in the file that contains the call to delete |
|
static |
Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the object to be deleted |
[in] | block_type | The type of memory to be allocated by the CRT. This is always _NORMAL_BLOCK. |
[in] | filename | The name of the file that contains the call to delete - may be NULL |
[in] | line | The line number in the file that contains the call to delete |
|
static |
Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen.
[in] | ptr | The void pointer to the object to be deleted |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
[in] | filename | The name of the file that contains the call to delete - may be NULL |
[in] | line | The line number in the file that contains the call to delete |
|
static |
Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the object to be deleted |
[in] | flags | Flags specifying whether any special operations should be done when allocating memory. |
|
static |
Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen.
[in] | ptr | The void pointer to the object to be deleted |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
[in] | flags | Flags specifying whether any special operations should be done when allocating memory. |
|
static |
Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the array of objects to be deleted |
|
static |
Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen.
[in] | ptr | The void pointer to the array of objects to be deleted |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
|
static |
Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the object to be deleted |
[in] | filename | The name of the file that contains the call to delete - may be NULL |
[in] | line | The line number in the file that contains the call to delete |
|
static |
Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the object to be deleted |
[in] | block_type | The type of memory to be allocated by the CRT. This is always _NORMAL_BLOCK. |
[in] | filename | The name of the file that contains the call to delete - may be NULL |
[in] | line | The line number in the file that contains the call to delete |
|
static |
Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen.
[in] | ptr | The void pointer to the object to be deleted |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
[in] | filename | The name of the file that contains the call to delete - may be NULL |
[in] | line | The line number in the file that contains the call to delete |
|
static |
Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the object to be deleted |
[in] | flags | Flags specifying whether any special operations should be done when allocating memory. |
|
static |
Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
[in] | ptr | The void pointer to the object to be deleted |
[in] | e | A std::nothrow_t to specify that no exception should be thrown |
[in] | flags | Flags specifying whether any special operations should be done when allocating memory. |
|
static |
Placement new operator.
The placement new operator should only be called with a pointer that already has been allocated in the Max' heap. You can use maxheapdirect.h to allocate yourself memory on the Max' heap.
[in] | size | The amount of memory to allocate |
[in] | placement_ptr | The location where the initialization should take place |
|
static |
Placement delete operator.
Corresponds to the placement new operator. Doesn't affect memory.
[in] | ptr | The location of the memory to release. |
[in] | placement_ptr | Location where the destruction should take place. Should be the same as ptr. |
|
static |
Allocates memory on a specified alignment boundary.
[in] | size | The amount of memory to allocate |
[in] | alignment | The alignment value, which must be an integer power of 2. |
|
static |
Reallocates memory on a specified alignment boundary.
[in] | ptr | The location of the memory to reallocate, allocated with aligned_malloc/aligned_realloc. |
[in] | size | The new amount of memory to allocate |
[in] | alignment | The alignment value, which must be an integer power of 2. |
|
static |
Frees a block of memory that was allocated with aligned_malloc/aligned_realloc.
[in] | ptr | The location of the memory to release. |