static bool do_free(void *address, int size) { #ifdef TRACK_ALLOCATIONS uae_u32 allocated_size = remove_allocation(address); assert(allocated_size == size); #endif #ifdef _WIN32 return VirtualFree(address, 0, MEM_RELEASE) != 0; #else if (munmap(address, size) != 0) { uae_log("VM: uae_vm_free(%p, %d) munmap failed (%d)\n", address, size, errno); return false; } #endif return true; }
static void free_area(struct area *area) { fill(area->area, area->area_size, FREE_AREA_PATTERN); put_on_free_ring(area); remove_allocation(area); }