fix bug in similarity phase duplicate rejection
This commit is contained in:
1 parent
1d1e1e8baf
commit
f6b4e597ce
1 file changed
+8
-7
+8
-7
@@ -85,6 +85,14 @@ int main(int argc,char **argv)
|
|||||||
|
|
||||||
for(k=0;((i+k)<s1)&&((j+k)<s2);k++)
|
for(k=0;((i+k)<s1)&&((j+k)<s2);k++)
|
||||||
if (f1[i+k]!=f2[j+k]) break;
|
if (f1[i+k]!=f2[j+k]) break;
|
||||||
|
|
||||||
|
// When we find a match, we should then mask off this region,
|
||||||
|
// so that we don't find all the sub-sets of the matches.
|
||||||
|
// e.g. matching BASIC at $100 will result in a match of ASIC at $101
|
||||||
|
// and SIC at $102 etc. These are all the same match, so should be
|
||||||
|
// suppressed.
|
||||||
|
phase_mask[phase]=k;
|
||||||
|
|
||||||
// Ignore matches that are all the same byte
|
// Ignore matches that are all the same byte
|
||||||
for(l=1;l<k;l++) if (f1[i+l]!=f1[i]) break;
|
for(l=1;l<k;l++) if (f1[i+l]!=f1[i]) break;
|
||||||
if (l<k) {
|
if (l<k) {
|
||||||
@@ -123,13 +131,6 @@ int main(int argc,char **argv)
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// When we find a match, we should then mask off this region,
|
|
||||||
// so that we don't find all the sub-sets of the matches.
|
|
||||||
// e.g. matching BASIC at $100 will result in a match of ASIC at $101
|
|
||||||
// and SIC at $102 etc. These are all the same match, so should be
|
|
||||||
// suppressed.
|
|
||||||
phase_mask[phase]=k;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user