X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=zone.c;h=196324375527c9e48170c890c0180366323116e5;hb=89c97e5914f82a665bfc57d521af35b12b4ad091;hp=b0decee99a922db24a6e2f1ebf50a972d5adef47;hpb=99dc7490c17b02fd914d2a0c021753a42acde35d;p=xonotic%2Fdarkplaces.git diff --git a/zone.c b/zone.c index b0decee9..19632437 100644 --- a/zone.c +++ b/zone.c @@ -21,9 +21,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "quakedef.h" +cvar_t developer_memory = {0, "developer_memory", "0"}; + mempool_t *poolchain = NULL; -void *_Mem_Alloc(mempool_t *pool, int size, char *filename, int fileline) +void *_Mem_Alloc(mempool_t *pool, int size, const char *filename, int fileline) { #if MEMCLUMPING int i, j, k, needed, endbit, largest; @@ -34,7 +36,8 @@ void *_Mem_Alloc(mempool_t *pool, int size, char *filename, int fileline) return NULL; if (pool == NULL) Sys_Error("Mem_Alloc: pool == NULL (alloc at %s:%i)", filename, fileline); - Con_DPrintf("Mem_Alloc: pool %s, file %s:%i, size %i bytes\n", pool->name, filename, fileline, size); + if (developer.integer && developer_memory.integer) + Con_Printf("Mem_Alloc: pool %s, file %s:%i, size %i bytes\n", pool->name, filename, fileline, size); pool->totalsize += size; #if MEMCLUMPING if (size < 4096) @@ -119,7 +122,7 @@ choseclump: return (void *)((qbyte *) mem + sizeof(memheader_t)); } -void _Mem_Free(void *data, char *filename, int fileline) +void _Mem_Free(void *data, const char *filename, int fileline) { #if MEMCLUMPING int i, firstblock, endblock; @@ -136,7 +139,8 @@ void _Mem_Free(void *data, char *filename, int fileline) if (*((qbyte *) mem + sizeof(memheader_t) + mem->size) != MEMHEADER_SENTINEL2) Sys_Error("Mem_Free: trashed header sentinel 2 (alloc at %s:%i, free at %s:%i)", mem->filename, mem->fileline, filename, fileline); pool = mem->pool; - Con_DPrintf("Mem_Free: pool %s, alloc %s:%i, free %s:%i, size %i bytes\n", pool->name, mem->filename, mem->fileline, filename, fileline, mem->size); + if (developer.integer && developer_memory.integer) + Con_Printf("Mem_Free: pool %s, alloc %s:%i, free %s:%i, size %i bytes\n", pool->name, mem->filename, mem->fileline, filename, fileline, mem->size); // unlink memheader from doubly linked list if ((mem->prev ? mem->prev->next != mem : pool->chain != mem) || (mem->next && mem->next->prev != mem)) Sys_Error("Mem_Free: not allocated or double freed (free at %s:%i)", filename, fileline); @@ -197,7 +201,7 @@ void _Mem_Free(void *data, char *filename, int fileline) #endif } -mempool_t *_Mem_AllocPool(char *name, char *filename, int fileline) +mempool_t *_Mem_AllocPool(const char *name, const char *filename, int fileline) { mempool_t *pool; pool = malloc(sizeof(mempool_t)); @@ -217,7 +221,7 @@ mempool_t *_Mem_AllocPool(char *name, char *filename, int fileline) return pool; } -void _Mem_FreePool(mempool_t **pool, char *filename, int fileline) +void _Mem_FreePool(mempool_t **pool, const char *filename, int fileline) { mempool_t **chainaddress; if (*pool) @@ -243,7 +247,7 @@ void _Mem_FreePool(mempool_t **pool, char *filename, int fileline) } } -void _Mem_EmptyPool(mempool_t *pool, char *filename, int fileline) +void _Mem_EmptyPool(mempool_t *pool, const char *filename, int fileline) { if (pool == NULL) Sys_Error("Mem_EmptyPool: pool == NULL (emptypool at %s:%i)", filename, fileline); @@ -257,7 +261,7 @@ void _Mem_EmptyPool(mempool_t *pool, char *filename, int fileline) Mem_Free((void *)((qbyte *) pool->chain + sizeof(memheader_t))); } -void _Mem_CheckSentinels(void *data, char *filename, int fileline) +void _Mem_CheckSentinels(void *data, const char *filename, int fileline) { memheader_t *mem; @@ -272,7 +276,7 @@ void _Mem_CheckSentinels(void *data, char *filename, int fileline) } #if MEMCLUMPING -static void _Mem_CheckClumpSentinels(memclump_t *clump, char *filename, int fileline) +static void _Mem_CheckClumpSentinels(memclump_t *clump, const char *filename, int fileline) { // this isn't really very useful if (clump->sentinel1 != MEMCLUMP_SENTINEL) @@ -282,7 +286,7 @@ static void _Mem_CheckClumpSentinels(memclump_t *clump, char *filename, int file } #endif -void _Mem_CheckSentinelsGlobal(char *filename, int fileline) +void _Mem_CheckSentinelsGlobal(const char *filename, int fileline) { memheader_t *mem; #if MEMCLUMPING @@ -402,5 +406,6 @@ void Memory_Init_Commands (void) { Cmd_AddCommand ("memstats", MemStats_f); Cmd_AddCommand ("memlist", MemList_f); + Cvar_RegisterVariable (&developer_memory); }