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;
mmalloc_backtrace_fragment_display(heap->heapinfo, block, frag_nb);
break;
}
-
}
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;
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;
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){
heaplimit = 0, heapsize1 = 0, heapsize2 = 0;
return ((nb_diff1 > 0) || (nb_diff2 > 0));
-
}
static heap_area_t new_heap_area(int block, int fragment){