--- jsr166/src/jsr166e/ConcurrentHashMapV8.java 2013/01/18 04:23:27 1.88 +++ jsr166/src/jsr166e/ConcurrentHashMapV8.java 2013/01/19 20:39:43 1.89 @@ -6804,7 +6804,6 @@ public class ConcurrentHashMapV8 private static final int ASHIFT; static { - int ss; try { U = getUnsafe(); Class k = ConcurrentHashMapV8.class; @@ -6823,13 +6822,13 @@ public class ConcurrentHashMapV8 (ck.getDeclaredField("value")); Class sc = Node[].class; ABASE = U.arrayBaseOffset(sc); - ss = U.arrayIndexScale(sc); - ASHIFT = 31 - Integer.numberOfLeadingZeros(ss); + int scale = U.arrayIndexScale(sc); + if ((scale & (scale - 1)) != 0) + throw new Error("data type scale not a power of two"); + ASHIFT = 31 - Integer.numberOfLeadingZeros(scale); } catch (Exception e) { throw new Error(e); } - if ((ss & (ss-1)) != 0) - throw new Error("data type scale not a power of two"); } /**