public class sun.jvm.hotspot.utilities.CompactHashTable extends sun.jvm.hotspot.runtime.VMObject
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.CompactHashTable
  super_class: sun.jvm.hotspot.runtime.VMObject
{
  private static sun.jvm.hotspot.types.CIntegerField bucketCountField;
    descriptor: Lsun/jvm/hotspot/types/CIntegerField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.CIntegerField entryCountField;
    descriptor: Lsun/jvm/hotspot/types/CIntegerField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.AddressField baseAddressField;
    descriptor: Lsun/jvm/hotspot/types/AddressField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.AddressField bucketsField;
    descriptor: Lsun/jvm/hotspot/types/AddressField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static sun.jvm.hotspot.types.AddressField entriesField;
    descriptor: Lsun/jvm/hotspot/types/AddressField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static long uintSize;
    descriptor: J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int BUCKET_OFFSET_MASK;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int BUCKET_TYPE_SHIFT;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int VALUE_ONLY_BUCKET_TYPE;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 36
            new sun.jvm.hotspot.utilities.CompactHashTable$1
            dup
            invokespecial sun.jvm.hotspot.utilities.CompactHashTable$1.<init>:()V
            invokestatic sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver:(Ljava/util/Observer;)V
         1: .line 61
            ldc 1073741823
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.BUCKET_OFFSET_MASK:I
         2: .line 62
            bipush 30
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.BUCKET_TYPE_SHIFT:I
         3: .line 63
            iconst_1
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.VALUE_ONLY_BUCKET_TYPE:I
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static synchronized void initialize(sun.jvm.hotspot.types.TypeDataBase);
    descriptor: (Lsun/jvm/hotspot/types/TypeDataBase;)V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.types.TypeDataBase db
         0: .line 44
            aload 0 /* db */
            ldc "SymbolCompactHashTable"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupType:(Ljava/lang/String;)Lsun/jvm/hotspot/types/Type;
            astore 1 /* type */
        start local 1 // sun.jvm.hotspot.types.Type type
         1: .line 45
            aload 1 /* type */
            ldc "_base_address"
            invokeinterface sun.jvm.hotspot.types.Type.getAddressField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/AddressField;
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.baseAddressField:Lsun/jvm/hotspot/types/AddressField;
         2: .line 46
            aload 1 /* type */
            ldc "_bucket_count"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.bucketCountField:Lsun/jvm/hotspot/types/CIntegerField;
         3: .line 47
            aload 1 /* type */
            ldc "_entry_count"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.entryCountField:Lsun/jvm/hotspot/types/CIntegerField;
         4: .line 48
            aload 1 /* type */
            ldc "_buckets"
            invokeinterface sun.jvm.hotspot.types.Type.getAddressField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/AddressField;
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.bucketsField:Lsun/jvm/hotspot/types/AddressField;
         5: .line 49
            aload 1 /* type */
            ldc "_entries"
            invokeinterface sun.jvm.hotspot.types.Type.getAddressField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/AddressField;
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.entriesField:Lsun/jvm/hotspot/types/AddressField;
         6: .line 50
            aload 0 /* db */
            ldc "u4"
            invokeinterface sun.jvm.hotspot.types.TypeDataBase.lookupType:(Ljava/lang/String;)Lsun/jvm/hotspot/types/Type;
            invokeinterface sun.jvm.hotspot.types.Type.getSize:()J
            putstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
         7: .line 51
            return
        end local 1 // sun.jvm.hotspot.types.Type type
        end local 0 // sun.jvm.hotspot.types.TypeDataBase db
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0    db  Lsun/jvm/hotspot/types/TypeDataBase;
            1    8     1  type  Lsun/jvm/hotspot/types/Type;
    Exceptions:
      throws sun.jvm.hotspot.types.WrongTypeException
    MethodParameters:
      Name  Flags
      db    

  public void <init>(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         0: .line 66
            aload 0 /* this */
            aload 1 /* addr */
            invokespecial sun.jvm.hotspot.runtime.VMObject.<init>:(Lsun/jvm/hotspot/debugger/Address;)V
         1: .line 67
            return
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/utilities/CompactHashTable;
            0    2     1  addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      addr  

  private int bucketCount();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
         0: .line 70
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.bucketCountField:Lsun/jvm/hotspot/types/CIntegerField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.CompactHashTable.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:(Lsun/jvm/hotspot/debugger/Address;)J
            l2i
            ireturn
        end local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/CompactHashTable;

  private boolean isValueOnlyBucket(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
        start local 1 // int bucket_info
         0: .line 74
            iload 1 /* bucket_info */
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.BUCKET_TYPE_SHIFT:I
            ishr
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.VALUE_ONLY_BUCKET_TYPE:I
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int bucket_info
        end local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lsun/jvm/hotspot/utilities/CompactHashTable;
            0    2     1  bucket_info  I
    MethodParameters:
             Name  Flags
      bucket_info  

  private int bucketOffset(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
        start local 1 // int bucket_info
         0: .line 78
            iload 1 /* bucket_info */
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.BUCKET_OFFSET_MASK:I
            iand
            ireturn
        end local 1 // int bucket_info
        end local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lsun/jvm/hotspot/utilities/CompactHashTable;
            0    1     1  bucket_info  I
    MethodParameters:
             Name  Flags
      bucket_info  

  public sun.jvm.hotspot.oops.Symbol probe(byte[], long);
    descriptor: ([BJ)Lsun/jvm/hotspot/oops/Symbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=20, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
        start local 1 // byte[] name
        start local 2 // long hash
         0: .line 82
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.CompactHashTable.bucketCount:()I
            ifgt 2
         1: .line 84
            aconst_null
            areturn
         2: .line 89
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.baseAddressField:Lsun/jvm/hotspot/types/AddressField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.CompactHashTable.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.AddressField.getValue:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            astore 7 /* baseAddress */
        start local 7 // sun.jvm.hotspot.debugger.Address baseAddress
         3: .line 90
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.bucketsField:Lsun/jvm/hotspot/types/AddressField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.CompactHashTable.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.AddressField.getValue:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            astore 8 /* bucket */
        start local 8 // sun.jvm.hotspot.debugger.Address bucket
         4: .line 91
            lload 2 /* hash */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.utilities.CompactHashTable.bucketCount:()I
            i2l
            lrem
            lstore 9 /* index */
        start local 9 // long index
         5: .line 92
            aload 8 /* bucket */
            lload 9 /* index */
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            lmul
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            iconst_1
            invokeinterface sun.jvm.hotspot.debugger.Address.getCIntegerAt:(JJZ)J
            l2i
            istore 11 /* bucketInfo */
        start local 11 // int bucketInfo
         6: .line 93
            aload 0 /* this */
            iload 11 /* bucketInfo */
            invokevirtual sun.jvm.hotspot.utilities.CompactHashTable.bucketOffset:(I)I
            istore 12 /* bucketOffset */
        start local 12 // int bucketOffset
         7: .line 94
            aload 8 /* bucket */
            lload 9 /* index */
            lconst_1
            ladd
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            lmul
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            iconst_1
            invokeinterface sun.jvm.hotspot.debugger.Address.getCIntegerAt:(JJZ)J
            l2i
            istore 13 /* nextBucketInfo */
        start local 13 // int nextBucketInfo
         8: .line 95
            aload 0 /* this */
            iload 13 /* nextBucketInfo */
            invokevirtual sun.jvm.hotspot.utilities.CompactHashTable.bucketOffset:(I)I
            istore 14 /* nextBucketOffset */
        start local 14 // int nextBucketOffset
         9: .line 97
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.entriesField:Lsun/jvm/hotspot/types/AddressField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.CompactHashTable.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.AddressField.getValue:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            iload 12 /* bucketOffset */
            i2l
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            lmul
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            astore 15 /* entry */
        start local 15 // sun.jvm.hotspot.debugger.Address entry
        10: .line 99
            aload 0 /* this */
            iload 11 /* bucketInfo */
            invokevirtual sun.jvm.hotspot.utilities.CompactHashTable.isValueOnlyBucket:(I)Z
            ifeq 15
        11: .line 100
            aload 15 /* entry */
            lconst_0
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            iconst_1
            invokeinterface sun.jvm.hotspot.debugger.Address.getCIntegerAt:(JJZ)J
            lstore 4 /* symOffset */
        start local 4 // long symOffset
        12: .line 101
            aload 7 /* baseAddress */
            lload 4 /* symOffset */
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            invokestatic sun.jvm.hotspot.oops.Symbol.create:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/oops/Symbol;
            astore 6 /* sym */
        start local 6 // sun.jvm.hotspot.oops.Symbol sym
        13: .line 102
            aload 6 /* sym */
            aload 1 /* name */
            invokevirtual sun.jvm.hotspot.oops.Symbol.equals:([B)Z
            ifeq 26
        14: .line 103
            aload 6 /* sym */
            areturn
        end local 6 // sun.jvm.hotspot.oops.Symbol sym
        end local 4 // long symOffset
        15: .line 106
      StackMap locals: sun.jvm.hotspot.utilities.CompactHashTable byte[] long top top top sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.debugger.Address long int int int int sun.jvm.hotspot.debugger.Address
      StackMap stack:
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.entriesField:Lsun/jvm/hotspot/types/AddressField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.CompactHashTable.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.AddressField.getValue:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            iload 14 /* nextBucketOffset */
            i2l
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            lmul
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            astore 16 /* entryMax */
        start local 16 // sun.jvm.hotspot.debugger.Address entryMax
        16: .line 107
            goto 25
        17: .line 108
      StackMap locals: sun.jvm.hotspot.debugger.Address
      StackMap stack:
            aload 15 /* entry */
            lconst_0
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            iconst_1
            invokeinterface sun.jvm.hotspot.debugger.Address.getCIntegerAt:(JJZ)J
            lstore 17 /* symHash */
        start local 17 // long symHash
        18: .line 109
            lload 17 /* symHash */
            lload 2 /* hash */
            lcmp
            ifne 24
        19: .line 110
            aload 15 /* entry */
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            iconst_1
            invokeinterface sun.jvm.hotspot.debugger.Address.getCIntegerAt:(JJZ)J
            lstore 4 /* symOffset */
        start local 4 // long symOffset
        20: .line 111
            aload 7 /* baseAddress */
            lload 4 /* symOffset */
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            astore 19 /* symAddr */
        start local 19 // sun.jvm.hotspot.debugger.Address symAddr
        21: .line 112
            aload 19 /* symAddr */
            invokestatic sun.jvm.hotspot.oops.Symbol.create:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/oops/Symbol;
            astore 6 /* sym */
        start local 6 // sun.jvm.hotspot.oops.Symbol sym
        22: .line 113
            aload 6 /* sym */
            aload 1 /* name */
            invokevirtual sun.jvm.hotspot.oops.Symbol.equals:([B)Z
            ifeq 24
        23: .line 114
            aload 6 /* sym */
            areturn
        end local 19 // sun.jvm.hotspot.debugger.Address symAddr
        end local 6 // sun.jvm.hotspot.oops.Symbol sym
        end local 4 // long symOffset
        24: .line 117
      StackMap locals: long
      StackMap stack:
            aload 15 /* entry */
            ldc 2
            getstatic sun.jvm.hotspot.utilities.CompactHashTable.uintSize:J
            lmul
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            astore 15 /* entry */
        end local 17 // long symHash
        25: .line 107
      StackMap locals:
      StackMap stack:
            aload 15 /* entry */
            aload 16 /* entryMax */
            invokeinterface sun.jvm.hotspot.debugger.Address.lessThan:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifne 17
        end local 16 // sun.jvm.hotspot.debugger.Address entryMax
        26: .line 120
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 15 // sun.jvm.hotspot.debugger.Address entry
        end local 14 // int nextBucketOffset
        end local 13 // int nextBucketInfo
        end local 12 // int bucketOffset
        end local 11 // int bucketInfo
        end local 9 // long index
        end local 8 // sun.jvm.hotspot.debugger.Address bucket
        end local 7 // sun.jvm.hotspot.debugger.Address baseAddress
        end local 2 // long hash
        end local 1 // byte[] name
        end local 0 // sun.jvm.hotspot.utilities.CompactHashTable this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   27     0              this  Lsun/jvm/hotspot/utilities/CompactHashTable;
            0   27     1              name  [B
            0   27     2              hash  J
           12   15     4         symOffset  J
           20   24     4         symOffset  J
           13   15     6               sym  Lsun/jvm/hotspot/oops/Symbol;
           22   24     6               sym  Lsun/jvm/hotspot/oops/Symbol;
            3   27     7       baseAddress  Lsun/jvm/hotspot/debugger/Address;
            4   27     8            bucket  Lsun/jvm/hotspot/debugger/Address;
            5   27     9             index  J
            6   27    11        bucketInfo  I
            7   27    12      bucketOffset  I
            8   27    13    nextBucketInfo  I
            9   27    14  nextBucketOffset  I
           10   27    15             entry  Lsun/jvm/hotspot/debugger/Address;
           16   26    16          entryMax  Lsun/jvm/hotspot/debugger/Address;
           18   25    17           symHash  J
           21   24    19           symAddr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      name  
      hash  
}
SourceFile: "CompactHashTable.java"
NestMembers:
  sun.jvm.hotspot.utilities.CompactHashTable$1
InnerClasses:
  sun.jvm.hotspot.utilities.CompactHashTable$1