This reference page is linked to from the following overview topics: Overview: Class Hierarchy, Memory Management.
#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. |
|
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.
|
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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.
|
|
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. |
|
static UtilExport void * | operator new[] (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate arrays of
objects. |
|
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.
|
|
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. |
|
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.
|
|
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.
|
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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.
|
|
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.
|
|
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. |
|
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. |
|
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. |
|
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. |
|
static UtilExport void * | operator new (size_t size, void *placement_ptr) |
Placement new operator. |
|
static UtilExport void | operator delete (void *ptr, void *placement_ptr) |
Placement delete operator. |
static UtilExport void* operator new | ( | size_t | size | ) | [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 UtilExport void* operator new | ( | size_t | size, |
const std::nothrow_t & | e | ||
) | [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 UtilExport void* operator new | ( | size_t | size, |
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void* operator new | ( | size_t | size, |
int | block_type, | ||
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void* operator new | ( | size_t | size, |
const std::nothrow_t & | e, | ||
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void* operator new | ( | size_t | size, |
unsigned long | flags | ||
) | [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 UtilExport void* operator new | ( | size_t | size, |
const std::nothrow_t & | e, | ||
unsigned long | flags | ||
) | [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 UtilExport void* operator new[] | ( | size_t | size | ) | [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 UtilExport void* operator new[] | ( | size_t | size, |
const std::nothrow_t & | e | ||
) | [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 UtilExport void* operator new[] | ( | size_t | size, |
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void* operator new[] | ( | size_t | size, |
int | block_type, | ||
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void* operator new[] | ( | size_t | size, |
const std::nothrow_t & | e, | ||
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void* operator new[] | ( | size_t | size, |
unsigned long | flags | ||
) | [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 UtilExport void* operator new[] | ( | size_t | size, |
const std::nothrow_t & | e, | ||
unsigned long | flags | ||
) | [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 UtilExport void operator delete | ( | void * | ptr | ) | [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 UtilExport void operator delete | ( | void * | ptr, |
const std::nothrow_t & | e | ||
) | [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 UtilExport void operator delete | ( | void * | ptr, |
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void operator delete | ( | void * | ptr, |
int | block_type, | ||
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void operator delete | ( | void * | ptr, |
const std::nothrow_t & | e, | ||
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void operator delete | ( | void * | ptr, |
unsigned long | flags | ||
) | [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 UtilExport void operator delete | ( | void * | ptr, |
const std::nothrow_t & | e, | ||
unsigned long | flags | ||
) | [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 UtilExport void operator delete[] | ( | void * | ptr | ) | [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 UtilExport void operator delete[] | ( | void * | ptr, |
const std::nothrow_t & | e | ||
) | [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 UtilExport void operator delete[] | ( | void * | ptr, |
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void operator delete[] | ( | void * | ptr, |
int | block_type, | ||
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void operator delete[] | ( | void * | ptr, |
const std::nothrow_t & | e, | ||
const char * | filename, | ||
int | line | ||
) | [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 UtilExport void operator delete[] | ( | void * | ptr, |
unsigned long | flags | ||
) | [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 UtilExport void operator delete[] | ( | void * | ptr, |
const std::nothrow_t & | e, | ||
unsigned long | flags | ||
) | [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 UtilExport void* operator new | ( | size_t | size, |
void * | placement_ptr | ||
) | [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 UtilExport void operator delete | ( | void * | ptr, |
void * | placement_ptr | ||
) | [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. |