public class com.sun.tools.hat.internal.model.ReachableObjects
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.hat.internal.model.ReachableObjects
  super_class: java.lang.Object
{
  private com.sun.tools.hat.internal.model.JavaHeapObject root;
    descriptor: Lcom/sun/tools/hat/internal/model/JavaHeapObject;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.hat.internal.model.JavaThing[] reachables;
    descriptor: [Lcom/sun/tools/hat/internal/model/JavaThing;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] excludedFields;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String[] usedFields;
    descriptor: [Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

  public void <init>(com.sun.tools.hat.internal.model.JavaHeapObject, com.sun.tools.hat.internal.model.ReachableExcludes);
    descriptor: (Lcom/sun/tools/hat/internal/model/JavaHeapObject;Lcom/sun/tools/hat/internal/model/ReachableExcludes;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=3
        start local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
        start local 1 // com.sun.tools.hat.internal.model.JavaHeapObject root
        start local 2 // com.sun.tools.hat.internal.model.ReachableExcludes excludes
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 49
            aload 0 /* this */
            aload 1 /* root */
            putfield com.sun.tools.hat.internal.model.ReachableObjects.root:Lcom/sun/tools/hat/internal/model/JavaHeapObject;
         2: .line 51
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 3 /* bag */
        start local 3 // java.util.Hashtable bag
         3: .line 52
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 4 /* fieldsExcluded */
        start local 4 // java.util.Hashtable fieldsExcluded
         4: .line 53
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            astore 5 /* fieldsUsed */
        start local 5 // java.util.Hashtable fieldsUsed
         5: .line 54
            new com.sun.tools.hat.internal.model.ReachableObjects$1
            dup
            aload 0 /* this */
            aload 3 /* bag */
            aload 2 /* excludes */
            aload 4 /* fieldsExcluded */
            aload 5 /* fieldsUsed */
            invokespecial com.sun.tools.hat.internal.model.ReachableObjects$1.<init>:(Lcom/sun/tools/hat/internal/model/ReachableObjects;Ljava/util/Hashtable;Lcom/sun/tools/hat/internal/model/ReachableExcludes;Ljava/util/Hashtable;Ljava/util/Hashtable;)V
            astore 6 /* visitor */
        start local 6 // com.sun.tools.hat.internal.model.JavaHeapObjectVisitor visitor
         6: .line 83
            aload 6 /* visitor */
            aload 1 /* root */
            invokeinterface com.sun.tools.hat.internal.model.JavaHeapObjectVisitor.visit:(Lcom/sun/tools/hat/internal/model/JavaHeapObject;)V
         7: .line 84
            aload 3 /* bag */
            aload 1 /* root */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 87
            aload 3 /* bag */
            invokevirtual java.util.Hashtable.size:()I
            anewarray com.sun.tools.hat.internal.model.JavaThing
            astore 7 /* things */
        start local 7 // com.sun.tools.hat.internal.model.JavaThing[] things
         9: .line 88
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        10: .line 89
            aload 3 /* bag */
            invokevirtual java.util.Hashtable.elements:()Ljava/util/Enumeration;
            astore 9 /* e */
        start local 9 // java.util.Enumeration e
        11: goto 13
        12: .line 90
      StackMap locals: com.sun.tools.hat.internal.model.ReachableObjects com.sun.tools.hat.internal.model.JavaHeapObject com.sun.tools.hat.internal.model.ReachableExcludes java.util.Hashtable java.util.Hashtable java.util.Hashtable com.sun.tools.hat.internal.model.JavaHeapObjectVisitor com.sun.tools.hat.internal.model.JavaThing[] int java.util.Enumeration
      StackMap stack:
            aload 7 /* things */
            iload 8 /* i */
            iinc 8 /* i */ 1
            aload 9 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast com.sun.tools.hat.internal.model.JavaThing
            aastore
        13: .line 89
      StackMap locals:
      StackMap stack:
            aload 9 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 12
        end local 9 // java.util.Enumeration e
        14: .line 92
            aload 7 /* things */
            new com.sun.tools.hat.internal.model.ReachableObjects$2
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.hat.internal.model.ReachableObjects$2.<init>:(Lcom/sun/tools/hat/internal/model/ReachableObjects;)V
            invokestatic com.sun.tools.hat.internal.util.ArraySorter.sort:([Ljava/lang/Object;Lcom/sun/tools/hat/internal/util/Comparer;)V
        15: .line 103
            aload 0 /* this */
            aload 7 /* things */
            putfield com.sun.tools.hat.internal.model.ReachableObjects.reachables:[Lcom/sun/tools/hat/internal/model/JavaThing;
        16: .line 105
            aload 0 /* this */
            aload 1 /* root */
            invokevirtual com.sun.tools.hat.internal.model.JavaHeapObject.getSize:()I
            i2l
            putfield com.sun.tools.hat.internal.model.ReachableObjects.totalSize:J
        17: .line 106
            iconst_0
            istore 8 /* i */
            goto 20
        18: .line 107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.tools.hat.internal.model.ReachableObjects.totalSize:J
            aload 7 /* things */
            iload 8 /* i */
            aaload
            invokevirtual com.sun.tools.hat.internal.model.JavaThing.getSize:()I
            i2l
            ladd
            putfield com.sun.tools.hat.internal.model.ReachableObjects.totalSize:J
        19: .line 106
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 8 /* i */
            aload 7 /* things */
            arraylength
            if_icmplt 18
        21: .line 110
            aload 0 /* this */
            aload 0 /* this */
            aload 4 /* fieldsExcluded */
            invokevirtual com.sun.tools.hat.internal.model.ReachableObjects.getElements:(Ljava/util/Hashtable;)[Ljava/lang/String;
            putfield com.sun.tools.hat.internal.model.ReachableObjects.excludedFields:[Ljava/lang/String;
        22: .line 111
            aload 0 /* this */
            aload 0 /* this */
            aload 5 /* fieldsUsed */
            invokevirtual com.sun.tools.hat.internal.model.ReachableObjects.getElements:(Ljava/util/Hashtable;)[Ljava/lang/String;
            putfield com.sun.tools.hat.internal.model.ReachableObjects.usedFields:[Ljava/lang/String;
        23: .line 112
            return
        end local 8 // int i
        end local 7 // com.sun.tools.hat.internal.model.JavaThing[] things
        end local 6 // com.sun.tools.hat.internal.model.JavaHeapObjectVisitor visitor
        end local 5 // java.util.Hashtable fieldsUsed
        end local 4 // java.util.Hashtable fieldsExcluded
        end local 3 // java.util.Hashtable bag
        end local 2 // com.sun.tools.hat.internal.model.ReachableExcludes excludes
        end local 1 // com.sun.tools.hat.internal.model.JavaHeapObject root
        end local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Lcom/sun/tools/hat/internal/model/ReachableObjects;
            0   24     1            root  Lcom/sun/tools/hat/internal/model/JavaHeapObject;
            0   24     2        excludes  Lcom/sun/tools/hat/internal/model/ReachableExcludes;
            3   24     3             bag  Ljava/util/Hashtable<Lcom/sun/tools/hat/internal/model/JavaHeapObject;Lcom/sun/tools/hat/internal/model/JavaHeapObject;>;
            4   24     4  fieldsExcluded  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;
            5   24     5      fieldsUsed  Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/String;>;
            6   24     6         visitor  Lcom/sun/tools/hat/internal/model/JavaHeapObjectVisitor;
            9   24     7          things  [Lcom/sun/tools/hat/internal/model/JavaThing;
           10   24     8               i  I
           11   14     9               e  Ljava/util/Enumeration;
    MethodParameters:
          Name  Flags
      root      
      excludes  final

  public com.sun.tools.hat.internal.model.JavaHeapObject getRoot();
    descriptor: ()Lcom/sun/tools/hat/internal/model/JavaHeapObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
         0: .line 115
            aload 0 /* this */
            getfield com.sun.tools.hat.internal.model.ReachableObjects.root:Lcom/sun/tools/hat/internal/model/JavaHeapObject;
            areturn
        end local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/hat/internal/model/ReachableObjects;

  public com.sun.tools.hat.internal.model.JavaThing[] getReachables();
    descriptor: ()[Lcom/sun/tools/hat/internal/model/JavaThing;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
         0: .line 119
            aload 0 /* this */
            getfield com.sun.tools.hat.internal.model.ReachableObjects.reachables:[Lcom/sun/tools/hat/internal/model/JavaThing;
            areturn
        end local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/hat/internal/model/ReachableObjects;

  public long getTotalSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
         0: .line 123
            aload 0 /* this */
            getfield com.sun.tools.hat.internal.model.ReachableObjects.totalSize:J
            lreturn
        end local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/hat/internal/model/ReachableObjects;

  public java.lang.String[] getExcludedFields();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
         0: .line 127
            aload 0 /* this */
            getfield com.sun.tools.hat.internal.model.ReachableObjects.excludedFields:[Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/hat/internal/model/ReachableObjects;

  public java.lang.String[] getUsedFields();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
         0: .line 131
            aload 0 /* this */
            getfield com.sun.tools.hat.internal.model.ReachableObjects.usedFields:[Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/hat/internal/model/ReachableObjects;

  private java.lang.String[] getElements(java.util.Hashtable);
    descriptor: (Ljava/util/Hashtable;)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
        start local 1 // java.util.Hashtable ht
         0: .line 135
            aload 1 /* ht */
            invokevirtual java.util.Hashtable.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
            astore 2 /* keys */
        start local 2 // java.lang.Object[] keys
         1: .line 136
            aload 2 /* keys */
            arraylength
            istore 3 /* len */
        start local 3 // int len
         2: .line 137
            iload 3 /* len */
            anewarray java.lang.String
            astore 4 /* res */
        start local 4 // java.lang.String[] res
         3: .line 138
            aload 2 /* keys */
            iconst_0
            aload 4 /* res */
            iconst_0
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 139
            aload 4 /* res */
            invokestatic com.sun.tools.hat.internal.util.ArraySorter.sortArrayOfStrings:([Ljava/lang/Object;)V
         5: .line 140
            aload 4 /* res */
            areturn
        end local 4 // java.lang.String[] res
        end local 3 // int len
        end local 2 // java.lang.Object[] keys
        end local 1 // java.util.Hashtable ht
        end local 0 // com.sun.tools.hat.internal.model.ReachableObjects this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/hat/internal/model/ReachableObjects;
            0    6     1    ht  Ljava/util/Hashtable;
            1    6     2  keys  [Ljava/lang/Object;
            2    6     3   len  I
            3    6     4   res  [Ljava/lang/String;
    MethodParameters:
      Name  Flags
      ht    
}
SourceFile: "ReachableObjects.java"
NestMembers:
  com.sun.tools.hat.internal.model.ReachableObjects$1  com.sun.tools.hat.internal.model.ReachableObjects$2
InnerClasses:
  com.sun.tools.hat.internal.model.ReachableObjects$1
  com.sun.tools.hat.internal.model.ReachableObjects$2