Merge remote-tracking branch

'origin/GP-2758_HashedFunctionCorrelatorCollision' into patch
(Closes #4683)
This commit is contained in:
Ryan Kurtz 2022-12-07 01:47:26 -05:00
commit 4f72df352d

View file

@ -19,7 +19,7 @@ package ghidra.program.model.correlate;
* This encodes the main hash value for an n-gram, and the number of Instructions hashed * This encodes the main hash value for an n-gram, and the number of Instructions hashed
* *
*/ */
public class Hash implements Comparable<Hash> { public class Hash implements Comparable<Hash> {
// Initial accumulator values for the hash functions. Should be non-zero for the CRC, but value doesn't matter otherwise // Initial accumulator values for the hash functions. Should be non-zero for the CRC, but value doesn't matter otherwise
public static final int SEED = 22222; public static final int SEED = 22222;
public static final int ALTERNATE_SEED = 11111; // Must be different from SEED public static final int ALTERNATE_SEED = 11111; // Must be different from SEED
@ -29,12 +29,20 @@ public class Hash implements Comparable<Hash> {
@Override @Override
public int compareTo(Hash o) { public int compareTo(Hash o) {
return Long.compare(value, o.value); int cmp = Integer.compare(value, o.value);
if (cmp == 0) {
return Integer.compare(size, o.size);
}
return cmp;
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
return value == ((Hash)obj).value; Hash o = (Hash) obj;
if (value != o.value) {
return false;
}
return (size == o.size);
} }
@Override @Override
@ -42,7 +50,7 @@ public class Hash implements Comparable<Hash> {
return value; return value;
} }
public Hash(int val,int sz) { public Hash(int val, int sz) {
value = val; value = val;
size = sz; size = sz;
} }