diff -r 5d043a159d5c -r 53dccc90a5be src/jdk.jfr/share/classes/jdk/jfr/internal/util/UniversalHashFamily.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/util/UniversalHashFamily.java Fri May 17 18:03:14 2019 +0200 @@ -0,0 +1,27 @@ +package jdk.jfr.internal.util; + +import java.util.Random; + +public class UniversalHashFamily { + final Random rand = new Random(); + + private static long getA(long hashFunction) { + return hashFunction | 1; + } + + private static long getB(long hashFunction, long mask) { + return hashFunction & mask; + } + + private static long getHash(long key, long hashFunction, long mask) { + return (getA(hashFunction) * key) + (hashFunction & mask); + } + + public static int getIndex(long key, long hashFunction, long shift, long mask) { + return (int)(getHash(key, hashFunction, mask) >>> shift); + } + + public long getRandomHashFunction() { + return rand.nextLong() & Long.MAX_VALUE; + } +} \ No newline at end of file