public class sun.jvm.hotspot.utilities.PointerFinder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.PointerFinder
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.PointerFinder this
         0: .line 37
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.jvm.hotspot.utilities.PointerFinder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/jvm/hotspot/utilities/PointerFinder;

  public static sun.jvm.hotspot.utilities.PointerLocation find(sun.jvm.hotspot.debugger.Address);
    descriptor: (Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/utilities/PointerLocation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // sun.jvm.hotspot.debugger.Address a
         0: .line 39
            new sun.jvm.hotspot.utilities.PointerLocation
            dup
            aload 0 /* a */
            invokespecial sun.jvm.hotspot.utilities.PointerLocation.<init>:(Lsun/jvm/hotspot/debugger/Address;)V
            astore 1 /* loc */
        start local 1 // sun.jvm.hotspot.utilities.PointerLocation loc
         1: .line 41
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getUniverse:()Lsun/jvm/hotspot/memory/Universe;
            invokevirtual sun.jvm.hotspot.memory.Universe.heap:()Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            astore 2 /* heap */
        start local 2 // sun.jvm.hotspot.gc.shared.CollectedHeap heap
         2: .line 42
            aload 2 /* heap */
            instanceof sun.jvm.hotspot.gc.shared.GenCollectedHeap
            ifeq 29
         3: .line 43
            aload 2 /* heap */
            checkcast sun.jvm.hotspot.gc.shared.GenCollectedHeap
            astore 3 /* genheap */
        start local 3 // sun.jvm.hotspot.gc.shared.GenCollectedHeap genheap
         4: .line 44
            aload 3 /* genheap */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.GenCollectedHeap.isIn:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 32
         5: .line 45
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         6: goto 12
         7: .line 46
      StackMap locals: sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.utilities.PointerLocation sun.jvm.hotspot.gc.shared.CollectedHeap sun.jvm.hotspot.gc.shared.GenCollectedHeap int
      StackMap stack:
            aload 3 /* genheap */
            iload 4 /* i */
            invokevirtual sun.jvm.hotspot.gc.shared.GenCollectedHeap.getGen:(I)Lsun/jvm/hotspot/gc/shared/Generation;
            astore 5 /* g */
        start local 5 // sun.jvm.hotspot.gc.shared.Generation g
         8: .line 47
            aload 5 /* g */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.Generation.isIn:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 11
         9: .line 48
            aload 1 /* loc */
            aload 5 /* g */
            putfield sun.jvm.hotspot.utilities.PointerLocation.gen:Lsun/jvm/hotspot/gc/shared/Generation;
        10: .line 49
            goto 13
        end local 5 // sun.jvm.hotspot.gc.shared.Generation g
        11: .line 45
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 4 /* i */
            aload 3 /* genheap */
            invokevirtual sun.jvm.hotspot.gc.shared.GenCollectedHeap.nGens:()I
            if_icmplt 7
        end local 4 // int i
        13: .line 53
      StackMap locals:
      StackMap stack:
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 17
        14: .line 54
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.gen:Lsun/jvm/hotspot/gc/shared/Generation;
            ifnull 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: ldc "Should have found this in a generation"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        17: .line 57
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getUseTLAB:()Z
            ifeq 28
        18: .line 59
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getThreads:()Lsun/jvm/hotspot/runtime/Threads;
            invokevirtual sun.jvm.hotspot.runtime.Threads.first:()Lsun/jvm/hotspot/runtime/JavaThread;
            astore 4 /* t */
        start local 4 // sun.jvm.hotspot.runtime.JavaThread t
        19: goto 27
        20: .line 60
      StackMap locals: sun.jvm.hotspot.runtime.JavaThread
      StackMap stack:
            aload 4 /* t */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.tlab:()Lsun/jvm/hotspot/runtime/ThreadLocalAllocBuffer;
            astore 5 /* tlab */
        start local 5 // sun.jvm.hotspot.runtime.ThreadLocalAllocBuffer tlab
        21: .line 61
            aload 5 /* tlab */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.runtime.ThreadLocalAllocBuffer.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 26
        22: .line 62
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inTLAB:Z
        23: .line 63
            aload 1 /* loc */
            aload 4 /* t */
            putfield sun.jvm.hotspot.utilities.PointerLocation.tlabThread:Lsun/jvm/hotspot/runtime/JavaThread;
        24: .line 64
            aload 1 /* loc */
            aload 5 /* tlab */
            putfield sun.jvm.hotspot.utilities.PointerLocation.tlab:Lsun/jvm/hotspot/runtime/ThreadLocalAllocBuffer;
        25: .line 65
            goto 28
        end local 5 // sun.jvm.hotspot.runtime.ThreadLocalAllocBuffer tlab
        26: .line 59
      StackMap locals:
      StackMap stack:
            aload 4 /* t */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.next:()Lsun/jvm/hotspot/runtime/JavaThread;
            astore 4 /* t */
      StackMap locals:
      StackMap stack:
        27: aload 4 /* t */
            ifnonnull 20
        end local 4 // sun.jvm.hotspot.runtime.JavaThread t
        28: .line 70
      StackMap locals:
      StackMap stack:
            aload 1 /* loc */
            areturn
        end local 3 // sun.jvm.hotspot.gc.shared.GenCollectedHeap genheap
        29: .line 73
      StackMap locals:
      StackMap stack:
            aload 2 /* heap */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.CollectedHeap.isIn:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 32
        30: .line 74
            aload 1 /* loc */
            aload 2 /* heap */
            putfield sun.jvm.hotspot.utilities.PointerLocation.heap:Lsun/jvm/hotspot/gc/shared/CollectedHeap;
        31: .line 75
            aload 1 /* loc */
            areturn
        32: .line 79
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getInterpreter:()Lsun/jvm/hotspot/interpreter/Interpreter;
            astore 3 /* interp */
        start local 3 // sun.jvm.hotspot.interpreter.Interpreter interp
        33: .line 80
            aload 3 /* interp */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.interpreter.Interpreter.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 37
        34: .line 81
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inInterpreter:Z
        35: .line 82
            aload 1 /* loc */
            aload 3 /* interp */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.interpreter.Interpreter.getCodeletContaining:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/interpreter/InterpreterCodelet;
            putfield sun.jvm.hotspot.utilities.PointerLocation.interpreterCodelet:Lsun/jvm/hotspot/interpreter/InterpreterCodelet;
        36: .line 83
            aload 1 /* loc */
            areturn
        37: .line 86
      StackMap locals: sun.jvm.hotspot.interpreter.Interpreter
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.isCore:()Z
            ifne 58
        38: .line 87
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getCodeCache:()Lsun/jvm/hotspot/code/CodeCache;
            astore 4 /* c */
        start local 4 // sun.jvm.hotspot.code.CodeCache c
        39: .line 88
            aload 4 /* c */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.CodeCache.contains:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 58
        40: .line 89
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inCodeCache:Z
        41: .line 90
            aload 1 /* loc */
            aload 4 /* c */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.CodeCache.findBlobUnsafe:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/code/CodeBlob;
            putfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
        42: .line 91
            getstatic sun.jvm.hotspot.utilities.Assert.ASSERTS_ENABLED:Z
            ifeq 46
        43: .line 92
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            ifnull 44
            iconst_1
            goto 45
      StackMap locals: sun.jvm.hotspot.code.CodeCache
      StackMap stack:
        44: iconst_0
      StackMap locals:
      StackMap stack: int
        45: ldc "Should have found CodeBlob"
            invokestatic sun.jvm.hotspot.utilities.Assert.that:(ZLjava/lang/String;)V
        46: .line 94
      StackMap locals:
      StackMap stack:
            aload 1 /* loc */
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.codeContains:(Lsun/jvm/hotspot/debugger/Address;)Z
            putfield sun.jvm.hotspot.utilities.PointerLocation.inBlobCode:Z
        47: .line 95
            aload 1 /* loc */
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.CodeBlob.dataContains:(Lsun/jvm/hotspot/debugger/Address;)Z
            putfield sun.jvm.hotspot.utilities.PointerLocation.inBlobData:Z
        48: .line 97
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            invokevirtual sun.jvm.hotspot.code.CodeBlob.isNMethod:()Z
            ifeq 51
        49: .line 98
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.blob:Lsun/jvm/hotspot/code/CodeBlob;
            checkcast sun.jvm.hotspot.code.NMethod
            astore 5 /* nm */
        start local 5 // sun.jvm.hotspot.code.NMethod nm
        50: .line 99
            aload 1 /* loc */
            aload 5 /* nm */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.code.NMethod.oopsContains:(Lsun/jvm/hotspot/debugger/Address;)Z
            putfield sun.jvm.hotspot.utilities.PointerLocation.inBlobOops:Z
        end local 5 // sun.jvm.hotspot.code.NMethod nm
        51: .line 102
      StackMap locals:
      StackMap stack:
            aload 1 /* loc */
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.inBlobCode:Z
            ifne 54
        52: .line 103
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.inBlobData:Z
            ifne 54
        53: .line 104
            aload 1 /* loc */
            getfield sun.jvm.hotspot.utilities.PointerLocation.inBlobOops:Z
            ifeq 55
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.utilities.PointerLocation
        54: iconst_0
            goto 56
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.utilities.PointerLocation
        55: iconst_1
        56: .line 102
      StackMap locals: sun.jvm.hotspot.debugger.Address sun.jvm.hotspot.utilities.PointerLocation sun.jvm.hotspot.gc.shared.CollectedHeap sun.jvm.hotspot.interpreter.Interpreter sun.jvm.hotspot.code.CodeCache
      StackMap stack: sun.jvm.hotspot.utilities.PointerLocation int
            putfield sun.jvm.hotspot.utilities.PointerLocation.inBlobUnknownLocation:Z
        57: .line 105
            aload 1 /* loc */
            areturn
        end local 4 // sun.jvm.hotspot.code.CodeCache c
        58: .line 110
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getJNIHandles:()Lsun/jvm/hotspot/runtime/JNIHandles;
            astore 4 /* handles */
        start local 4 // sun.jvm.hotspot.runtime.JNIHandles handles
        59: .line 116
            aload 4 /* handles */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandles.globalHandles:()Lsun/jvm/hotspot/gc/shared/OopStorage;
            astore 5 /* storage */
        start local 5 // sun.jvm.hotspot.gc.shared.OopStorage storage
        60: .line 117
            aload 5 /* storage */
            ifnull 63
            aload 5 /* storage */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.OopStorage.findOop:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 63
        61: .line 118
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inStrongGlobalJNIHandles:Z
        62: .line 119
            aload 1 /* loc */
            areturn
        63: .line 122
      StackMap locals: sun.jvm.hotspot.runtime.JNIHandles sun.jvm.hotspot.gc.shared.OopStorage
      StackMap stack:
            aload 4 /* handles */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandles.weakGlobalHandles:()Lsun/jvm/hotspot/gc/shared/OopStorage;
            astore 5 /* storage */
        64: .line 123
            aload 5 /* storage */
            ifnull 67
            aload 5 /* storage */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.gc.shared.OopStorage.findOop:(Lsun/jvm/hotspot/debugger/Address;)Z
            ifeq 67
        65: .line 124
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inWeakGlobalJNIHandles:Z
        66: .line 125
            aload 1 /* loc */
            areturn
        67: .line 128
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getThreads:()Lsun/jvm/hotspot/runtime/Threads;
            invokevirtual sun.jvm.hotspot.runtime.Threads.first:()Lsun/jvm/hotspot/runtime/JavaThread;
            astore 6 /* t */
        start local 6 // sun.jvm.hotspot.runtime.JavaThread t
        68: goto 78
        69: .line 129
      StackMap locals: sun.jvm.hotspot.runtime.JavaThread
      StackMap stack:
            aload 6 /* t */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.activeHandles:()Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            astore 7 /* handleBlock */
        start local 7 // sun.jvm.hotspot.runtime.JNIHandleBlock handleBlock
        70: .line 130
            aload 7 /* handleBlock */
            ifnull 77
        71: .line 131
            aload 7 /* handleBlock */
            aload 0 /* a */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandleBlock.blockContainingHandle:(Lsun/jvm/hotspot/debugger/Address;)Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            astore 7 /* handleBlock */
        72: .line 132
            aload 7 /* handleBlock */
            ifnull 77
        73: .line 133
            aload 1 /* loc */
            iconst_1
            putfield sun.jvm.hotspot.utilities.PointerLocation.inLocalJNIHandleBlock:Z
        74: .line 134
            aload 1 /* loc */
            aload 7 /* handleBlock */
            putfield sun.jvm.hotspot.utilities.PointerLocation.handleBlock:Lsun/jvm/hotspot/runtime/JNIHandleBlock;
        75: .line 135
            aload 1 /* loc */
            aload 6 /* t */
            putfield sun.jvm.hotspot.utilities.PointerLocation.handleThread:Lsun/jvm/hotspot/runtime/Thread;
        76: .line 136
            aload 1 /* loc */
            areturn
        end local 7 // sun.jvm.hotspot.runtime.JNIHandleBlock handleBlock
        77: .line 128
      StackMap locals:
      StackMap stack:
            aload 6 /* t */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.next:()Lsun/jvm/hotspot/runtime/JavaThread;
            astore 6 /* t */
      StackMap locals:
      StackMap stack:
        78: aload 6 /* t */
            ifnonnull 69
        end local 6 // sun.jvm.hotspot.runtime.JavaThread t
        79: .line 142
            aload 1 /* loc */
            areturn
        end local 5 // sun.jvm.hotspot.gc.shared.OopStorage storage
        end local 4 // sun.jvm.hotspot.runtime.JNIHandles handles
        end local 3 // sun.jvm.hotspot.interpreter.Interpreter interp
        end local 2 // sun.jvm.hotspot.gc.shared.CollectedHeap heap
        end local 1 // sun.jvm.hotspot.utilities.PointerLocation loc
        end local 0 // sun.jvm.hotspot.debugger.Address a
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   80     0            a  Lsun/jvm/hotspot/debugger/Address;
            1   80     1          loc  Lsun/jvm/hotspot/utilities/PointerLocation;
            2   80     2         heap  Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            4   29     3      genheap  Lsun/jvm/hotspot/gc/shared/GenCollectedHeap;
            6   13     4            i  I
            8   11     5            g  Lsun/jvm/hotspot/gc/shared/Generation;
           19   28     4            t  Lsun/jvm/hotspot/runtime/JavaThread;
           21   26     5         tlab  Lsun/jvm/hotspot/runtime/ThreadLocalAllocBuffer;
           33   80     3       interp  Lsun/jvm/hotspot/interpreter/Interpreter;
           39   58     4            c  Lsun/jvm/hotspot/code/CodeCache;
           50   51     5           nm  Lsun/jvm/hotspot/code/NMethod;
           59   80     4      handles  Lsun/jvm/hotspot/runtime/JNIHandles;
           60   80     5      storage  Lsun/jvm/hotspot/gc/shared/OopStorage;
           68   79     6            t  Lsun/jvm/hotspot/runtime/JavaThread;
           70   77     7  handleBlock  Lsun/jvm/hotspot/runtime/JNIHandleBlock;
    MethodParameters:
      Name  Flags
      a     
}
SourceFile: "PointerFinder.java"