X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=zone.h;h=3410c0ecc226517e61843e99d6a2e3af6d3303ab;hb=f2d11616f37d519ae75b16b1391ff0ff819811f3;hp=f49f14712d881ceabe5f0998c7e4d6d71dcdf282;hpb=bf2e9460b1c8ae1d7b6792ef2df986e8f3c2cf86;p=xonotic%2Fdarkplaces.git diff --git a/zone.h b/zone.h index f49f1471..3410c0ec 100644 --- a/zone.h +++ b/zone.h @@ -25,6 +25,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. //#define MEMCLUMPING #define POOLNAMESIZE 128 +// if set this pool will be printed in memlist reports +#define POOLFLAG_TEMP 1 #if MEMCLUMPING // give malloc padding so we can't waste most of a page at the end #define MEMCLUMPSIZE (65536 - 1536) @@ -93,6 +95,8 @@ typedef struct mempool_s // chain of clumps (if any) struct memclump_s *clumpchain; #endif + // POOLFLAG_* + int flags; // total memory allocated in this pool (inside memheaders) int totalsize; // total memory allocated in this pool (actual malloc total) @@ -117,23 +121,24 @@ mempool_t; #define Mem_Free(mem) _Mem_Free(mem, __FILE__, __LINE__) #define Mem_CheckSentinels(data) _Mem_CheckSentinels(data, __FILE__, __LINE__) #define Mem_CheckSentinelsGlobal() _Mem_CheckSentinelsGlobal(__FILE__, __LINE__) -#define Mem_AllocPool(name) _Mem_AllocPool(name, NULL, __FILE__, __LINE__) -#define Mem_AllocNestedPool(name, parent) _Mem_AllocPool(name, (parent), __FILE__, __LINE__) +#define Mem_AllocPool(name, flags, parent) _Mem_AllocPool(name, flags, parent, __FILE__, __LINE__) #define Mem_FreePool(pool) _Mem_FreePool(pool, __FILE__, __LINE__) #define Mem_EmptyPool(pool) _Mem_EmptyPool(pool, __FILE__, __LINE__) void *_Mem_Alloc(mempool_t *pool, int size, const char *filename, int fileline); void _Mem_Free(void *data, const char *filename, int fileline); -mempool_t *_Mem_AllocPool(const char *name, mempool_t *parent, const char *filename, int fileline); +mempool_t *_Mem_AllocPool(const char *name, int flags, mempool_t *parent, const char *filename, int fileline); void _Mem_FreePool(mempool_t **pool, const char *filename, int fileline); void _Mem_EmptyPool(mempool_t *pool, const char *filename, int fileline); void _Mem_CheckSentinels(void *data, const char *filename, int fileline); void _Mem_CheckSentinelsGlobal(const char *filename, int fileline); +qboolean Mem_IsAllocated(mempool_t *pool, void *data); // used for temporary allocations mempool_t *tempmempool; void Memory_Init (void); +void Memory_Shutdown (void); void Memory_Init_Commands (void); extern mempool_t *zonemempool;