28 #include "../shared/cxx.h" 32 #define Mem_CreatePool(name) _Mem_CreatePool((name),__FILE__,__LINE__) 33 #define Mem_DeletePool(pool) _Mem_DeletePool((pool),__FILE__,__LINE__) 35 #define Mem_Free(ptr) _Mem_Free((ptr),__FILE__,__LINE__) 36 #define Mem_FreeTag(pool,tagNum) _Mem_FreeTag((pool),(tagNum),__FILE__,__LINE__) 37 #define Mem_FreePool(pool) _Mem_FreePool((pool),__FILE__,__LINE__) 38 #define Mem_AllocTypeN(type, n) static_cast<type*>(Mem_Alloc(sizeof(type) * (n))) 39 #define Mem_AllocType(type) static_cast<type*>(Mem_Alloc(sizeof(type))) 40 #define Mem_Alloc(size) Mem_PoolAlloc((size), com_genericPool, 0) 41 #define Mem_PoolAlloc(size,pool,tagNum) _Mem_Alloc((size),true,(pool),(tagNum),__FILE__,__LINE__) 42 #define Mem_PoolAllocTypeN(type, n, pool) static_cast<type*>(Mem_PoolAlloc(sizeof(type) * (n), (pool), 0)) 43 #define Mem_PoolAllocType(type, pool) static_cast<type*>(Mem_PoolAllocTypeN(type, 1, (pool))) 44 #define Mem_ReAlloc(ptr,size) _Mem_ReAlloc((ptr),(size),__FILE__,__LINE__) 45 #define Mem_SafeReAlloc(ptr, size) ((ptr) ? Mem_ReAlloc(ptr, size) : Mem_Alloc(size)) 47 #define Mem_Dup(type, in, n) static_cast<type*>(_Mem_PoolDup(1 ? (in) : static_cast<type*>(0) , sizeof(type) * (n), com_genericPool, 0, __FILE__, __LINE__)) 48 #define Mem_StrDup(in) _Mem_PoolStrDup((in),com_genericPool,0,__FILE__,__LINE__) 49 #define Mem_PoolStrDupTo(in,out,pool,tagNum) _Mem_PoolStrDupTo((in),(out),(pool),(tagNum),__FILE__,__LINE__) 50 #define Mem_PoolStrDup(in,pool,tagNum) _Mem_PoolStrDup((in),(pool),(tagNum),__FILE__,__LINE__) 51 #define Mem_PoolSize(pool) _Mem_PoolSize((pool)) 52 #define Mem_ChangeTag(pool,tagFrom,tagTo) _Mem_ChangeTag((pool),(tagFrom),(tagTo)) 54 #define Mem_CheckGlobalIntegrity() _Mem_CheckGlobalIntegrity(__FILE__,__LINE__) 60 void _Mem_Free(
void* ptr,
const char* fileName,
const int fileLine);
64 void*
_Mem_ReAlloc(
void* ptr,
size_t size,
const char* fileName,
const int fileLine);
66 char*
_Mem_PoolStrDupTo(
const char* in,
char** out,
memPool_t* pool,
const int tagNum,
const char* fileName,
const int fileLine);
67 void*
_Mem_PoolDup(
const void* in,
size_t size,
memPool_t* pool,
const int tagNum,
const char* fileName,
const int fileLine);
80 void Mem_InitCallbacks(
void);
81 void Mem_ShutdownCallbacks(
void);
void _Mem_FreePool(memPool_t *pool, const char *fileName, const int fileLine)
Free all items within a pool.
QGL_EXTERN GLint GLenum GLboolean GLsizei const GLvoid * pointer
char * _Mem_PoolStrDup(const char *in, memPool_t *pool, const int tagNum, const char *fileName, const int fileLine) __attribute__((malloc))
No need to null terminate the extra spot because Mem_Alloc returns zero-filled memory.
uint32_t _Mem_PoolSize(memPool_t *pool)
void _Mem_Free(void *ptr, const char *fileName, const int fileLine)
bool _Mem_AllocatedInPool(memPool_t *pool, const void *pointer)
void * _Mem_PoolDup(const void *in, size_t size, memPool_t *pool, const int tagNum, const char *fileName, const int fileLine)
memPool_t * _Mem_CreatePool(const char *name, const char *fileName, const int fileLine) __attribute__((malloc))
void _Mem_CheckGlobalIntegrity(const char *fileName, const int fileLine)
void _Mem_DeletePool(memPool_t *pool, const char *fileName, const int fileLine)
void * _Mem_ReAlloc(void *ptr, size_t size, const char *fileName, const int fileLine)
QGL_EXTERN GLuint GLsizei GLsizei GLint GLenum GLchar * name
uint32_t _Mem_ChangeTag(memPool_t *pool, const int tagFrom, const int tagTo)
void * _Mem_Alloc(size_t size, bool zeroFill, memPool_t *pool, const int tagNum, const char *fileName, const int fileLine) __attribute__((malloc))
Optionally returns 0 filled memory allocated in a pool with a tag.
char * _Mem_PoolStrDupTo(const char *in, char **out, memPool_t *pool, const int tagNum, const char *fileName, const int fileLine)
Saves a string to client hunk.
void _Mem_FreeTag(memPool_t *pool, const int tagNum, const char *fileName, const int fileLine)
Free memory blocks assigned to a specified tag within a pool.