return mmalloc(mdp, 0);
} else if (ptr == NULL) {
return mmalloc(mdp, size);
return mmalloc(mdp, 0);
} else if (ptr == NULL) {
return mmalloc(mdp, size);
/* The new size is smaller; return excess memory to the free list. */
//printf("(%s) return excess memory...",xbt_thread_self_name());
/* The new size is smaller; return excess memory to the free list. */
//printf("(%s) return excess memory...",xbt_thread_self_name());
mdp->heapinfo[block + blocks].busy_block.size
= mdp->heapinfo[block].busy_block.size - blocks;
mdp->heapinfo[block].busy_block.size = blocks;
mdp->heapinfo[block].busy_block.busy_size = size;
mdp->heapinfo[block + blocks].busy_block.size
= mdp->heapinfo[block].busy_block.size - blocks;
mdp->heapinfo[block].busy_block.size = blocks;
mdp->heapinfo[block].busy_block.busy_size = size;
mfree(mdp, ADDRESS(block + blocks));
result = ptr;
} else if (blocks == mdp->heapinfo[block].busy_block.size) {
mfree(mdp, ADDRESS(block + blocks));
result = ptr;
} else if (blocks == mdp->heapinfo[block].busy_block.size) {