pgMem -- Memory management module

Provides the functionality to handle memory. More...


Classes

class  pgMemMgr
 TODO. More...

Defines

#define pgNew(type)   new(pgMemMgr::mallocForSystem(sizeof(type), 0, __FILE__), NULL) type
 TODO.
#define pgDelete(ptr, type)
 TODO.
#define pgNewArray(var, type, array_size)
 TODO.
#define pgDeleteArray(ptr, type)
 TODO.
#define pgMalloc(size)   pgMemMgr::mallocForSystem(size, 0, __FILE__)
 TODO.
#define pgRealloc(ptr, size)   pgMemMgr::reallocForSystem(ptr, size, 0, __FILE__)
 TODO.
#define pgFree(ptr)   pgMemMgr::freeForSystem(ptr)
 TODO.


Detailed Description

Provides the functionality to handle memory.

Define Documentation

#define pgDelete ( ptr,
type   ) 

Value:

do \
    { \
        if (!pgMemMgr::isCreated()) \
        { \
            break; \
        } \
    \
        void* ptr_ = ptr; \
    \
        if (pgMemMgr::getMemoryBlockArraySize(ptr_) > 0) \
        { \
            pgThrow(pgMemMgr::ExceptionInvalidCall); \
        } \
    \
        reinterpret_cast<type*>(ptr_)->~type(); \
        pgMemMgr::freeForSystem(ptr_); \
    } \
    while (false)
TODO.

#define pgDeleteArray ( ptr,
type   ) 

Value:

do \
    { \
        if (!pgMemMgr::isCreated()) \
        { \
            break; \
        } \
    \
        void* ptr_ = ptr; \
        u32 array_size = pgMemMgr::getMemoryBlockArraySize(ptr_); \
    \
        if (array_size == 0) \
        { \
            pgThrow(pgMemMgr::ExceptionInvalidCall); \
        } \
    \
        for (u32 i = 0; i < array_size; i++) \
        { \
            reinterpret_cast<type*>(ptr_)[i].~type(); \
        } \
    \
        pgMemMgr::freeForSystem(ptr_); \
    } \
    while (false)
TODO.

#define pgNewArray ( var,
type,
array_size   ) 

Value:

do \
    { \
        var = reinterpret_cast<type*>(pgMemMgr::mallocForSystem(sizeof(type) * array_size, array_size, __FILE__)); \
    \
        for (u32 i = 0; i < array_size; i++) \
        { \
            new(&var[i], NULL) type; \
        } \
    } \
    while (false)
TODO.


Generated on Sat Aug 15 11:24:38 2009 for Pogolyn by  doxygen 1.5.8