void Grid_Container::new_memory() { // delete old memory, if any delete_memory(); // allocate new _cells = new Cell[_num_cells]; _ci = new int[num_dim()]; }
static char evaluate_freeable(char *ptr, char *previous, char *mem, char *next) { if (*PAGE_SIZE(mem) == ROUND_PAGE(*DATA_SIZE(ptr, 0) + PAGE_META + DATA_META)) return (unmap_page(previous, mem, next)); delete_memory(ptr, mem); if (!memory_is_set(mem + PAGE_META, *PAGE_SIZE(mem) - PAGE_META)) return (unmap_page(previous, mem, next)); return (0); }