public class sun.jvm.hotspot.oops.Symbol extends sun.jvm.hotspot.runtime.VMObject
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.oops.Symbol
  super_class: sun.jvm.hotspot.runtime.VMObject
{
  private static long baseOffset;
    descriptor: J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  private static sun.jvm.hotspot.types.CIntegerField idHash;
    descriptor: Lsun/jvm/hotspot/types/CIntegerField;
    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 39
            new sun.jvm.hotspot.oops.Symbol$1
            dup
            invokespecial sun.jvm.hotspot.oops.Symbol$1.<init>:()V
            invokestatic sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver:(Ljava/util/Observer;)V
         1: .line 84
            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 47
            aload 0 /* db */
            ldc "Symbol"
            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 48
            aload 1 /* type */
            ldc "_length"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            putstatic sun.jvm.hotspot.oops.Symbol.length:Lsun/jvm/hotspot/types/CIntegerField;
         2: .line 49
            aload 1 /* type */
            ldc "_body"
            invokeinterface sun.jvm.hotspot.types.Type.getField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/Field;
            invokeinterface sun.jvm.hotspot.types.Field.getOffset:()J
            putstatic sun.jvm.hotspot.oops.Symbol.baseOffset:J
         3: .line 50
            aload 1 /* type */
            ldc "_identity_hash"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            putstatic sun.jvm.hotspot.oops.Symbol.idHash:Lsun/jvm/hotspot/types/CIntegerField;
         4: .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    5     0    db  Lsun/jvm/hotspot/types/TypeDataBase;
            1    5     1  type  Lsun/jvm/hotspot/types/Type;
    Exceptions:
      throws sun.jvm.hotspot.types.WrongTypeException
    MethodParameters:
      Name  Flags
      db    

  public static sun.jvm.hotspot.oops.Symbol create(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/oops/Symbol;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.debugger.Address addr
         0: .line 60
            aload 0 /* addr */
            ifnonnull 2
         1: .line 61
            aconst_null
            areturn
         2: .line 63
      StackMap locals:
      StackMap stack:
            new sun.jvm.hotspot.oops.Symbol
            dup
            aload 0 /* addr */
            invokespecial sun.jvm.hotspot.oops.Symbol.<init>:(Lsun/jvm/hotspot/debugger/Address;)V
            areturn
        end local 0 // sun.jvm.hotspot.debugger.Address addr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      addr  

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

  public boolean isSymbol();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Symbol this
         0: .line 70
            iconst_1
            ireturn
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/oops/Symbol;

  public long getLength();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Symbol this
         0: .line 78
            getstatic sun.jvm.hotspot.oops.Symbol.length:Lsun/jvm/hotspot/types/CIntegerField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.oops.Symbol.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:(Lsun/jvm/hotspot/debugger/Address;)J
            lreturn
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/oops/Symbol;

  public byte getByteAt(long);
    descriptor: (J)B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.oops.Symbol this
        start local 1 // long index
         0: .line 81
            aload 0 /* this */
            getfield sun.jvm.hotspot.oops.Symbol.addr:Lsun/jvm/hotspot/debugger/Address;
            getstatic sun.jvm.hotspot.oops.Symbol.baseOffset:J
            lload 1 /* index */
            ladd
            invokeinterface sun.jvm.hotspot.debugger.Address.getJByteAt:(J)B
            ireturn
        end local 1 // long index
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/jvm/hotspot/oops/Symbol;
            0    1     1  index  J
    MethodParameters:
       Name  Flags
      index  

  public long identityHash();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Symbol this
         0: .line 87
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.oops.Symbol.getAddress:()Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.debugger.Address.asLongValue:()J
            lstore 1 /* addr_value */
        start local 1 // long addr_value
         1: .line 89
            lload 1 /* addr_value */
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getLogMinObjAlignmentInBytes:()I
            iconst_3
            iadd
            lshr
            ldc 4294967295
            land
         2: .line 88
            lstore 3 /* addr_bits */
        start local 3 // long addr_bits
         3: .line 90
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.oops.Symbol.getLength:()J
            l2i
            istore 5 /* length */
        start local 5 // int length
         4: .line 91
            aload 0 /* this */
            lconst_0
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            istore 6 /* byte0 */
        start local 6 // int byte0
         5: .line 92
            aload 0 /* this */
            lconst_1
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            istore 7 /* byte1 */
        start local 7 // int byte1
         6: .line 93
            ldc 65535
            getstatic sun.jvm.hotspot.oops.Symbol.idHash:Lsun/jvm/hotspot/types/CIntegerField;
            aload 0 /* this */
            getfield sun.jvm.hotspot.oops.Symbol.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:(Lsun/jvm/hotspot/debugger/Address;)J
            land
            lstore 8 /* id_hash */
        start local 8 // long id_hash
         7: .line 94
            lload 8 /* id_hash */
         8: .line 95
            lload 3 /* addr_bits */
            iload 5 /* length */
            bipush 8
            ishl
            i2l
            lxor
            iload 6 /* byte0 */
            bipush 8
            ishl
            iload 7 /* byte1 */
            ior
            i2l
            lxor
            bipush 16
            lshl
         9: .line 94
            lor
        10: .line 95
            ldc 4294967295
        11: .line 94
            land
            lreturn
        end local 8 // long id_hash
        end local 7 // int byte1
        end local 6 // int byte0
        end local 5 // int length
        end local 3 // long addr_bits
        end local 1 // long addr_value
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lsun/jvm/hotspot/oops/Symbol;
            1   12     1  addr_value  J
            3   12     3   addr_bits  J
            4   12     5      length  I
            5   12     6       byte0  I
            6   12     7       byte1  I
            7   12     8     id_hash  J

  public boolean equals(byte[]);
    descriptor: ([B)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.oops.Symbol this
        start local 1 // byte[] modUTF8Chars
         0: .line 99
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.oops.Symbol.getLength:()J
            l2i
            istore 2 /* l */
        start local 2 // int l
         1: .line 100
            iload 2 /* l */
            aload 1 /* modUTF8Chars */
            arraylength
            if_icmpeq 3
            iconst_0
            ireturn
         2: .line 102
      StackMap locals: int
      StackMap stack:
            aload 1 /* modUTF8Chars */
            iload 2 /* l */
            baload
            aload 0 /* this */
            iload 2 /* l */
            i2l
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            if_icmpeq 3
            iconst_0
            ireturn
         3: .line 101
      StackMap locals:
      StackMap stack:
            iload 2 /* l */
            iinc 2 /* l */ -1
            ifgt 2
         4: .line 104
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 8
         5: .line 105
            iload 2 /* l */
            iconst_m1
            if_icmpne 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: ldc "we should be at the beginning"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
         8: .line 107
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // int l
        end local 1 // byte[] modUTF8Chars
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lsun/jvm/hotspot/oops/Symbol;
            0    9     1  modUTF8Chars  [B
            1    9     2             l  I
    MethodParameters:
              Name  Flags
      modUTF8Chars  

  public boolean equals(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.oops.Symbol this
        start local 1 // java.lang.String string
         0: .line 111
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            aload 1 /* string */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.String string
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lsun/jvm/hotspot/oops/Symbol;
            0    1     1  string  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  

  public byte[] asByteArray();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Symbol this
         0: .line 115
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.oops.Symbol.getLength:()J
            l2i
            istore 1 /* length */
        start local 1 // int length
         1: .line 116
            iload 1 /* length */
            newarray 8
            astore 2 /* result */
        start local 2 // byte[] result
         2: .line 117
            iconst_0
            istore 3 /* index */
        start local 3 // int index
         3: goto 6
         4: .line 118
      StackMap locals: int byte[] int
      StackMap stack:
            aload 2 /* result */
            iload 3 /* index */
            aload 0 /* this */
            iload 3 /* index */
            i2l
            invokevirtual sun.jvm.hotspot.oops.Symbol.getByteAt:(J)B
            bastore
         5: .line 117
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* index */
            iload 1 /* length */
            if_icmplt 4
        end local 3 // int index
         7: .line 120
            aload 2 /* result */
            areturn
        end local 2 // byte[] result
        end local 1 // int length
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lsun/jvm/hotspot/oops/Symbol;
            1    8     1  length  I
            2    8     2  result  [B
            3    7     3   index  I

  public java.lang.String asString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.oops.Symbol this
         0: .line 126
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.oops.Symbol.asByteArray:()[B
            invokestatic sun.jvm.hotspot.oops.Symbol.readModifiedUTF8:([B)Ljava/lang/String;
         1: areturn
         2: .line 127
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 128
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield sun.jvm.hotspot.oops.Symbol.addr:Lsun/jvm/hotspot/debugger/Address;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
         4: .line 129
            aload 1 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
         5: .line 130
            aconst_null
            areturn
        end local 1 // java.lang.Exception e
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/jvm/hotspot/oops/Symbol;
            3    6     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  public boolean startsWith(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.oops.Symbol this
        start local 1 // java.lang.String str
         0: .line 135
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            aload 1 /* str */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String str
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/oops/Symbol;
            0    1     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  public void printValueOn(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.oops.Symbol this
        start local 1 // java.io.PrintStream tty
         0: .line 139
            aload 1 /* tty */
            new java.lang.StringBuilder
            dup
            ldc "#"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.oops.Symbol.asString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         1: .line 140
            return
        end local 1 // java.io.PrintStream tty
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/oops/Symbol;
            0    2     1   tty  Ljava/io/PrintStream;
    MethodParameters:
      Name  Flags
      tty   

  public long fastCompare(sun.jvm.hotspot.oops.Symbol);
    descriptor: (Lsun/jvm/hotspot/oops/Symbol;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.oops.Symbol this
        start local 1 // sun.jvm.hotspot.oops.Symbol other
         0: .line 148
            aload 0 /* this */
            getfield sun.jvm.hotspot.oops.Symbol.addr:Lsun/jvm/hotspot/debugger/Address;
            aload 1 /* other */
            getfield sun.jvm.hotspot.oops.Symbol.addr:Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.debugger.Address.minus:(Lsun/jvm/hotspot/debugger/Address;)J
            lreturn
        end local 1 // sun.jvm.hotspot.oops.Symbol other
        end local 0 // sun.jvm.hotspot.oops.Symbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lsun/jvm/hotspot/oops/Symbol;
            0    1     1  other  Lsun/jvm/hotspot/oops/Symbol;
    MethodParameters:
       Name  Flags
      other  

  private static java.lang.String readModifiedUTF8(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // byte[] buf
         0: .line 152
            aload 0 /* buf */
            arraylength
            istore 1 /* len */
        start local 1 // int len
         1: .line 153
            iload 1 /* len */
            iconst_2
            iadd
            newarray 8
            astore 2 /* tmp */
        start local 2 // byte[] tmp
         2: .line 155
            aload 2 /* tmp */
            iconst_0
            iload 1 /* len */
            bipush 8
            iushr
            sipush 255
            iand
            i2b
            bastore
         3: .line 156
            aload 2 /* tmp */
            iconst_1
            iload 1 /* len */
            iconst_0
            iushr
            sipush 255
            iand
            i2b
            bastore
         4: .line 158
            aload 0 /* buf */
            iconst_0
            aload 2 /* tmp */
            iconst_2
            iload 1 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 159
            new java.io.DataInputStream
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 2 /* tmp */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 3 /* dis */
        start local 3 // java.io.DataInputStream dis
         6: .line 160
            aload 3 /* dis */
            invokevirtual java.io.DataInputStream.readUTF:()Ljava/lang/String;
            areturn
        end local 3 // java.io.DataInputStream dis
        end local 2 // byte[] tmp
        end local 1 // int len
        end local 0 // byte[] buf
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   buf  [B
            1    7     1   len  I
            2    7     2   tmp  [B
            6    7     3   dis  Ljava/io/DataInputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   
}
SourceFile: "Symbol.java"
NestMembers:
  sun.jvm.hotspot.oops.Symbol$1
InnerClasses:
  sun.jvm.hotspot.oops.Symbol$1