ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/ConcurrentHashMap.java
(Generate patch)

Comparing jsr166/src/main/java/util/concurrent/ConcurrentHashMap.java (file contents):
Revision 1.263 by jsr166, Sun Jan 4 01:17:26 2015 UTC vs.
Revision 1.264 by jsr166, Sun Jan 4 09:15:11 2015 UTC

# Line 3217 | Line 3217 | public class ConcurrentHashMap<K,V> exte
3217              return true;
3218          }
3219  
3220 <        private static final sun.misc.Unsafe U;
3220 >        private static final sun.misc.Unsafe U = sun.misc.Unsafe.getUnsafe();
3221          private static final long LOCKSTATE;
3222          static {
3223              try {
3224                U = sun.misc.Unsafe.getUnsafe();
3225                Class<?> k = TreeBin.class;
3224                  LOCKSTATE = U.objectFieldOffset
3225 <                    (k.getDeclaredField("lockState"));
3225 >                    (TreeBin.class.getDeclaredField("lockState"));
3226              } catch (ReflectiveOperationException e) {
3227                  throw new Error(e);
3228              }
# Line 6252 | Line 6250 | public class ConcurrentHashMap<K,V> exte
6250      }
6251  
6252      // Unsafe mechanics
6253 <    private static final sun.misc.Unsafe U;
6253 >    private static final sun.misc.Unsafe U = sun.misc.Unsafe.getUnsafe();
6254      private static final long SIZECTL;
6255      private static final long TRANSFERINDEX;
6256      private static final long BASECOUNT;
6257      private static final long CELLSBUSY;
6258      private static final long CELLVALUE;
6259 <    private static final long ABASE;
6259 >    private static final int ABASE;
6260      private static final int ASHIFT;
6261  
6262      static {
6263          try {
6266            U = sun.misc.Unsafe.getUnsafe();
6267            Class<?> k = ConcurrentHashMap.class;
6264              SIZECTL = U.objectFieldOffset
6265 <                (k.getDeclaredField("sizeCtl"));
6265 >                (ConcurrentHashMap.class.getDeclaredField("sizeCtl"));
6266              TRANSFERINDEX = U.objectFieldOffset
6267 <                (k.getDeclaredField("transferIndex"));
6267 >                (ConcurrentHashMap.class.getDeclaredField("transferIndex"));
6268              BASECOUNT = U.objectFieldOffset
6269 <                (k.getDeclaredField("baseCount"));
6269 >                (ConcurrentHashMap.class.getDeclaredField("baseCount"));
6270              CELLSBUSY = U.objectFieldOffset
6271 <                (k.getDeclaredField("cellsBusy"));
6272 <            Class<?> ck = CounterCell.class;
6271 >                (ConcurrentHashMap.class.getDeclaredField("cellsBusy"));
6272 >
6273              CELLVALUE = U.objectFieldOffset
6274 <                (ck.getDeclaredField("value"));
6275 <            Class<?> ak = Node[].class;
6276 <            ABASE = U.arrayBaseOffset(ak);
6277 <            int scale = U.arrayIndexScale(ak);
6274 >                (CounterCell.class.getDeclaredField("value"));
6275 >
6276 >            ABASE = U.arrayBaseOffset(Node[].class);
6277 >            int scale = U.arrayIndexScale(Node[].class);
6278              if ((scale & (scale - 1)) != 0)
6279                  throw new Error("array index scale not a power of two");
6280              ASHIFT = 31 - Integer.numberOfLeadingZeros(scale);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines