Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mmalloc] Force metadata update in mmalloc/mrealloc
authorGabriel Corona <gabriel.corona@loria.fr>
Thu, 17 Jul 2014 14:30:45 +0000 (16:30 +0200)
committerGabriel Corona <gabriel.corona@loria.fr>
Mon, 21 Jul 2014 09:06:14 +0000 (11:06 +0200)
src/xbt/mmalloc/mmalloc.c
src/xbt/mmalloc/mrealloc.c

index 84f4a54..4c32238 100644 (file)
@@ -353,9 +353,10 @@ void *mmalloc_no_memset(xbt_mheap_t mdp, size_t size)
       mdp->heapinfo[block+it].type = MMALLOC_TYPE_UNFRAGMENTED;
       mdp->heapinfo[block+it].busy_block.busy_size = 0;
       mdp->heapinfo[block+it].busy_block.ignore = 0;
+      mdp->heapinfo[block+it].busy_block.size = 0;
     }
     mdp->heapinfo[block].busy_block.size = blocks;
-    mdp->heapinfo[block].busy_block.busy_size = requested_size; 
+    mdp->heapinfo[block].busy_block.busy_size = requested_size;
     //mdp->heapinfo[block].busy_block.bt_size = xbt_backtrace_no_malloc(mdp->heapinfo[block].busy_block.bt,XBT_BACKTRACE_SIZE);
     //mdp->heapinfo[block].busy_block.bt_size = xbt_libunwind_backtrace(mdp->heapinfo[block].busy_block.bt,XBT_BACKTRACE_SIZE);
     
index 67e7bc6..d073960 100644 (file)
@@ -91,6 +91,8 @@ void *mrealloc(xbt_mheap_t mdp, void *ptr, size_t size)
       for (it= block+blocks; it< mdp->heapinfo[block].busy_block.size ; it++){
         mdp->heapinfo[it].type = MMALLOC_TYPE_UNFRAGMENTED; // FIXME that should be useless, type should already be 0 here
         mdp->heapinfo[it].busy_block.ignore = 0;
+        mdp->heapinfo[it].busy_block.size = 0;
+        mdp->heapinfo[it].busy_block.busy_size = 0;
       }
 
       mdp->heapinfo[block + blocks].busy_block.size