size_t i = 0, pointer_align = 0, ignore1 = 0, ignore2 = 0;
void *addr_pointed1, *addr_pointed2;
int res_compare;
- size_t block1, frag1, block2, frag2;
+ ssize_t block1, frag1, block2, frag2;
ssize_t size;
int check_ignore = 0;
int j;
}
size = heapinfo1[block1].busy_block.busy_size;
+
+ if(size <= 0){
+ if(match_pairs){
+ match_equals(previous);
+ xbt_dynar_free(&previous);
+ }
+ return 0;
+ }
+
frag1 = -1;
frag2 = -1;
area1_to_compare = addr_block1;
area2_to_compare = addr_block2;
- if(heapinfo1[block1].busy_block.ignore == 1 || heapinfo2[block2].busy_block.ignore == 1)
+ if(heapinfo1[block1].busy_block.ignore == 1 && heapinfo2[block2].busy_block.ignore == 1)
check_ignore = 1;
}else{
size = heapinfo1[block1].busy_frag.frag_size[frag1];
- if(size == -1){
+ if(size <= 0){
if(match_pairs){
match_equals(previous);
xbt_dynar_free(&previous);
return 0;
}
- if(heapinfo1[block1].busy_frag.ignore[frag1] == 1 || heapinfo2[block2].busy_frag.ignore[frag2] == 1)
+ if(heapinfo1[block1].busy_frag.ignore[frag1] == 1 && heapinfo2[block2].busy_frag.ignore[frag2] == 1)
check_ignore = 1;
}
+
}else if((heapinfo1[block1].type > 0) && (heapinfo2[block2].type > 0)){
frag1 = ((uintptr_t) (ADDR2UINT (area1) % (BLOCKSIZE))) >> heapinfo1[block1].type;
size = heapinfo1[block1].busy_frag.frag_size[frag1];
- if(size == -1){
+ if(size <= 0){
if(match_pairs){
+ match_equals(previous);
xbt_dynar_free(&previous);
}
return 0;
}
- if(heapinfo1[block1].busy_frag.ignore[frag1] == 1 || heapinfo2[block2].busy_frag.ignore[frag2] == 1)
+ if(heapinfo1[block1].busy_frag.ignore[frag1] == 1 && heapinfo2[block2].busy_frag.ignore[frag2] == 1)
check_ignore = 1;
}else{