static void bkfree(fz_memorycontext *mem, void *p) { AllocMapIt it = alloc_allocs.find(p); if (it != alloc_allocs.end()) { alloc_current -= (*it).second; alloc_allocs.erase(it); } ++alloc_frees; free(p); }
void NF_delete(void* ptr) { //Unless allocation tracking is disabled, remove tracked pointer { lock_guard<recursive_mutex> memoryLock(memoryMutex); if (!allocDisabled) allocMap.erase(ptr); } //Free the pointer free(ptr); }
static void *bkrealloc(fz_memorycontext *mem, void *p, int n) { ++alloc_reallocs; alloc_realloc_size += n; alloc_large_realloc = alloc_large_realloc < n ? n : alloc_large_realloc; AllocMapIt it = alloc_allocs.find(p); if (it != alloc_allocs.end()) { alloc_current -= (*it).second; alloc_allocs.erase(it); } void* r = realloc(p, n); alloc_allocs[r] = n; alloc_current += n; return r; }