3257 |
|
return true; |
3258 |
|
} |
3259 |
|
|
3260 |
< |
private static final Unsafe U = Unsafe.getUnsafe(); |
3261 |
< |
private static final long LOCKSTATE |
3262 |
< |
= U.objectFieldOffset(TreeBin.class, "lockState"); |
3260 |
> |
private static final long LOCKSTATE = U.objectFieldOffset( |
3261 |
> |
TreeBin.class, "lockState"); |
3262 |
|
} |
3263 |
|
|
3264 |
|
/* ----------------Table Traversal -------------- */ |
6315 |
|
|
6316 |
|
// Unsafe mechanics |
6317 |
|
private static final Unsafe U = Unsafe.getUnsafe(); |
6318 |
< |
private static final long SIZECTL; |
6319 |
< |
private static final long TRANSFERINDEX; |
6320 |
< |
private static final long BASECOUNT; |
6321 |
< |
private static final long CELLSBUSY; |
6322 |
< |
private static final long CELLVALUE; |
6323 |
< |
private static final int ABASE; |
6318 |
> |
private static final long SIZECTL = U.objectFieldOffset( |
6319 |
> |
ConcurrentHashMap.class, "sizeCtl"); |
6320 |
> |
private static final long TRANSFERINDEX = U.objectFieldOffset( |
6321 |
> |
ConcurrentHashMap.class, "transferIndex"); |
6322 |
> |
private static final long BASECOUNT = U.objectFieldOffset( |
6323 |
> |
ConcurrentHashMap.class, "baseCount"); |
6324 |
> |
private static final long CELLSBUSY = U.objectFieldOffset( |
6325 |
> |
ConcurrentHashMap.class, "cellsBusy"); |
6326 |
> |
private static final long CELLVALUE = U.objectFieldOffset( |
6327 |
> |
CounterCell.class, "value"); |
6328 |
> |
private static final int ABASE = U.arrayBaseOffset(Node[].class); |
6329 |
|
private static final int ASHIFT; |
6330 |
|
|
6331 |
|
static { |
6328 |
– |
SIZECTL = U.objectFieldOffset |
6329 |
– |
(ConcurrentHashMap.class, "sizeCtl"); |
6330 |
– |
TRANSFERINDEX = U.objectFieldOffset |
6331 |
– |
(ConcurrentHashMap.class, "transferIndex"); |
6332 |
– |
BASECOUNT = U.objectFieldOffset |
6333 |
– |
(ConcurrentHashMap.class, "baseCount"); |
6334 |
– |
CELLSBUSY = U.objectFieldOffset |
6335 |
– |
(ConcurrentHashMap.class, "cellsBusy"); |
6336 |
– |
|
6337 |
– |
CELLVALUE = U.objectFieldOffset |
6338 |
– |
(CounterCell.class, "value"); |
6339 |
– |
|
6340 |
– |
ABASE = U.arrayBaseOffset(Node[].class); |
6332 |
|
int scale = U.arrayIndexScale(Node[].class); |
6333 |
|
if ((scale & (scale - 1)) != 0) |
6334 |
|
throw new ExceptionInInitializerError("array index scale not a power of two"); |