mdp->heapinfo[block].busy_block.size = blocks;
mdp->heapinfo[block].busy_block.busy_size = requested_size;
+ mdp->heapinfo[block].busy_block.ignore = 0;
+ mdp->heapinfo[block].busy_block.equal_to = NULL;
result = ptr;
} else if (blocks == mdp->heapinfo[block].busy_block.size) {
/* No block size change necessary; only update the requested size */
result = ptr;
mdp->heapinfo[block].busy_block.busy_size = requested_size;
+ mdp->heapinfo[block].busy_block.ignore = 0;
+ mdp->heapinfo[block].busy_block.equal_to = NULL;
} else {
/* Won't fit, so allocate a new region that will.
mdp->heaplimit = oldlimit;
result = mmalloc_no_memset(mdp, requested_size);
+ //fprintf(stderr,"remalloc(%zu)~>%p\n",requested_size,result);
+
if (ptr != result)
memmove(result, ptr, blocks * BLOCKSIZE);
/* FIXME: we should memset the end of the recently area */
result = ptr;
int frag_nb = RESIDUAL(result, BLOCKSIZE) >> type;
mdp->heapinfo[block].busy_frag.frag_size[frag_nb] = requested_size;
+ mdp->heapinfo[block].busy_frag.ignore[frag_nb] = 0;
+ mdp->heapinfo[block].busy_frag.equal_to[frag_nb] = NULL;
} else { /* fragment -> Either other fragment, or block */
/* The new size is different; allocate a new space,