Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of scm.gforge.inria.fr:/gitroot/simgrid/simgrid
[simgrid.git] / src / xbt / mmalloc / mmalloc.c
index 1c36aa8..0af8597 100644 (file)
@@ -86,8 +86,9 @@ static void *morecore(struct mdesc *mdp, size_t size)
            mdp->heapsize * sizeof(malloc_info));
     oldinfo = mdp->heapinfo;
     newinfo[BLOCK(oldinfo)].busy.type = 0;
-    newinfo[BLOCK(oldinfo)].busy.info.size
+    newinfo[BLOCK(oldinfo)].busy.info.block.size
         = BLOCKIFY(mdp->heapsize * sizeof(malloc_info));
+    newinfo[BLOCK(oldinfo)].busy.info.block.busy_size = size;
     mdp->heapinfo = newinfo;
     __mmalloc_free(mdp, (void *) oldinfo);
     mdp->heapsize = newsize;
@@ -118,7 +119,7 @@ void *mmalloc(void *md, size_t size)
 //  printf("(%s) Mallocing %d bytes on %p (default: %p)...",xbt_thread_self_name(),size,mdp,__mmalloc_default_mdp);fflush(stdout);
 
   if (mdp->mmalloc_hook != NULL) {
-    return (*mdp->mmalloc_hook) (md, size);
+    return mdp->mmalloc_hook(md, size);
   }
 
   if (!(mdp->flags & MMALLOC_INITIALIZED)) {
@@ -229,7 +230,8 @@ void *mmalloc(void *md, size_t size)
         }
         block = BLOCK(result);
         mdp->heapinfo[block].busy.type = 0;
-        mdp->heapinfo[block].busy.info.size = blocks;
+        mdp->heapinfo[block].busy.info.block.size = blocks;
+       mdp->heapinfo[block].busy.info.block.busy_size = size;
         mdp->heapstats.chunks_used++;
         mdp->heapstats.bytes_used += blocks * BLOCKSIZE;
         return (result);
@@ -262,7 +264,8 @@ void *mmalloc(void *md, size_t size)
     }
 
     mdp->heapinfo[block].busy.type = 0;
-    mdp->heapinfo[block].busy.info.size = blocks;
+    mdp->heapinfo[block].busy.info.block.size = blocks;
+    mdp->heapinfo[block].busy.info.block.busy_size = size;
     mdp->heapstats.chunks_used++;
     mdp->heapstats.bytes_used += blocks * BLOCKSIZE;
     mdp->heapstats.bytes_free -= blocks * BLOCKSIZE;