Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Simplify the mmalloc library further
[simgrid.git] / src / xbt / mmalloc / mfree.c
index d86b0fe..ff89699 100644 (file)
@@ -33,13 +33,6 @@ void __mmalloc_free(struct mdesc *mdp, void *ptr)
   type = mdp->heapinfo[block].busy.type;
   switch (type) {
   case 0:
-    /* Get as many statistics as early as we can.  */
-    mdp->heapstats.chunks_used--;
-    mdp->heapstats.bytes_used -=
-        mdp->heapinfo[block].busy.info.block.size * BLOCKSIZE;
-    mdp->heapstats.bytes_free +=
-        mdp->heapinfo[block].busy.info.block.size * BLOCKSIZE;
-
     /* Find the free cluster previous to this one in the free list.
        Start searching at the last block referenced; this may benefit
        programs with locality of allocation.  */
@@ -68,7 +61,6 @@ void __mmalloc_free(struct mdesc *mdp, void *ptr)
       mdp->heapinfo[block].free.prev = i;
       mdp->heapinfo[i].free.next = block;
       mdp->heapinfo[mdp->heapinfo[block].free.next].free.prev = block;
-      mdp->heapstats.chunks_free++;
     }
 
     /* Now that the block is linked in, see if we can coalesce it
@@ -81,7 +73,6 @@ void __mmalloc_free(struct mdesc *mdp, void *ptr)
       mdp->heapinfo[block].free.next
           = mdp->heapinfo[mdp->heapinfo[block].free.next].free.next;
       mdp->heapinfo[mdp->heapinfo[block].free.next].free.prev = block;
-      mdp->heapstats.chunks_free--;
     }
 
     /* Now see if we can return stuff to the system.  */
@@ -106,12 +97,6 @@ void __mmalloc_free(struct mdesc *mdp, void *ptr)
     break;
 
   default:
-    /* Do some of the statistics.  */
-    mdp->heapstats.chunks_used--;
-    mdp->heapstats.bytes_used -= 1 << type;
-    mdp->heapstats.chunks_free++;
-    mdp->heapstats.bytes_free += 1 << type;
-
     /* Get the address of the first free fragment in this block.  */
     prev = (struct list *)
         ((char *) ADDRESS(block) +
@@ -133,12 +118,6 @@ void __mmalloc_free(struct mdesc *mdp, void *ptr)
       mdp->heapinfo[block].busy.info.block.size = 1;
       mdp->heapinfo[block].busy.info.block.busy_size = 0;
 
-      /* Keep the statistics accurate.  */
-      mdp->heapstats.chunks_used++;
-      mdp->heapstats.bytes_used += BLOCKSIZE;
-      mdp->heapstats.chunks_free -= BLOCKSIZE >> type;
-      mdp->heapstats.bytes_free -= BLOCKSIZE;
-
       mfree((void *) mdp, (void *) ADDRESS(block));
     } else if (mdp->heapinfo[block].busy.info.frag.nfree != 0) {
       /* If some fragments of this block are free, link this
@@ -173,13 +152,11 @@ void __mmalloc_free(struct mdesc *mdp, void *ptr)
 
 /* Return memory to the heap.  */
 
-void mfree(void *md, void *ptr)
+void mfree(xbt_mheap_t mdp, void *ptr)
 {
-  struct mdesc *mdp;
   register struct alignlist *l;
 
   if (ptr != NULL) {
-    mdp = MD_TO_MDP(md);
     for (l = mdp->aligned_blocks; l != NULL; l = l->next) {
       if (l->aligned == ptr) {
         l->aligned = NULL;      /* Mark the slot in the list as free. */