public class sun.jvm.hotspot.code.DebugInfoReadStream extends sun.jvm.hotspot.code.CompressedReadStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.code.DebugInfoReadStream
  super_class: sun.jvm.hotspot.code.CompressedReadStream
{
  private sun.jvm.hotspot.code.NMethod code;
    descriptor: Lsun/jvm/hotspot/code/NMethod;
    flags: (0x0002) ACC_PRIVATE

  private int InvocationEntryBCI;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.util.List objectPool;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(sun.jvm.hotspot.code.NMethod, int);
    descriptor: (Lsun/jvm/hotspot/code/NMethod;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
        start local 1 // sun.jvm.hotspot.code.NMethod code
        start local 2 // int offset
         0: .line 40
            aload 0 /* this */
            aload 1 /* code */
            invokevirtual sun.jvm.hotspot.code.NMethod.scopesDataBegin:()Lsun/jvm/hotspot/debugger/Address;
            iload 2 /* offset */
            invokespecial sun.jvm.hotspot.code.CompressedReadStream.<init>:(Lsun/jvm/hotspot/debugger/Address;I)V
         1: .line 41
            aload 0 /* this */
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getInvocationEntryBCI:()I
            putfield sun.jvm.hotspot.code.DebugInfoReadStream.InvocationEntryBCI:I
         2: .line 42
            aload 0 /* this */
            aload 1 /* code */
            putfield sun.jvm.hotspot.code.DebugInfoReadStream.code:Lsun/jvm/hotspot/code/NMethod;
         3: .line 43
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.code.DebugInfoReadStream.objectPool:Ljava/util/List;
         4: .line 44
            return
        end local 2 // int offset
        end local 1 // sun.jvm.hotspot.code.NMethod code
        end local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lsun/jvm/hotspot/code/DebugInfoReadStream;
            0    5     1    code  Lsun/jvm/hotspot/code/NMethod;
            0    5     2  offset  I
    MethodParameters:
        Name  Flags
      code    
      offset  

  public void <init>(sun.jvm.hotspot.code.NMethod, int, java.util.List);
    descriptor: (Lsun/jvm/hotspot/code/NMethod;ILjava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
        start local 1 // sun.jvm.hotspot.code.NMethod code
        start local 2 // int offset
        start local 3 // java.util.List objectPool
         0: .line 47
            aload 0 /* this */
            aload 1 /* code */
            invokevirtual sun.jvm.hotspot.code.NMethod.scopesDataBegin:()Lsun/jvm/hotspot/debugger/Address;
            iload 2 /* offset */
            invokespecial sun.jvm.hotspot.code.CompressedReadStream.<init>:(Lsun/jvm/hotspot/debugger/Address;I)V
         1: .line 48
            aload 0 /* this */
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getInvocationEntryBCI:()I
            putfield sun.jvm.hotspot.code.DebugInfoReadStream.InvocationEntryBCI:I
         2: .line 49
            aload 0 /* this */
            aload 1 /* code */
            putfield sun.jvm.hotspot.code.DebugInfoReadStream.code:Lsun/jvm/hotspot/code/NMethod;
         3: .line 50
            aload 0 /* this */
            aload 3 /* objectPool */
            putfield sun.jvm.hotspot.code.DebugInfoReadStream.objectPool:Ljava/util/List;
         4: .line 51
            return
        end local 3 // java.util.List objectPool
        end local 2 // int offset
        end local 1 // sun.jvm.hotspot.code.NMethod code
        end local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lsun/jvm/hotspot/code/DebugInfoReadStream;
            0    5     1        code  Lsun/jvm/hotspot/code/NMethod;
            0    5     2      offset  I
            0    5     3  objectPool  Ljava/util/List;
    MethodParameters:
            Name  Flags
      code        
      offset      
      objectPool  

  public sun.jvm.hotspot.debugger.OopHandle readOopHandle();
    descriptor: ()Lsun/jvm/hotspot/debugger/OopHandle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
         0: .line 54
            aload 0 /* this */
            getfield sun.jvm.hotspot.code.DebugInfoReadStream.code:Lsun/jvm/hotspot/code/NMethod;
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.code.DebugInfoReadStream.readInt:()I
            invokevirtual sun.jvm.hotspot.code.NMethod.getOopAt:(I)Lsun/jvm/hotspot/debugger/OopHandle;
            areturn
        end local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/code/DebugInfoReadStream;

  public sun.jvm.hotspot.oops.Method readMethod();
    descriptor: ()Lsun/jvm/hotspot/oops/Method;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
         0: .line 58
            aload 0 /* this */
            getfield sun.jvm.hotspot.code.DebugInfoReadStream.code:Lsun/jvm/hotspot/code/NMethod;
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.code.DebugInfoReadStream.readInt:()I
            invokevirtual sun.jvm.hotspot.code.NMethod.getMethodAt:(I)Lsun/jvm/hotspot/oops/Method;
            areturn
        end local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/code/DebugInfoReadStream;

  sun.jvm.hotspot.code.ScopeValue readObjectValue();
    descriptor: ()Lsun/jvm/hotspot/code/ScopeValue;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
         0: .line 62
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.code.DebugInfoReadStream.readInt:()I
            istore 1 /* id */
        start local 1 // int id
         1: .line 63
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 12
         2: .line 64
            aload 0 /* this */
            getfield sun.jvm.hotspot.code.DebugInfoReadStream.objectPool:Ljava/util/List;
            ifnull 3
            iconst_1
            goto 4
      StackMap locals: int
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: ldc "object pool does not exist"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
         5: .line 65
            aload 0 /* this */
            getfield sun.jvm.hotspot.code.DebugInfoReadStream.objectPool:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* itr */
        start local 2 // java.util.Iterator itr
         6: goto 11
         7: .line 66
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.code.ObjectValue
            astore 3 /* ov */
        start local 3 // sun.jvm.hotspot.code.ObjectValue ov
         8: .line 67
            aload 3 /* ov */
            invokevirtual sun.jvm.hotspot.code.ObjectValue.id:()I
            iload 1 /* id */
            if_icmpeq 9
            iconst_1
            goto 10
      StackMap locals: sun.jvm.hotspot.code.ObjectValue
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: ldc "should not be read twice"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        end local 3 // sun.jvm.hotspot.code.ObjectValue ov
        11: .line 65
      StackMap locals:
      StackMap stack:
            aload 2 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        end local 2 // java.util.Iterator itr
        12: .line 70
      StackMap locals:
      StackMap stack:
            new sun.jvm.hotspot.code.ObjectValue
            dup
            iload 1 /* id */
            invokespecial sun.jvm.hotspot.code.ObjectValue.<init>:(I)V
            astore 2 /* result */
        start local 2 // sun.jvm.hotspot.code.ObjectValue result
        13: .line 72
            aload 0 /* this */
            getfield sun.jvm.hotspot.code.DebugInfoReadStream.objectPool:Ljava/util/List;
            aload 2 /* result */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 73
            aload 2 /* result */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.code.ObjectValue.readObject:(Lsun/jvm/hotspot/code/DebugInfoReadStream;)V
        15: .line 74
            aload 2 /* result */
            areturn
        end local 2 // sun.jvm.hotspot.code.ObjectValue result
        end local 1 // int id
        end local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Lsun/jvm/hotspot/code/DebugInfoReadStream;
            1   16     1      id  I
            6   12     2     itr  Ljava/util/Iterator;
            8   11     3      ov  Lsun/jvm/hotspot/code/ObjectValue;
           13   16     2  result  Lsun/jvm/hotspot/code/ObjectValue;

  sun.jvm.hotspot.code.ScopeValue getCachedObject();
    descriptor: ()Lsun/jvm/hotspot/code/ScopeValue;
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
         0: .line 78
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.code.DebugInfoReadStream.readInt:()I
            istore 1 /* id */
        start local 1 // int id
         1: .line 79
            aload 0 /* this */
            getfield sun.jvm.hotspot.code.DebugInfoReadStream.objectPool:Ljava/util/List;
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "object pool does not exist"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
         4: .line 80
            aload 0 /* this */
            getfield sun.jvm.hotspot.code.DebugInfoReadStream.objectPool:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* itr */
        start local 2 // java.util.Iterator itr
         5: goto 9
         6: .line 81
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* itr */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.code.ObjectValue
            astore 3 /* ov */
        start local 3 // sun.jvm.hotspot.code.ObjectValue ov
         7: .line 82
            aload 3 /* ov */
            invokevirtual sun.jvm.hotspot.code.ObjectValue.id:()I
            iload 1 /* id */
            if_icmpne 9
         8: .line 83
            aload 3 /* ov */
            areturn
        end local 3 // sun.jvm.hotspot.code.ObjectValue ov
         9: .line 80
      StackMap locals:
      StackMap stack:
            aload 2 /* itr */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 2 // java.util.Iterator itr
        10: .line 86
            iconst_0
            ldc "should not reach here"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        11: .line 87
            aconst_null
            areturn
        end local 1 // int id
        end local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lsun/jvm/hotspot/code/DebugInfoReadStream;
            1   12     1    id  I
            5   10     2   itr  Ljava/util/Iterator;
            7    9     3    ov  Lsun/jvm/hotspot/code/ObjectValue;

  public int readBCI();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
         0: .line 91
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.code.DebugInfoReadStream.readInt:()I
            aload 0 /* this */
            getfield sun.jvm.hotspot.code.DebugInfoReadStream.InvocationEntryBCI:I
            iadd
            ireturn
        end local 0 // sun.jvm.hotspot.code.DebugInfoReadStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/code/DebugInfoReadStream;
}
SourceFile: "DebugInfoReadStream.java"