示例#1
0
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);
}
示例#2
0
static void bkfree_all() {
	//printf("bkfree_all - %d\n", (int)alloc_current);
	AllocMapIt it = alloc_allocs.begin();
	if (it != alloc_allocs.end()) {
		free((*it).first);
		++it;
	}
	alloc_current = 0;
	alloc_allocs.clear();
}
示例#3
0
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;
}