public final class com.oracle.svm.hosted.image.ObjectGroupHistogram
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.hosted.image.ObjectGroupHistogram
  super_class: java.lang.Object
{
  private final com.oracle.svm.hosted.image.NativeImageHeap heap;
    descriptor: Lcom/oracle/svm/hosted/image/NativeImageHeap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, java.lang.String> groups;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;>;

  private final java.util.Map<java.lang.String, com.oracle.svm.hosted.image.HeapHistogram> groupHistograms;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/oracle/svm/hosted/image/HeapHistogram;>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 50
            ldc Lcom/oracle/svm/hosted/image/ObjectGroupHistogram;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.svm.hosted.image.ObjectGroupHistogram.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void print(com.oracle.svm.hosted.image.NativeImageHeap);
    descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap heap
         0: .line 56
            new com.oracle.svm.hosted.image.ObjectGroupHistogram
            dup
            aload 0 /* heap */
            invokespecial com.oracle.svm.hosted.image.ObjectGroupHistogram.<init>:(Lcom/oracle/svm/hosted/image/NativeImageHeap;)V
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.doPrint:()V
         1: .line 57
            return
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap heap
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  heap  Lcom/oracle/svm/hosted/image/NativeImageHeap;
    MethodParameters:
      Name  Flags
      heap  

  private void <init>(com.oracle.svm.hosted.image.NativeImageHeap);
    descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
        start local 1 // com.oracle.svm.hosted.image.NativeImageHeap heap
         0: .line 59
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
            aload 1 /* heap */
            putfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
         2: .line 61
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.svm.hosted.image.ObjectGroupHistogram.groups:Ljava/util/Map;
         3: .line 62
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield com.oracle.svm.hosted.image.ObjectGroupHistogram.groupHistograms:Ljava/util/Map;
         4: .line 63
            return
        end local 1 // com.oracle.svm.hosted.image.NativeImageHeap heap
        end local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram;
            0    5     1  heap  Lcom/oracle/svm/hosted/image/NativeImageHeap;
    MethodParameters:
      Name  Flags
      heap  

  private static boolean filterCodeInfoObjects(com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, int);
    descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        start local 1 // int recursionLevel
         0: .line 74
            iload 1 /* recursionLevel */
            iconst_2
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int recursionLevel
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            0    2     1  recursionLevel  I
    MethodParameters:
                Name  Flags
      info            
      recursionLevel  

  private static boolean filterDynamicHubField(com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, com.oracle.svm.hosted.meta.HostedField);
    descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        start local 1 // com.oracle.svm.hosted.meta.HostedField field
         0: .line 78
            aload 0 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            instanceof com.oracle.svm.core.hub.DynamicHub
            ifeq 3
         1: .line 79
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getName:()Ljava/lang/String;
            ldc "name"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getName:()Ljava/lang/String;
            ldc "assignableFromMatches"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getName:()Ljava/lang/String;
            ldc "pointerMapEncoding"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_1
            ireturn
         3: .line 81
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.oracle.svm.hosted.meta.HostedField field
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            0    4     1  field  Lcom/oracle/svm/hosted/meta/HostedField;
    MethodParameters:
       Name  Flags
      info   
      field  

  private static boolean filterGraalSupportObjects(com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, int);
    descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        start local 1 // int recursionLevel
         0: .line 85
            iload 1 /* recursionLevel */
            iconst_1
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // int recursionLevel
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            0    2     1  recursionLevel  I
    MethodParameters:
                Name  Flags
      info            
      recursionLevel  

  private static boolean filterObjectConstantField(com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, com.oracle.svm.hosted.meta.HostedField);
    descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        start local 1 // com.oracle.svm.hosted.meta.HostedField field
         0: .line 89
            aload 0 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            instanceof com.oracle.svm.core.meta.SubstrateObjectConstant
            ifeq 4
         1: .line 90
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getName:()Ljava/lang/String;
            ldc "object"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: ireturn
         4: .line 92
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.oracle.svm.hosted.meta.HostedField field
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            0    5     1  field  Lcom/oracle/svm/hosted/meta/HostedField;
    MethodParameters:
       Name  Flags
      info   
      field  

  private void doPrint();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
         0: .line 102
            aload 0 /* this */
            ldc Lcom/oracle/svm/core/hub/DynamicHub;
            ldc "DynamicHub"
            iconst_1
            aconst_null
            invokedynamic test()Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z
                  com/oracle/svm/hosted/image/ObjectGroupHistogram.filterDynamicHubField(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z (6)
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processType:(Ljava/lang/Class;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         1: .line 103
            aload 0 /* this */
            invokestatic com.oracle.svm.core.hub.DynamicHubSupport.getReferenceMapEncoding:()Lcom/oracle/svm/core/c/NonmovableArray;
            invokestatic com.oracle.svm.core.c.NonmovableArrays.getHostedArray:(Lcom/oracle/svm/core/c/NonmovableArray;)Ljava/lang/Object;
            ldc "DynamicHub"
            iconst_1
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Ljava/lang/Object;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         2: .line 104
            aload 0 /* this */
            invokestatic com.oracle.svm.core.code.CodeInfoTable.getImageCodeCache:()Lcom/oracle/svm/core/code/ImageCodeInfo;
            ldc "ImageCodeInfo"
            iconst_1
            invokedynamic test()Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
                  com/oracle/svm/hosted/image/ObjectGroupHistogram.filterCodeInfoObjects(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z (6)
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
            aconst_null
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Ljava/lang/Object;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         3: .line 106
            aload 0 /* this */
            ldc "graphEncoding"
            invokestatic com.oracle.svm.hosted.image.ObjectGroupHistogram.readGraalSupportField:(Ljava/lang/String;)Ljava/lang/Object;
            ldc "CompressedGraph"
            iconst_1
            invokedynamic test()Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
                  com/oracle/svm/hosted/image/ObjectGroupHistogram.filterGraalSupportObjects(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z (6)
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
            aconst_null
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Ljava/lang/Object;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         4: .line 107
            aload 0 /* this */
            ldc "graphObjects"
            invokestatic com.oracle.svm.hosted.image.ObjectGroupHistogram.readGraalSupportField:(Ljava/lang/String;)Ljava/lang/Object;
            ldc "CompressedGraph"
            iconst_1
            invokedynamic test()Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
                  com/oracle/svm/hosted/image/ObjectGroupHistogram.filterGraalSupportObjects(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z (6)
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
            aconst_null
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Ljava/lang/Object;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         5: .line 108
            aload 0 /* this */
            ldc "graphNodeTypes"
            invokestatic com.oracle.svm.hosted.image.ObjectGroupHistogram.readGraalSupportField:(Ljava/lang/String;)Ljava/lang/Object;
            ldc "CompressedGraph"
            iconst_1
            invokedynamic test()Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
                  com/oracle/svm/hosted/image/ObjectGroupHistogram.filterGraalSupportObjects(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z (6)
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
            aconst_null
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Ljava/lang/Object;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         6: .line 110
            aload 0 /* this */
            ldc Ljdk/vm/ci/meta/ResolvedJavaType;
            ldc "Graal Metadata"
            iconst_0
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processType:(Ljava/lang/Class;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         7: .line 111
            aload 0 /* this */
            ldc Ljdk/vm/ci/meta/ResolvedJavaMethod;
            ldc "Graal Metadata"
            iconst_0
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processType:(Ljava/lang/Class;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         8: .line 112
            aload 0 /* this */
            ldc Ljdk/vm/ci/meta/ResolvedJavaField;
            ldc "Graal Metadata"
            iconst_0
            aconst_null
            aconst_null
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processType:(Ljava/lang/Class;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         9: .line 115
            ldc "com.oracle.svm.graal.SubstrateRuntimeProvider"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            ldc "graphObjects"
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            astore 1 /* field */
        start local 1 // java.lang.reflect.Field field
        10: .line 116
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getMetaAccess:()Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.lookupJavaField:(Ljava/lang/reflect/Field;)Lcom/oracle/svm/hosted/meta/HostedField;
            aconst_null
            invokevirtual com.oracle.svm.hosted.meta.HostedField.readValue:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
            astore 2 /* object */
        start local 2 // java.lang.Object object
        11: .line 117
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            aload 2 /* object */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            ldc "CompressedGraphObjects"
            iconst_1
            aconst_null
            invokedynamic test()Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z
                  com/oracle/svm/hosted/image/ObjectGroupHistogram.filterObjectConstantField(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z (6)
                  (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Ljava/lang/Object;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
        end local 2 // java.lang.Object object
        end local 1 // java.lang.reflect.Field field
        12: .line 118
            goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: pop
        14: .line 122
      StackMap locals:
      StackMap stack:
            new com.oracle.svm.hosted.image.HeapHistogram
            dup
            invokespecial com.oracle.svm.hosted.image.HeapHistogram.<init>:()V
            astore 1 /* totalHistogram */
        start local 1 // com.oracle.svm.hosted.image.HeapHistogram totalHistogram
        15: .line 123
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjects:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 19
      StackMap locals: com.oracle.svm.hosted.image.ObjectGroupHistogram com.oracle.svm.hosted.image.HeapHistogram top java.util.Iterator
      StackMap stack:
        16: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
            astore 2 /* info */
        start local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        17: .line 124
            aload 1 /* totalHistogram */
            aload 2 /* info */
            aload 2 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getSize:()J
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.add:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;J)V
        18: .line 125
            aload 0 /* this */
            aload 2 /* info */
            ldc "Other"
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.addToGroup:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;)Z
            pop
        end local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        19: .line 123
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        20: .line 128
            aload 1 /* totalHistogram */
            ldc "=== Total ==="
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.printHeadings:(Ljava/lang/String;)V
        21: .line 129
            aload 1 /* totalHistogram */
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.print:()V
        22: .line 131
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.groupHistograms:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 26
      StackMap locals:
      StackMap stack:
        23: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
        24: .line 132
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.HeapHistogram
            new java.lang.StringBuilder
            dup
            ldc "=== "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.printHeadings:(Ljava/lang/String;)V
        25: .line 133
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.HeapHistogram
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.print:()V
        end local 2 // java.util.Map$Entry entry
        26: .line 131
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        27: .line 136
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        28: .line 137
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "=== Summary ==="
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        29: .line 138
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.groupHistograms:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 32
      StackMap locals:
      StackMap stack:
        30: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
        31: .line 139
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "%s; %d; %d\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            aastore
            dup
            iconst_1
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.HeapHistogram
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.getTotalCount:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.HeapHistogram
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.getTotalSize:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        end local 2 // java.util.Map$Entry entry
        32: .line 138
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        33: .line 141
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "%s; %d; %d\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "Total"
            aastore
            dup
            iconst_1
            aload 1 /* totalHistogram */
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.getTotalCount:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 1 /* totalHistogram */
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.getTotalSize:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual java.io.PrintStream.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        34: .line 142
            return
        end local 1 // com.oracle.svm.hosted.image.HeapHistogram totalHistogram
        end local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram;
           10   12     1           field  Ljava/lang/reflect/Field;
           11   12     2          object  Ljava/lang/Object;
           15   35     1  totalHistogram  Lcom/oracle/svm/hosted/image/HeapHistogram;
           17   19     2            info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
           24   26     2           entry  Ljava/util/Map$Entry<Ljava/lang/String;Lcom/oracle/svm/hosted/image/HeapHistogram;>;
           31   32     2           entry  Ljava/util/Map$Entry<Ljava/lang/String;Lcom/oracle/svm/hosted/image/HeapHistogram;>;
      Exception table:
        from    to  target  type
           9    12      13  Class java.lang.Throwable

  private static java.lang.Object readGraalSupportField(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String name
         0: .line 146
            ldc "com.oracle.svm.graal.GraalSupport"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            astore 1 /* graalSupportClass */
        start local 1 // java.lang.Class graalSupportClass
         1: .line 147
            aload 1 /* graalSupportClass */
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            astore 2 /* graalSupport */
        start local 2 // java.lang.Object graalSupport
         2: .line 148
            aload 1 /* graalSupportClass */
            aload 0 /* name */
            aload 2 /* graalSupport */
            invokestatic com.oracle.svm.util.ReflectionUtil.readField:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
         3: areturn
        end local 2 // java.lang.Object graalSupport
        end local 1 // java.lang.Class graalSupportClass
         4: .line 149
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
         5: .line 150
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Warning: cannot read field from GraalSupport: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         6: .line 151
            aconst_null
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               name  Ljava/lang/String;
            1    4     1  graalSupportClass  Ljava/lang/Class<*>;
            2    4     2       graalSupport  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      name  

  public void processType(java.lang.Class<?>, java.lang.String, boolean, com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter, com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=6
        start local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
        start local 1 // java.lang.Class clazz
        start local 2 // java.lang.String group
        start local 3 // boolean addObject
        start local 4 // com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter objectFilter
        start local 5 // com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter fieldFilter
         0: .line 156
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjects:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 4
      StackMap locals: com.oracle.svm.hosted.image.ObjectGroupHistogram java.lang.Class java.lang.String int com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter top java.util.Iterator
      StackMap stack:
         1: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
            astore 6 /* info */
        start local 6 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         2: .line 157
            aload 1 /* clazz */
            aload 6 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 158
            aload 0 /* this */
            aload 6 /* info */
            aload 2 /* group */
            iload 3 /* addObject */
            iconst_1
            aload 4 /* objectFilter */
            aload 5 /* fieldFilter */
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;ZILcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
        end local 6 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         4: .line 156
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 161
            return
        end local 5 // com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter fieldFilter
        end local 4 // com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter objectFilter
        end local 3 // boolean addObject
        end local 2 // java.lang.String group
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram;
            0    6     1         clazz  Ljava/lang/Class<*>;
            0    6     2         group  Ljava/lang/String;
            0    6     3     addObject  Z
            0    6     4  objectFilter  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;
            0    6     5   fieldFilter  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;
            2    4     6          info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
    MethodParameters:
              Name  Flags
      clazz         
      group         
      addObject     
      objectFilter  
      fieldFilter   

  public void processObject(java.lang.Object, java.lang.String, boolean, com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter, com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;ZLcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.String group
        start local 3 // boolean addObject
        start local 4 // com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter objectFilter
        start local 5 // com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter fieldFilter
         0: .line 164
            aload 1 /* object */
            ifnull 2
         1: .line 165
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            aload 1 /* object */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            aload 2 /* group */
            iload 3 /* addObject */
            iconst_1
            aload 4 /* objectFilter */
            aload 5 /* fieldFilter */
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;ZILcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
         2: .line 167
      StackMap locals:
      StackMap stack:
            return
        end local 5 // com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter fieldFilter
        end local 4 // com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter objectFilter
        end local 3 // boolean addObject
        end local 2 // java.lang.String group
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram;
            0    3     1        object  Ljava/lang/Object;
            0    3     2         group  Ljava/lang/String;
            0    3     3     addObject  Z
            0    3     4  objectFilter  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;
            0    3     5   fieldFilter  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;
    MethodParameters:
              Name  Flags
      object        
      group         
      addObject     
      objectFilter  
      fieldFilter   

  private void processObject(com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, java.lang.String, boolean, int, com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter, com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter);
    descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;ZILcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=13, args_size=7
        start local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
        start local 1 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        start local 2 // java.lang.String group
        start local 3 // boolean addObject
        start local 4 // int recursionLevel
        start local 5 // com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter objectFilter
        start local 6 // com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter fieldFilter
         0: .line 170
            aload 5 /* objectFilter */
            ifnull 2
            aload 5 /* objectFilter */
            aload 1 /* info */
            iload 4 /* recursionLevel */
            invokeinterface com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter.test:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;I)Z
            ifne 2
         1: .line 171
            return
         2: .line 173
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.hosted.image.ObjectGroupHistogram.$assertionsDisabled:Z
            ifne 3
            aload 1 /* info */
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 174
      StackMap locals:
      StackMap stack:
            iload 3 /* addObject */
            ifeq 6
         4: .line 175
            aload 0 /* this */
            aload 1 /* info */
            aload 2 /* group */
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.addToGroup:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;)Z
            ifne 6
         5: .line 176
            return
         6: .line 179
      StackMap locals:
      StackMap stack:
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getClazz:()Lcom/oracle/svm/hosted/meta/HostedClass;
            invokevirtual com.oracle.svm.hosted.meta.HostedClass.isInstanceClass:()Z
            ifeq 18
         7: .line 180
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            astore 7 /* con */
        start local 7 // jdk.vm.ci.meta.JavaConstant con
         8: .line 181
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getClazz:()Lcom/oracle/svm/hosted/meta/HostedClass;
            iconst_1
            invokevirtual com.oracle.svm.hosted.meta.HostedClass.getInstanceFields:(Z)[Lcom/oracle/svm/hosted/meta/HostedField;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 16
      StackMap locals: com.oracle.svm.hosted.image.ObjectGroupHistogram com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo java.lang.String int int com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter jdk.vm.ci.meta.JavaConstant top int int com.oracle.svm.hosted.meta.HostedField[]
      StackMap stack:
         9: aload 11
            iload 9
            aaload
            astore 8 /* field */
        start local 8 // com.oracle.svm.hosted.meta.HostedField field
        10: .line 182
            aload 8 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getType:()Lcom/oracle/svm/hosted/meta/HostedType;
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getStorageKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 15
            aload 8 /* field */
            invokestatic com.oracle.svm.hosted.config.HybridLayout.isHybridField:(Ljdk/vm/ci/meta/ResolvedJavaField;)Z
            ifne 15
            aload 8 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.isAccessed:()Z
            ifeq 15
        11: .line 183
            aload 6 /* fieldFilter */
            ifnull 12
            aload 6 /* fieldFilter */
            aload 1 /* info */
            aload 8 /* field */
            invokeinterface com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter.test:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Lcom/oracle/svm/hosted/meta/HostedField;)Z
            ifeq 15
        12: .line 184
      StackMap locals: com.oracle.svm.hosted.image.ObjectGroupHistogram com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo java.lang.String int int com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.meta.HostedField int int com.oracle.svm.hosted.meta.HostedField[]
      StackMap stack:
            aload 8 /* field */
            aload 7 /* con */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.readStorageValue:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
            astore 12 /* fieldValue */
        start local 12 // java.lang.Object fieldValue
        13: .line 185
            aload 12 /* fieldValue */
            ifnull 15
        14: .line 186
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            aload 12 /* fieldValue */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            aload 2 /* group */
            iconst_1
            iload 4 /* recursionLevel */
            iconst_1
            iadd
            aload 5 /* objectFilter */
            aload 6 /* fieldFilter */
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;ZILcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
        end local 12 // java.lang.Object fieldValue
        end local 8 // com.oracle.svm.hosted.meta.HostedField field
        15: .line 181
      StackMap locals: com.oracle.svm.hosted.image.ObjectGroupHistogram com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo java.lang.String int int com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter jdk.vm.ci.meta.JavaConstant top int int com.oracle.svm.hosted.meta.HostedField[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        16: iload 9
            iload 10
            if_icmplt 9
        end local 7 // jdk.vm.ci.meta.JavaConstant con
        17: .line 191
            goto 26
      StackMap locals: com.oracle.svm.hosted.image.ObjectGroupHistogram com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo java.lang.String int int com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter
      StackMap stack:
        18: aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            instanceof java.lang.Object[]
            ifeq 26
        19: .line 192
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            checkcast java.lang.Object[]
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 25
      StackMap locals: com.oracle.svm.hosted.image.ObjectGroupHistogram com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo java.lang.String int int com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter top int int java.lang.Object[]
      StackMap stack:
        20: aload 10
            iload 8
            aaload
            astore 7 /* element */
        start local 7 // java.lang.Object element
        21: .line 193
            aload 7 /* element */
            ifnull 24
        22: .line 194
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.heap:Lcom/oracle/svm/hosted/image/NativeImageHeap;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getAnalysisUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            aload 7 /* element */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.replaceObject:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjectInfo:(Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            astore 11 /* elementInfo */
        start local 11 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo elementInfo
        23: .line 195
            aload 0 /* this */
            aload 11 /* elementInfo */
            aload 2 /* group */
            iconst_1
            iload 4 /* recursionLevel */
            iconst_1
            iadd
            aload 5 /* objectFilter */
            aload 6 /* fieldFilter */
            invokevirtual com.oracle.svm.hosted.image.ObjectGroupHistogram.processObject:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;ZILcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;)V
        end local 11 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo elementInfo
        end local 7 // java.lang.Object element
        24: .line 192
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        25: iload 8
            iload 9
            if_icmplt 20
        26: .line 199
      StackMap locals: com.oracle.svm.hosted.image.ObjectGroupHistogram com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo java.lang.String int int com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter
      StackMap stack:
            return
        end local 6 // com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter fieldFilter
        end local 5 // com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter objectFilter
        end local 4 // int recursionLevel
        end local 3 // boolean addObject
        end local 2 // java.lang.String group
        end local 1 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        end local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   27     0            this  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram;
            0   27     1            info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            0   27     2           group  Ljava/lang/String;
            0   27     3       addObject  Z
            0   27     4  recursionLevel  I
            0   27     5    objectFilter  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$ObjectFilter;
            0   27     6     fieldFilter  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram$FieldFilter;
            8   17     7             con  Ljdk/vm/ci/meta/JavaConstant;
           10   15     8           field  Lcom/oracle/svm/hosted/meta/HostedField;
           13   15    12      fieldValue  Ljava/lang/Object;
           21   24     7         element  Ljava/lang/Object;
           23   24    11     elementInfo  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    MethodParameters:
                Name  Flags
      info            
      group           
      addObject       
      recursionLevel  
      objectFilter    
      fieldFilter     

  private boolean addToGroup(com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo, java.lang.String);
    descriptor: (Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
        start local 1 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        start local 2 // java.lang.String group
         0: .line 202
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.groups:Ljava/util/Map;
            aload 1 /* info */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 8
         1: .line 203
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.groups:Ljava/util/Map;
            aload 1 /* info */
            aload 2 /* group */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 204
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.groupHistograms:Ljava/util/Map;
            aload 2 /* group */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.HeapHistogram
            astore 3 /* histogram */
        start local 3 // com.oracle.svm.hosted.image.HeapHistogram histogram
         3: .line 205
            aload 3 /* histogram */
            ifnonnull 6
         4: .line 206
            new com.oracle.svm.hosted.image.HeapHistogram
            dup
            invokespecial com.oracle.svm.hosted.image.HeapHistogram.<init>:()V
            astore 3 /* histogram */
         5: .line 207
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.ObjectGroupHistogram.groupHistograms:Ljava/util/Map;
            aload 2 /* group */
            aload 3 /* histogram */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 209
      StackMap locals: com.oracle.svm.hosted.image.HeapHistogram
      StackMap stack:
            aload 3 /* histogram */
            aload 1 /* info */
            aload 1 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getSize:()J
            invokevirtual com.oracle.svm.hosted.image.HeapHistogram.add:(Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;J)V
         7: .line 210
            iconst_1
            ireturn
        end local 3 // com.oracle.svm.hosted.image.HeapHistogram histogram
         8: .line 212
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.String group
        end local 1 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        end local 0 // com.oracle.svm.hosted.image.ObjectGroupHistogram this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/oracle/svm/hosted/image/ObjectGroupHistogram;
            0    9     1       info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            0    9     2      group  Ljava/lang/String;
            3    8     3  histogram  Lcom/oracle/svm/hosted/image/HeapHistogram;
    MethodParameters:
       Name  Flags
      info   
      group  
}
SourceFile: "ObjectGroupHistogram.java"
NestMembers:
  com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter  com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter
InnerClasses:
  public final ObjectInfo = com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo of com.oracle.svm.hosted.image.NativeImageHeap
  public abstract FieldFilter = com.oracle.svm.hosted.image.ObjectGroupHistogram$FieldFilter of com.oracle.svm.hosted.image.ObjectGroupHistogram
  public abstract ObjectFilter = com.oracle.svm.hosted.image.ObjectGroupHistogram$ObjectFilter of com.oracle.svm.hosted.image.ObjectGroupHistogram
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map