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

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

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

  private sun.jvm.hotspot.memory.VirtualSpace memory;
    descriptor: Lsun/jvm/hotspot/memory/VirtualSpace;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.memory.VirtualSpace segmentMap;
    descriptor: Lsun/jvm/hotspot/memory/VirtualSpace;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 49
            new sun.jvm.hotspot.memory.CodeHeap$1
            dup
            invokespecial sun.jvm.hotspot.memory.CodeHeap$1.<init>:()V
            invokestatic sun.jvm.hotspot.runtime.VM.registerVMInitializedObserver:(Ljava/util/Observer;)V
         1: .line 54
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void initialize(sun.jvm.hotspot.types.TypeDataBase);
    descriptor: (Lsun/jvm/hotspot/types/TypeDataBase;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.types.TypeDataBase db
         0: .line 57
            aload 0 /* db */
            ldc "CodeHeap"
            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 59
            aload 1 /* type */
            ldc "_memory"
            invokeinterface sun.jvm.hotspot.types.Type.getField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/Field;
            putstatic sun.jvm.hotspot.memory.CodeHeap.memoryField:Lsun/jvm/hotspot/types/Field;
         2: .line 60
            aload 1 /* type */
            ldc "_segmap"
            invokeinterface sun.jvm.hotspot.types.Type.getField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/Field;
            putstatic sun.jvm.hotspot.memory.CodeHeap.segmapField:Lsun/jvm/hotspot/types/Field;
         3: .line 61
            aload 1 /* type */
            ldc "_log2_segment_size"
            invokeinterface sun.jvm.hotspot.types.Type.getCIntegerField:(Ljava/lang/String;)Lsun/jvm/hotspot/types/CIntegerField;
            putstatic sun.jvm.hotspot.memory.CodeHeap.log2SegmentSizeField:Lsun/jvm/hotspot/types/CIntegerField;
         4: .line 63
            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;
    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=6, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.memory.CodeHeap 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
            aload 0 /* this */
            getstatic sun.jvm.hotspot.memory.CodeHeap.log2SegmentSizeField:Lsun/jvm/hotspot/types/CIntegerField;
            aload 1 /* addr */
            invokeinterface sun.jvm.hotspot.types.CIntegerField.getValue:(Lsun/jvm/hotspot/debugger/Address;)J
            l2i
            putfield sun.jvm.hotspot.memory.CodeHeap.log2SegmentSize:I
         2: .line 68
            aload 0 /* this */
            new sun.jvm.hotspot.memory.VirtualSpace
            dup
            aload 1 /* addr */
            getstatic sun.jvm.hotspot.memory.CodeHeap.segmapField:Lsun/jvm/hotspot/types/Field;
            invokeinterface sun.jvm.hotspot.types.Field.getOffset:()J
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            invokespecial sun.jvm.hotspot.memory.VirtualSpace.<init>:(Lsun/jvm/hotspot/debugger/Address;)V
            putfield sun.jvm.hotspot.memory.CodeHeap.segmentMap:Lsun/jvm/hotspot/memory/VirtualSpace;
         3: .line 69
            aload 0 /* this */
            new sun.jvm.hotspot.memory.VirtualSpace
            dup
            aload 1 /* addr */
            getstatic sun.jvm.hotspot.memory.CodeHeap.memoryField:Lsun/jvm/hotspot/types/Field;
            invokeinterface sun.jvm.hotspot.types.Field.getOffset:()J
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            invokespecial sun.jvm.hotspot.memory.VirtualSpace.<init>:(Lsun/jvm/hotspot/debugger/Address;)V
            putfield sun.jvm.hotspot.memory.CodeHeap.memory:Lsun/jvm/hotspot/memory/VirtualSpace;
         4: .line 70
            return
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/memory/CodeHeap;
            0    5     1  addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      addr  

  public sun.jvm.hotspot.debugger.Address begin();
    descriptor: ()Lsun/jvm/hotspot/debugger/Address;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
         0: .line 73
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getMemory:()Lsun/jvm/hotspot/memory/VirtualSpace;
            invokevirtual sun.jvm.hotspot.memory.VirtualSpace.low:()Lsun/jvm/hotspot/debugger/Address;
            areturn
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/memory/CodeHeap;

  public sun.jvm.hotspot.debugger.Address end();
    descriptor: ()Lsun/jvm/hotspot/debugger/Address;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
         0: .line 77
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getMemory:()Lsun/jvm/hotspot/memory/VirtualSpace;
            invokevirtual sun.jvm.hotspot.memory.VirtualSpace.high:()Lsun/jvm/hotspot/debugger/Address;
            areturn
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/memory/CodeHeap;

  public boolean contains(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
        start local 1 // sun.jvm.hotspot.debugger.Address p
         0: .line 81
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.begin:()Lsun/jvm/hotspot/debugger/Address;
            aload 1 /* p */
            invokeinterface sun.jvm.hotspot.debugger.Address.lessThanOrEqual:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 1
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.end:()Lsun/jvm/hotspot/debugger/Address;
            aload 1 /* p */
            invokeinterface sun.jvm.hotspot.debugger.Address.greaterThan:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // sun.jvm.hotspot.debugger.Address p
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/memory/CodeHeap;
            0    2     1     p  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      p     

  public sun.jvm.hotspot.debugger.Address findStart(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
        start local 1 // sun.jvm.hotspot.debugger.Address p
         0: .line 86
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifne 1
            aconst_null
            areturn
         1: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.blockStart:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/memory/HeapBlock;
            astore 2 /* h */
        start local 2 // sun.jvm.hotspot.memory.HeapBlock h
         2: .line 88
            aload 2 /* h */
            ifnull 3
            aload 2 /* h */
            invokevirtual sun.jvm.hotspot.memory.HeapBlock.isFree:()Z
            ifeq 4
         3: .line 89
      StackMap locals: sun.jvm.hotspot.memory.HeapBlock
      StackMap stack:
            aconst_null
            areturn
         4: .line 91
      StackMap locals:
      StackMap stack:
            aload 2 /* h */
            invokevirtual sun.jvm.hotspot.memory.HeapBlock.getAllocatedSpace:()Lsun/jvm/hotspot/debugger/Address;
            areturn
        end local 2 // sun.jvm.hotspot.memory.HeapBlock h
        end local 1 // sun.jvm.hotspot.debugger.Address p
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/jvm/hotspot/memory/CodeHeap;
            0    5     1     p  Lsun/jvm/hotspot/debugger/Address;
            2    5     2     h  Lsun/jvm/hotspot/memory/HeapBlock;
    MethodParameters:
      Name  Flags
      p     

  private sun.jvm.hotspot.debugger.Address nextBlock(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
        start local 1 // sun.jvm.hotspot.debugger.Address ptr
         0: .line 95
            aload 0 /* this */
            aload 1 /* ptr */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.blockBase:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            astore 2 /* base */
        start local 2 // sun.jvm.hotspot.debugger.Address base
         1: .line 96
            aload 2 /* base */
            ifnonnull 3
         2: .line 97
            aconst_null
            areturn
         3: .line 99
      StackMap locals: sun.jvm.hotspot.debugger.Address
      StackMap stack:
            aload 0 /* this */
            aload 2 /* base */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getBlockAt:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/memory/HeapBlock;
            astore 3 /* block */
        start local 3 // sun.jvm.hotspot.memory.HeapBlock block
         4: .line 100
            aload 2 /* base */
            aload 3 /* block */
            invokevirtual sun.jvm.hotspot.memory.HeapBlock.getLength:()J
            iconst_1
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getLog2SegmentSize:()I
            ishl
            i2l
            lmul
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            areturn
        end local 3 // sun.jvm.hotspot.memory.HeapBlock block
        end local 2 // sun.jvm.hotspot.debugger.Address base
        end local 1 // sun.jvm.hotspot.debugger.Address ptr
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/jvm/hotspot/memory/CodeHeap;
            0    5     1    ptr  Lsun/jvm/hotspot/debugger/Address;
            1    5     2   base  Lsun/jvm/hotspot/debugger/Address;
            4    5     3  block  Lsun/jvm/hotspot/memory/HeapBlock;
    MethodParameters:
      Name  Flags
      ptr   

  public void iterate(sun.jvm.hotspot.code.CodeCacheVisitor, sun.jvm.hotspot.code.CodeCache);
    descriptor: (Lsun/jvm/hotspot/code/CodeCacheVisitor;Lsun/jvm/hotspot/code/CodeCache;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
        start local 1 // sun.jvm.hotspot.code.CodeCacheVisitor visitor
        start local 2 // sun.jvm.hotspot.code.CodeCache cache
         0: .line 104
            aconst_null
            astore 3 /* lastBlob */
        start local 3 // sun.jvm.hotspot.code.CodeBlob lastBlob
         1: .line 105
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.begin:()Lsun/jvm/hotspot/debugger/Address;
            astore 4 /* ptr */
        start local 4 // sun.jvm.hotspot.debugger.Address ptr
         2: .line 106
            goto 16
         3: .line 109
      StackMap locals: sun.jvm.hotspot.code.CodeBlob sun.jvm.hotspot.debugger.Address
      StackMap stack:
            aload 2 /* cache */
            aload 0 /* this */
            aload 4 /* ptr */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.findStart:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            invokevirtual sun.jvm.hotspot.code.CodeCache.createCodeBlobWrapper:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/code/CodeBlob;
            astore 5 /* blob */
        start local 5 // sun.jvm.hotspot.code.CodeBlob blob
         4: .line 110
            aload 5 /* blob */
            ifnull 12
         5: .line 111
            aload 1 /* visitor */
            aload 5 /* blob */
            invokeinterface sun.jvm.hotspot.code.CodeCacheVisitor.visit:(Lsun/jvm/hotspot/code/CodeBlob;)V
         6: .line 112
            aload 5 /* blob */
            aload 3 /* lastBlob */
            if_acmpne 8
         7: .line 113
            new java.lang.InternalError
            dup
            ldc "saw same blob twice"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 115
      StackMap locals: sun.jvm.hotspot.code.CodeBlob
      StackMap stack:
            aload 5 /* blob */
            astore 3 /* lastBlob */
        end local 5 // sun.jvm.hotspot.code.CodeBlob blob
         9: .line 117
            goto 12
      StackMap locals: sun.jvm.hotspot.memory.CodeHeap sun.jvm.hotspot.code.CodeCacheVisitor sun.jvm.hotspot.code.CodeCache sun.jvm.hotspot.code.CodeBlob sun.jvm.hotspot.debugger.Address
      StackMap stack: java.lang.RuntimeException
        10: astore 5 /* e */
        start local 5 // java.lang.RuntimeException e
        11: .line 118
            aload 5 /* e */
            invokevirtual java.lang.RuntimeException.printStackTrace:()V
        end local 5 // java.lang.RuntimeException e
        12: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* ptr */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.nextBlock:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            astore 5 /* next */
        start local 5 // sun.jvm.hotspot.debugger.Address next
        13: .line 121
            aload 5 /* next */
            ifnull 15
            aload 5 /* next */
            aload 4 /* ptr */
            invokeinterface sun.jvm.hotspot.debugger.Address.lessThan:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 15
        14: .line 122
            new java.lang.InternalError
            dup
            ldc "pointer moved backwards"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 124
      StackMap locals: sun.jvm.hotspot.debugger.Address
      StackMap stack:
            aload 5 /* next */
            astore 4 /* ptr */
        end local 5 // sun.jvm.hotspot.debugger.Address next
        16: .line 106
      StackMap locals:
      StackMap stack:
            aload 4 /* ptr */
            ifnull 17
            aload 4 /* ptr */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.end:()Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.debugger.Address.lessThan:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifne 3
        17: .line 126
      StackMap locals:
      StackMap stack:
            return
        end local 4 // sun.jvm.hotspot.debugger.Address ptr
        end local 3 // sun.jvm.hotspot.code.CodeBlob lastBlob
        end local 2 // sun.jvm.hotspot.code.CodeCache cache
        end local 1 // sun.jvm.hotspot.code.CodeCacheVisitor visitor
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   18     0      this  Lsun/jvm/hotspot/memory/CodeHeap;
            0   18     1   visitor  Lsun/jvm/hotspot/code/CodeCacheVisitor;
            0   18     2     cache  Lsun/jvm/hotspot/code/CodeCache;
            1   18     3  lastBlob  Lsun/jvm/hotspot/code/CodeBlob;
            2   18     4       ptr  Lsun/jvm/hotspot/debugger/Address;
            4    9     5      blob  Lsun/jvm/hotspot/code/CodeBlob;
           11   12     5         e  Ljava/lang/RuntimeException;
           13   16     5      next  Lsun/jvm/hotspot/debugger/Address;
      Exception table:
        from    to  target  type
           3     9      10  Class java.lang.RuntimeException
    MethodParameters:
         Name  Flags
      visitor  
      cache    

  private sun.jvm.hotspot.memory.VirtualSpace getMemory();
    descriptor: ()Lsun/jvm/hotspot/memory/VirtualSpace;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
         0: .line 133
            aload 0 /* this */
            getfield sun.jvm.hotspot.memory.CodeHeap.memory:Lsun/jvm/hotspot/memory/VirtualSpace;
            areturn
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/memory/CodeHeap;

  private sun.jvm.hotspot.memory.VirtualSpace getSegmentMap();
    descriptor: ()Lsun/jvm/hotspot/memory/VirtualSpace;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
         0: .line 137
            aload 0 /* this */
            getfield sun.jvm.hotspot.memory.CodeHeap.segmentMap:Lsun/jvm/hotspot/memory/VirtualSpace;
            areturn
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/memory/CodeHeap;

  private long segmentFor(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
        start local 1 // sun.jvm.hotspot.debugger.Address p
         0: .line 141
            aload 1 /* p */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getMemory:()Lsun/jvm/hotspot/memory/VirtualSpace;
            invokevirtual sun.jvm.hotspot.memory.VirtualSpace.low:()Lsun/jvm/hotspot/debugger/Address;
            invokeinterface sun.jvm.hotspot.debugger.Address.minus:(Lsun/jvm/hotspot/debugger/Address;)J
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getLog2SegmentSize:()I
            lshr
            lreturn
        end local 1 // sun.jvm.hotspot.debugger.Address p
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/memory/CodeHeap;
            0    1     1     p  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      p     

  private int getLog2SegmentSize();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
         0: .line 145
            aload 0 /* this */
            getfield sun.jvm.hotspot.memory.CodeHeap.log2SegmentSize:I
            ireturn
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/memory/CodeHeap;

  private sun.jvm.hotspot.memory.HeapBlock getBlockAt(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/memory/HeapBlock;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
        start local 1 // sun.jvm.hotspot.debugger.Address addr
         0: .line 149
            ldc Lsun/jvm/hotspot/memory/HeapBlock;
            aload 1 /* addr */
            invokestatic sun.jvm.hotspot.runtime.VMObjectFactory.newObject:(Ljava/lang/Class;Lsun/jvm/hotspot/debugger/Address;)Ljava/lang/Object;
            checkcast sun.jvm.hotspot.memory.HeapBlock
            areturn
        end local 1 // sun.jvm.hotspot.debugger.Address addr
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/memory/CodeHeap;
            0    1     1  addr  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      addr  

  private sun.jvm.hotspot.memory.HeapBlock blockStart(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/memory/HeapBlock;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
        start local 1 // sun.jvm.hotspot.debugger.Address p
         0: .line 154
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.blockBase:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
            astore 2 /* base */
        start local 2 // sun.jvm.hotspot.debugger.Address base
         1: .line 155
            aload 2 /* base */
            ifnonnull 2
            aconst_null
            areturn
         2: .line 156
      StackMap locals: sun.jvm.hotspot.debugger.Address
      StackMap stack:
            aload 0 /* this */
            aload 2 /* base */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getBlockAt:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/memory/HeapBlock;
            areturn
        end local 2 // sun.jvm.hotspot.debugger.Address base
        end local 1 // sun.jvm.hotspot.debugger.Address p
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/jvm/hotspot/memory/CodeHeap;
            0    3     1     p  Lsun/jvm/hotspot/debugger/Address;
            1    3     2  base  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      p     

  private sun.jvm.hotspot.debugger.Address blockBase(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/debugger/Address;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=2
        start local 0 // sun.jvm.hotspot.memory.CodeHeap this
        start local 1 // sun.jvm.hotspot.debugger.Address p
         0: .line 160
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.segmentFor:(Lsun/jvm/hotspot/debugger/Address;)J
            lstore 2 /* i */
        start local 2 // long i
         1: .line 161
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getSegmentMap:()Lsun/jvm/hotspot/memory/VirtualSpace;
            invokevirtual sun.jvm.hotspot.memory.VirtualSpace.low:()Lsun/jvm/hotspot/debugger/Address;
            astore 4 /* b */
        start local 4 // sun.jvm.hotspot.debugger.Address b
         2: .line 162
            aload 4 /* b */
            lload 2 /* i */
            lconst_1
            iconst_1
            invokeinterface sun.jvm.hotspot.debugger.Address.getCIntegerAt:(JJZ)J
            ldc 255
            lcmp
            ifne 5
         3: .line 163
            aconst_null
            areturn
         4: .line 166
      StackMap locals: long sun.jvm.hotspot.debugger.Address
      StackMap stack:
            lload 2 /* i */
            aload 4 /* b */
            lload 2 /* i */
            lconst_1
            iconst_1
            invokeinterface sun.jvm.hotspot.debugger.Address.getCIntegerAt:(JJZ)J
            lsub
            lstore 2 /* i */
         5: .line 165
      StackMap locals:
      StackMap stack:
            aload 4 /* b */
            lload 2 /* i */
            lconst_1
            iconst_1
            invokeinterface sun.jvm.hotspot.debugger.Address.getCIntegerAt:(JJZ)J
            lconst_0
            lcmp
            ifgt 4
         6: .line 168
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getMemory:()Lsun/jvm/hotspot/memory/VirtualSpace;
            invokevirtual sun.jvm.hotspot.memory.VirtualSpace.low:()Lsun/jvm/hotspot/debugger/Address;
            lload 2 /* i */
            aload 0 /* this */
            invokevirtual sun.jvm.hotspot.memory.CodeHeap.getLog2SegmentSize:()I
            lshl
            invokeinterface sun.jvm.hotspot.debugger.Address.addOffsetTo:(J)Lsun/jvm/hotspot/debugger/Address;
            areturn
        end local 4 // sun.jvm.hotspot.debugger.Address b
        end local 2 // long i
        end local 1 // sun.jvm.hotspot.debugger.Address p
        end local 0 // sun.jvm.hotspot.memory.CodeHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/jvm/hotspot/memory/CodeHeap;
            0    7     1     p  Lsun/jvm/hotspot/debugger/Address;
            1    7     2     i  J
            2    7     4     b  Lsun/jvm/hotspot/debugger/Address;
    MethodParameters:
      Name  Flags
      p     
}
SourceFile: "CodeHeap.java"
NestMembers:
  sun.jvm.hotspot.memory.CodeHeap$1
InnerClasses:
  sun.jvm.hotspot.memory.CodeHeap$1