- printf("(%s) return excess memory...",xbt_thread_self_name());
- mdp -> heapinfo[block + blocks].busy.type = 0;
- mdp -> heapinfo[block + blocks].busy.info.size
- = mdp -> heapinfo[block].busy.info.size - blocks;
- mdp -> heapinfo[block].busy.info.size = blocks;
- mfree (md, ADDRESS (block + blocks));
+ //printf("(%s) return excess memory...",xbt_thread_self_name());
+ for (it= block+blocks; it< mdp->heapinfo[block].busy_block.size ; it++){
+ mdp->heapinfo[it].type = 0; // FIXME that should be useless, type should already be 0 here
+ mdp->heapinfo[it].busy_block.ignore = 0;
+ }
+
+ mdp->heapinfo[block + blocks].busy_block.size
+ = mdp->heapinfo[block].busy_block.size - blocks;
+ mfree(mdp, ADDRESS(block + blocks));
+
+ mdp->heapinfo[block].busy_block.size = blocks;
+ mdp->heapinfo[block].busy_block.busy_size = requested_size;
+ mdp->heapinfo[block].busy_block.ignore = 0;
+