void B_Free(void *ptr) { #ifdef BOT_ZMALLOC int i = 0; #ifdef BOTMEMTRACK int free = 0; int used = 0; while (i < MAX_BALLOC) { if (!BAllocList[i]) { free++; } else { used++; } i++; } G_Printf("Allocations used: %i\nFree allocation slots: %i\n", used, free); i = 0; #endif while (i < MAX_BALLOC) { if (BAllocList[i] == ptr) { BAllocList[i] = NULL; break; } i++; } if (i == MAX_BALLOC) { //Likely because the limit was exceeded and we're now freeing the chunk manually as we hoped would happen #ifdef DEBUG G_Printf("WARNING: Freeing allocation which is not in the allocation structure\n"); #endif } trap_BotFreeMemoryGame(ptr); #endif }
void B_CleanupAlloc(void) { #ifdef BOT_ZMALLOC int i = 0; while (i < MAX_BALLOC) { if (BAllocList[i]) { trap_BotFreeMemoryGame(BAllocList[i]); BAllocList[i] = NULL; } i++; } #endif }
void B_CleanupAlloc(void) { for(int i=0; i<MAX_WPARRAY_SIZE; i++) { if(gWPArray[i]) { Z_Free(gWPArray[i]); gWPArray[i] = NULL; } } #ifdef BOT_ZMALLOC int i = 0; while (i < MAX_BALLOC) { if (BAllocList[i]) { trap_BotFreeMemoryGame(BAllocList[i]); BAllocList[i] = NULL; } i++; } #endif }