public class sun.jvm.hotspot.utilities.ReversePtrsAnalysis
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.jvm.hotspot.utilities.ReversePtrsAnalysis
  super_class: java.lang.Object
{
  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private sun.jvm.hotspot.utilities.HeapProgressThunk progressThunk;
    descriptor: Lsun/jvm/hotspot/utilities/HeapProgressThunk;
    flags: (0x0002) ACC_PRIVATE

  private long usedSize;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long visitedSize;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private double lastNotificationFraction;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

  private static final double MINIMUM_NOTIFICATION_FRACTION;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.01

  private sun.jvm.hotspot.oops.ObjectHeap heap;
    descriptor: Lsun/jvm/hotspot/oops/ObjectHeap;
    flags: (0x0002) ACC_PRIVATE

  private sun.jvm.hotspot.utilities.MarkBits markBits;
    descriptor: Lsun/jvm/hotspot/utilities/MarkBits;
    flags: (0x0002) ACC_PRIVATE

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

  private sun.jvm.hotspot.utilities.ReversePtrs rp;
    descriptor: Lsun/jvm/hotspot/utilities/ReversePtrs;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
         0: .line 48
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            return
        end local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;

  public void setHeapProgressThunk(sun.jvm.hotspot.utilities.HeapProgressThunk);
    descriptor: (Lsun/jvm/hotspot/utilities/HeapProgressThunk;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
        start local 1 // sun.jvm.hotspot.utilities.HeapProgressThunk thunk
         0: .line 53
            aload 0 /* this */
            aload 1 /* thunk */
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.progressThunk:Lsun/jvm/hotspot/utilities/HeapProgressThunk;
         1: .line 54
            return
        end local 1 // sun.jvm.hotspot.utilities.HeapProgressThunk thunk
        end local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
            0    2     1  thunk  Lsun/jvm/hotspot/utilities/HeapProgressThunk;
    MethodParameters:
       Name  Flags
      thunk  

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
         0: .line 59
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getRevPtrs:()Lsun/jvm/hotspot/utilities/ReversePtrs;
            ifnull 2
         1: .line 60
            return
         2: .line 63
      StackMap locals:
      StackMap stack:
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            astore 1 /* vm */
        start local 1 // sun.jvm.hotspot.runtime.VM vm
         3: .line 64
            aload 0 /* this */
            new sun.jvm.hotspot.utilities.ReversePtrs
            dup
            invokespecial sun.jvm.hotspot.utilities.ReversePtrs.<init>:()V
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.rp:Lsun/jvm/hotspot/utilities/ReversePtrs;
         4: .line 65
            aload 1 /* vm */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.rp:Lsun/jvm/hotspot/utilities/ReversePtrs;
            invokevirtual sun.jvm.hotspot.runtime.VM.setRevPtrs:(Lsun/jvm/hotspot/utilities/ReversePtrs;)V
         5: .line 66
            aload 1 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getUniverse:()Lsun/jvm/hotspot/memory/Universe;
            astore 2 /* universe */
        start local 2 // sun.jvm.hotspot.memory.Universe universe
         6: .line 67
            aload 2 /* universe */
            invokevirtual sun.jvm.hotspot.memory.Universe.heap:()Lsun/jvm/hotspot/gc/shared/CollectedHeap;
            astore 3 /* collHeap */
        start local 3 // sun.jvm.hotspot.gc.shared.CollectedHeap collHeap
         7: .line 68
            aload 0 /* this */
            aload 3 /* collHeap */
            invokevirtual sun.jvm.hotspot.gc.shared.CollectedHeap.used:()J
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.usedSize:J
         8: .line 69
            aload 0 /* this */
            lconst_0
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.visitedSize:J
         9: .line 83
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.progressThunk:Lsun/jvm/hotspot/utilities/HeapProgressThunk;
            ifnull 11
        10: .line 85
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.progressThunk:Lsun/jvm/hotspot/utilities/HeapProgressThunk;
            dconst_0
            invokeinterface sun.jvm.hotspot.utilities.HeapProgressThunk.heapIterationFractionUpdate:(D)V
        11: .line 89
      StackMap locals: sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.memory.Universe sun.jvm.hotspot.gc.shared.CollectedHeap
      StackMap stack:
            aload 0 /* this */
            new sun.jvm.hotspot.utilities.MarkBits
            dup
            aload 3 /* collHeap */
            invokespecial sun.jvm.hotspot.utilities.MarkBits.<init>:(Lsun/jvm/hotspot/gc/shared/CollectedHeap;)V
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.markBits:Lsun/jvm/hotspot/utilities/MarkBits;
        12: .line 92
            aload 0 /* this */
            aload 1 /* vm */
            invokevirtual sun.jvm.hotspot.runtime.VM.getObjectHeap:()Lsun/jvm/hotspot/oops/ObjectHeap;
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.heap:Lsun/jvm/hotspot/oops/ObjectHeap;
        13: .line 95
            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 /* thread */
        start local 4 // sun.jvm.hotspot.runtime.JavaThread thread
        14: .line 96
            goto 28
        15: .line 98
      StackMap locals: sun.jvm.hotspot.runtime.JavaThread
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 5 /* bos */
        start local 5 // java.io.ByteArrayOutputStream bos
        16: .line 99
            aload 4 /* thread */
            new java.io.PrintStream
            dup
            aload 5 /* bos */
            invokespecial java.io.PrintStream.<init>:(Ljava/io/OutputStream;)V
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.printThreadIDOn:(Ljava/io/PrintStream;)V
        17: .line 101
            new java.lang.StringBuilder
            dup
            ldc " in thread \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.getThreadName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 102
            ldc "\" (id "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* bos */
            invokevirtual java.io.ByteArrayOutputStream.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 101
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 100
            astore 6 /* threadDesc */
        start local 6 // java.lang.String threadDesc
        21: .line 103
            aload 0 /* this */
            aload 4 /* thread */
        22: .line 104
            new sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor
            dup
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "Stack root"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* threadDesc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor.<init>:(Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;Ljava/lang/String;)V
        23: .line 103
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.doStack:(Lsun/jvm/hotspot/runtime/JavaThread;Lsun/jvm/hotspot/runtime/AddressVisitor;)V
        24: .line 105
            aload 0 /* this */
            aload 4 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.activeHandles:()Lsun/jvm/hotspot/runtime/JNIHandleBlock;
        25: .line 106
            new sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor
            dup
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "JNI handle root"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* threadDesc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor.<init>:(Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;Ljava/lang/String;)V
        26: .line 105
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.doJNIHandleBlock:(Lsun/jvm/hotspot/runtime/JNIHandleBlock;Lsun/jvm/hotspot/runtime/AddressVisitor;)V
        end local 6 // java.lang.String threadDesc
        end local 5 // java.io.ByteArrayOutputStream bos
        27: .line 97
            aload 4 /* thread */
            invokevirtual sun.jvm.hotspot.runtime.JavaThread.next:()Lsun/jvm/hotspot/runtime/JavaThread;
            astore 4 /* thread */
        28: .line 96
      StackMap locals:
      StackMap stack:
            aload 4 /* thread */
            ifnonnull 15
        end local 4 // sun.jvm.hotspot.runtime.JavaThread thread
        29: .line 110
            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
        30: .line 111
            aload 0 /* this */
            aload 4 /* handles */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandles.globalHandles:()Lsun/jvm/hotspot/runtime/JNIHandleBlock;
        31: .line 112
            new sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor
            dup
            aload 0 /* this */
            ldc "Global JNI handle root"
            invokespecial sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor.<init>:(Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;Ljava/lang/String;)V
        32: .line 111
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.doJNIHandleBlock:(Lsun/jvm/hotspot/runtime/JNIHandleBlock;Lsun/jvm/hotspot/runtime/AddressVisitor;)V
        33: .line 113
            aload 0 /* this */
            aload 4 /* handles */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandles.weakGlobalHandles:()Lsun/jvm/hotspot/runtime/JNIHandleBlock;
        34: .line 114
            new sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor
            dup
            aload 0 /* this */
            ldc "Weak global JNI handle root"
            invokespecial sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor.<init>:(Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;Ljava/lang/String;)V
        35: .line 113
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.doJNIHandleBlock:(Lsun/jvm/hotspot/runtime/JNIHandleBlock;Lsun/jvm/hotspot/runtime/AddressVisitor;)V
        36: .line 117
            invokestatic sun.jvm.hotspot.runtime.VM.getVM:()Lsun/jvm/hotspot/runtime/VM;
            invokevirtual sun.jvm.hotspot.runtime.VM.getClassLoaderDataGraph:()Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;
            astore 5 /* cldg */
        start local 5 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldg
        37: .line 118
            aload 5 /* cldg */
            new sun.jvm.hotspot.utilities.ReversePtrsAnalysis$1
            dup
            aload 0 /* this */
            invokespecial sun.jvm.hotspot.utilities.ReversePtrsAnalysis$1.<init>:(Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;)V
            invokevirtual sun.jvm.hotspot.classfile.ClassLoaderDataGraph.classesDo:(Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph$ClassVisitor;)V
        38: .line 153
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.progressThunk:Lsun/jvm/hotspot/utilities/HeapProgressThunk;
            ifnull 40
        39: .line 154
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.progressThunk:Lsun/jvm/hotspot/utilities/HeapProgressThunk;
            invokeinterface sun.jvm.hotspot.utilities.HeapProgressThunk.heapIterationComplete:()V
        40: .line 158
      StackMap locals: sun.jvm.hotspot.utilities.ReversePtrsAnalysis sun.jvm.hotspot.runtime.VM sun.jvm.hotspot.memory.Universe sun.jvm.hotspot.gc.shared.CollectedHeap sun.jvm.hotspot.runtime.JNIHandles sun.jvm.hotspot.classfile.ClassLoaderDataGraph
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.markBits:Lsun/jvm/hotspot/utilities/MarkBits;
        41: .line 159
            return
        end local 5 // sun.jvm.hotspot.classfile.ClassLoaderDataGraph cldg
        end local 4 // sun.jvm.hotspot.runtime.JNIHandles handles
        end local 3 // sun.jvm.hotspot.gc.shared.CollectedHeap collHeap
        end local 2 // sun.jvm.hotspot.memory.Universe universe
        end local 1 // sun.jvm.hotspot.runtime.VM vm
        end local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   42     0        this  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
            3   42     1          vm  Lsun/jvm/hotspot/runtime/VM;
            6   42     2    universe  Lsun/jvm/hotspot/memory/Universe;
            7   42     3    collHeap  Lsun/jvm/hotspot/gc/shared/CollectedHeap;
           14   29     4      thread  Lsun/jvm/hotspot/runtime/JavaThread;
           16   27     5         bos  Ljava/io/ByteArrayOutputStream;
           21   27     6  threadDesc  Ljava/lang/String;
           30   42     4     handles  Lsun/jvm/hotspot/runtime/JNIHandles;
           37   42     5        cldg  Lsun/jvm/hotspot/classfile/ClassLoaderDataGraph;

  private void markAndTraverse(sun.jvm.hotspot.debugger.OopHandle);
    descriptor: (Lsun/jvm/hotspot/debugger/OopHandle;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
        start local 1 // sun.jvm.hotspot.debugger.OopHandle handle
         0: .line 177
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.heap:Lsun/jvm/hotspot/oops/ObjectHeap;
            aload 1 /* handle */
            invokevirtual sun.jvm.hotspot.oops.ObjectHeap.newOop:(Lsun/jvm/hotspot/debugger/OopHandle;)Lsun/jvm/hotspot/oops/Oop;
            invokevirtual sun.jvm.hotspot.utilities.ReversePtrsAnalysis.markAndTraverse:(Lsun/jvm/hotspot/oops/Oop;)V
         1: .line 178
            goto 12
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.debugger.AddressException
         2: astore 2 /* e */
        start local 2 // sun.jvm.hotspot.debugger.AddressException e
         3: .line 179
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "RevPtrs analysis: WARNING: AddressException at 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 180
            aload 2 /* e */
            invokevirtual sun.jvm.hotspot.debugger.AddressException.getAddress:()J
            invokestatic java.lang.Long.toHexString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 181
            ldc " while traversing oop at "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* handle */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 179
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 2 // sun.jvm.hotspot.debugger.AddressException e
         7: goto 12
         8: .line 182
      StackMap locals:
      StackMap stack: sun.jvm.hotspot.oops.UnknownOopException
            pop
         9: .line 183
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "RevPtrs analysis: WARNING: UnknownOopException for oop at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        10: .line 184
            aload 1 /* handle */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 183
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 186
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.jvm.hotspot.debugger.OopHandle handle
        end local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
            0   13     1  handle  Lsun/jvm/hotspot/debugger/OopHandle;
            3    7     2       e  Lsun/jvm/hotspot/debugger/AddressException;
      Exception table:
        from    to  target  type
           0     1       2  Class sun.jvm.hotspot.debugger.AddressException
           0     1       8  Class sun.jvm.hotspot.oops.UnknownOopException
    MethodParameters:
        Name  Flags
      handle  

  private void printHeader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
         0: .line 189
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 4
         2: .line 190
      StackMap locals: int
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc " "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         3: .line 189
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 1 /* i */
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.depth:I
            if_icmplt 2
        end local 1 // int i
         5: .line 192
            return
        end local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
            1    5     1     i  I

  private void markAndTraverse(sun.jvm.hotspot.oops.Oop);
    descriptor: (Lsun/jvm/hotspot/oops/Oop;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
        start local 1 // sun.jvm.hotspot.oops.Oop obj
         0: .line 197
            aload 1 /* obj */
            ifnonnull 2
         1: .line 198
            return
         2: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.markBits:Lsun/jvm/hotspot/utilities/MarkBits;
            aload 1 /* obj */
            invokevirtual sun.jvm.hotspot.utilities.MarkBits.mark:(Lsun/jvm/hotspot/oops/Oop;)Z
            ifne 4
         3: .line 203
            return
         4: .line 209
      StackMap locals:
      StackMap stack:
            new java.util.Stack
            dup
            invokespecial java.util.Stack.<init>:()V
            astore 2 /* workList */
        start local 2 // java.util.Stack workList
         5: .line 212
            aload 1 /* obj */
            astore 3 /* next */
        start local 3 // sun.jvm.hotspot.oops.Oop next
         6: .line 218
      StackMap locals: java.util.Stack sun.jvm.hotspot.oops.Oop
      StackMap stack:
            aload 3 /* next */
            astore 4 /* currObj */
        start local 4 // sun.jvm.hotspot.oops.Oop currObj
         7: .line 221
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.progressThunk:Lsun/jvm/hotspot/utilities/HeapProgressThunk;
            ifnull 14
         8: .line 222
            aload 0 /* this */
            dup
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.visitedSize:J
            aload 4 /* currObj */
            invokevirtual sun.jvm.hotspot.oops.Oop.getObjectSize:()J
            ladd
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.visitedSize:J
         9: .line 223
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.visitedSize:J
            l2d
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.usedSize:J
            l2d
            ddiv
            dstore 5 /* curFrac */
        start local 5 // double curFrac
        10: .line 224
            dload 5 /* curFrac */
        11: .line 225
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.lastNotificationFraction:D
            ldc 0.01
            dadd
            dcmpl
            ifle 14
        12: .line 226
            aload 0 /* this */
            getfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.progressThunk:Lsun/jvm/hotspot/utilities/HeapProgressThunk;
            dload 5 /* curFrac */
            invokeinterface sun.jvm.hotspot.utilities.HeapProgressThunk.heapIterationFractionUpdate:(D)V
        13: .line 227
            aload 0 /* this */
            dload 5 /* curFrac */
            putfield sun.jvm.hotspot.utilities.ReversePtrsAnalysis.lastNotificationFraction:D
        end local 5 // double curFrac
        14: .line 242
      StackMap locals: sun.jvm.hotspot.oops.Oop
      StackMap stack:
            aload 4 /* currObj */
            new sun.jvm.hotspot.utilities.ReversePtrsAnalysis$2
            dup
            aload 0 /* this */
            aload 4 /* currObj */
            aload 2 /* workList */
            invokespecial sun.jvm.hotspot.utilities.ReversePtrsAnalysis$2.<init>:(Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;Lsun/jvm/hotspot/oops/Oop;Ljava/util/Stack;)V
        15: .line 251
            iconst_0
        16: .line 242
            invokevirtual sun.jvm.hotspot.oops.Oop.iterate:(Lsun/jvm/hotspot/oops/OopVisitor;Z)V
        17: .line 258
            aload 2 /* workList */
            invokevirtual java.util.Stack.pop:()Ljava/lang/Object;
            checkcast sun.jvm.hotspot.oops.Oop
            astore 3 /* next */
        end local 4 // sun.jvm.hotspot.oops.Oop currObj
        18: .line 217
            goto 6
        19: .line 260
      StackMap locals: sun.jvm.hotspot.utilities.ReversePtrsAnalysis sun.jvm.hotspot.oops.Oop java.util.Stack sun.jvm.hotspot.oops.Oop
      StackMap stack: java.util.EmptyStackException
            pop
            goto 29
        20: .line 262
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
            astore 4 /* e */
        start local 4 // java.lang.NullPointerException e
        21: .line 263
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "ReversePtrs: WARNING: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        22: .line 264
            ldc " during traversal"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 263
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // java.lang.NullPointerException e
        24: goto 29
        25: .line 265
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        26: .line 266
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "ReversePtrs: WARNING: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        27: .line 267
            ldc " during traversal"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 266
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // java.lang.Exception e
        29: .line 269
      StackMap locals:
      StackMap stack:
            return
        end local 3 // sun.jvm.hotspot.oops.Oop next
        end local 2 // java.util.Stack workList
        end local 1 // sun.jvm.hotspot.oops.Oop obj
        end local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   30     0      this  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
            0   30     1       obj  Lsun/jvm/hotspot/oops/Oop;
            5   30     2  workList  Ljava/util/Stack;
            6   30     3      next  Lsun/jvm/hotspot/oops/Oop;
            7   18     4   currObj  Lsun/jvm/hotspot/oops/Oop;
           10   14     5   curFrac  D
           21   24     4         e  Ljava/lang/NullPointerException;
           26   29     4         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6    19      19  Class java.util.EmptyStackException
           6    19      20  Class java.lang.NullPointerException
           6    19      25  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      obj   final

  private void doStack(sun.jvm.hotspot.runtime.JavaThread, sun.jvm.hotspot.runtime.AddressVisitor);
    descriptor: (Lsun/jvm/hotspot/runtime/JavaThread;Lsun/jvm/hotspot/runtime/AddressVisitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
        start local 1 // sun.jvm.hotspot.runtime.JavaThread thread
        start local 2 // sun.jvm.hotspot.runtime.AddressVisitor oopVisitor
         0: .line 300
            new sun.jvm.hotspot.runtime.StackFrameStream
            dup
            aload 1 /* thread */
            invokespecial sun.jvm.hotspot.runtime.StackFrameStream.<init>:(Lsun/jvm/hotspot/runtime/JavaThread;)V
            astore 3 /* fst */
        start local 3 // sun.jvm.hotspot.runtime.StackFrameStream fst
         1: goto 4
         2: .line 301
      StackMap locals: sun.jvm.hotspot.runtime.StackFrameStream
      StackMap stack:
            aload 3 /* fst */
            invokevirtual sun.jvm.hotspot.runtime.StackFrameStream.getCurrent:()Lsun/jvm/hotspot/runtime/Frame;
            aload 2 /* oopVisitor */
            aload 3 /* fst */
            invokevirtual sun.jvm.hotspot.runtime.StackFrameStream.getRegisterMap:()Lsun/jvm/hotspot/runtime/RegisterMap;
            invokevirtual sun.jvm.hotspot.runtime.Frame.oopsDo:(Lsun/jvm/hotspot/runtime/AddressVisitor;Lsun/jvm/hotspot/runtime/RegisterMap;)V
         3: .line 300
            aload 3 /* fst */
            invokevirtual sun.jvm.hotspot.runtime.StackFrameStream.next:()V
      StackMap locals:
      StackMap stack:
         4: aload 3 /* fst */
            invokevirtual sun.jvm.hotspot.runtime.StackFrameStream.isDone:()Z
            ifeq 2
        end local 3 // sun.jvm.hotspot.runtime.StackFrameStream fst
         5: .line 303
            return
        end local 2 // sun.jvm.hotspot.runtime.AddressVisitor oopVisitor
        end local 1 // sun.jvm.hotspot.runtime.JavaThread thread
        end local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
            0    6     1      thread  Lsun/jvm/hotspot/runtime/JavaThread;
            0    6     2  oopVisitor  Lsun/jvm/hotspot/runtime/AddressVisitor;
            1    5     3         fst  Lsun/jvm/hotspot/runtime/StackFrameStream;
    MethodParameters:
            Name  Flags
      thread      
      oopVisitor  

  private void doJNIHandleBlock(sun.jvm.hotspot.runtime.JNIHandleBlock, sun.jvm.hotspot.runtime.AddressVisitor);
    descriptor: (Lsun/jvm/hotspot/runtime/JNIHandleBlock;Lsun/jvm/hotspot/runtime/AddressVisitor;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
        start local 1 // sun.jvm.hotspot.runtime.JNIHandleBlock handles
        start local 2 // sun.jvm.hotspot.runtime.AddressVisitor oopVisitor
         0: .line 307
            aload 1 /* handles */
            aload 2 /* oopVisitor */
            invokevirtual sun.jvm.hotspot.runtime.JNIHandleBlock.oopsDo:(Lsun/jvm/hotspot/runtime/AddressVisitor;)V
         1: .line 308
            return
        end local 2 // sun.jvm.hotspot.runtime.AddressVisitor oopVisitor
        end local 1 // sun.jvm.hotspot.runtime.JNIHandleBlock handles
        end local 0 // sun.jvm.hotspot.utilities.ReversePtrsAnalysis this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lsun/jvm/hotspot/utilities/ReversePtrsAnalysis;
            0    2     1     handles  Lsun/jvm/hotspot/runtime/JNIHandleBlock;
            0    2     2  oopVisitor  Lsun/jvm/hotspot/runtime/AddressVisitor;
    MethodParameters:
            Name  Flags
      handles     
      oopVisitor  
}
SourceFile: "ReversePtrsAnalysis.java"
NestMembers:
  sun.jvm.hotspot.utilities.ReversePtrsAnalysis$1  sun.jvm.hotspot.utilities.ReversePtrsAnalysis$1$1  sun.jvm.hotspot.utilities.ReversePtrsAnalysis$2  sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor
InnerClasses:
  public abstract ClassVisitor = sun.jvm.hotspot.classfile.ClassLoaderDataGraph$ClassVisitor of sun.jvm.hotspot.classfile.ClassLoaderDataGraph
  sun.jvm.hotspot.utilities.ReversePtrsAnalysis$1
  sun.jvm.hotspot.utilities.ReversePtrsAnalysis$2
  RootVisitor = sun.jvm.hotspot.utilities.ReversePtrsAnalysis$RootVisitor of sun.jvm.hotspot.utilities.ReversePtrsAnalysis