X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d90a41491cfb04188c4469729fa60d01ec0ff693..399309d03009809ad8b891b24630e7b2e7b2345e:/src/xbt/mmalloc/mm_diff.c diff --git a/src/xbt/mmalloc/mm_diff.c b/src/xbt/mmalloc/mm_diff.c index d9ca5d61eb..db24efae0b 100644 --- a/src/xbt/mmalloc/mm_diff.c +++ b/src/xbt/mmalloc/mm_diff.c @@ -13,8 +13,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mm_diff, xbt, "Logging specific to mm_diff in mmalloc"); -extern char *xbt_binary_name; - xbt_dynar_t mc_heap_comparison_ignore; xbt_dynar_t stacks_areas; @@ -113,7 +111,6 @@ void mmalloc_backtrace_display(void *addr){ mmalloc_backtrace_fragment_display(heap->heapinfo, block, frag_nb); break; } - } @@ -157,7 +154,7 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac xbt_dynar_t previous = xbt_dynar_new(sizeof(heap_area_pair_t), heap_area_pair_free_voidp); - int equal, res_compare; + int equal, res_compare = 0; /* Init equal information */ i1 = 1; @@ -188,6 +185,35 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac i2++; } + /* Init equal information */ + i1 = 1; + + while(i1<=heaplimit){ + if(heapinfo1[i1].type == 0){ + heapinfo1[i1].busy_block.equal_to = -1; + } + if(heapinfo1[i1].type > 0){ + for(j1=0; j1 < MAX_FRAGMENT_PER_BLOCK; j1++){ + heapinfo1[i1].busy_frag.equal_to[j1] = -1; + } + } + i1++; + } + + i2 = 1; + + while(i2<=heaplimit){ + if(heapinfo2[i2].type == 0){ + heapinfo2[i2].busy_block.equal_to = -1; + } + if(heapinfo2[i2].type > 0){ + for(j2=0; j2 < MAX_FRAGMENT_PER_BLOCK; j2++){ + heapinfo2[i2].busy_frag.equal_to[j2] = -1; + } + } + i2++; + } + /* Check busy blocks*/ i1 = 1; @@ -227,6 +253,7 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac i2 = 1; equal = 0; + res_compare = 0; /* Try first to associate to same block in the other heap */ if(heapinfo2[current_block].type == heapinfo1[current_block].type){ @@ -545,7 +572,6 @@ int mmalloc_compare_heap(xbt_mheap_t heap1, xbt_mheap_t heap2, xbt_dynar_t *stac heaplimit = 0, heapsize1 = 0, heapsize2 = 0; return ((nb_diff1 > 0) || (nb_diff2 > 0)); - } static heap_area_t new_heap_area(int block, int fragment){