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

  private final com.oracle.graal.pointsto.meta.AnalysisUniverse aUniverse;
    descriptor: Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.hosted.meta.HostedMetaAccess metaAccess;
    descriptor: Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.config.ObjectLayout objectLayout;
    descriptor: Lcom/oracle/svm/core/config/ObjectLayout;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.core.image.ImageHeapLayouter heapLayouter;
    descriptor: Lcom/oracle/svm/core/image/ImageHeapLayouter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int minInstanceSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int minArraySize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final java.util.IdentityHashMap<java.lang.Object, com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo> objects;
    descriptor: Ljava/util/IdentityHashMap;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/IdentityHashMap<Ljava/lang/Object;Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;>;

  private final java.util.Set<java.lang.Object> blacklist;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Object;>;

  private final java.util.Map<com.oracle.svm.hosted.meta.HostedClass, com.oracle.svm.hosted.config.HybridLayout<?>> hybridLayouts;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/oracle/svm/hosted/meta/HostedClass;Lcom/oracle/svm/hosted/config/HybridLayout<*>;>;

  private final java.util.Map<java.lang.String, java.lang.String> internedStrings;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private final com.oracle.svm.hosted.image.NativeImageHeap$Phase addObjectsPhase;
    descriptor: Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.svm.hosted.image.NativeImageHeap$Phase internStringsPhase;
    descriptor: Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Deque<com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData> addObjectWorklist;
    descriptor: Ljava/util/Deque;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Deque<Lcom/oracle/svm/hosted/image/NativeImageHeap$AddObjectData;>;

  private final java.util.Set<java.lang.Object> knownImmutableObjects;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Object;>;

  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 89
            ldc Lcom/oracle/svm/hosted/image/NativeImageHeap;
            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.NativeImageHeap.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.oracle.graal.pointsto.meta.AnalysisUniverse, com.oracle.svm.hosted.meta.HostedUniverse, com.oracle.svm.hosted.meta.HostedMetaAccess, com.oracle.svm.core.image.ImageHeapLayouter);
    descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;Lcom/oracle/svm/hosted/meta/HostedUniverse;Lcom/oracle/svm/hosted/meta/HostedMetaAccess;Lcom/oracle/svm/core/image/ImageHeapLayouter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // com.oracle.graal.pointsto.meta.AnalysisUniverse aUniverse
        start local 2 // com.oracle.svm.hosted.meta.HostedUniverse universe
        start local 3 // com.oracle.svm.hosted.meta.HostedMetaAccess metaAccess
        start local 4 // com.oracle.svm.core.image.ImageHeapLayouter heapLayouter
         0: .line 124
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            putfield com.oracle.svm.hosted.image.NativeImageHeap.objects:Ljava/util/IdentityHashMap;
         2: .line 106
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield com.oracle.svm.hosted.image.NativeImageHeap.blacklist:Ljava/util/Set;
         3: .line 109
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.svm.hosted.image.NativeImageHeap.hybridLayouts:Ljava/util/Map;
         4: .line 112
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.oracle.svm.hosted.image.NativeImageHeap.internedStrings:Ljava/util/Map;
         5: .line 115
            aload 0 /* this */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap$Phase.factory:()Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            putfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
         6: .line 116
            aload 0 /* this */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap$Phase.factory:()Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            putfield com.oracle.svm.hosted.image.NativeImageHeap.internStringsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
         7: .line 119
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectWorklist:Ljava/util/Deque;
         8: .line 122
            aload 0 /* this */
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield com.oracle.svm.hosted.image.NativeImageHeap.knownImmutableObjects:Ljava/util/Set;
         9: .line 125
            aload 0 /* this */
            aload 1 /* aUniverse */
            putfield com.oracle.svm.hosted.image.NativeImageHeap.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
        10: .line 126
            aload 0 /* this */
            aload 2 /* universe */
            putfield com.oracle.svm.hosted.image.NativeImageHeap.universe:Lcom/oracle/svm/hosted/meta/HostedUniverse;
        11: .line 127
            aload 0 /* this */
            aload 3 /* metaAccess */
            putfield com.oracle.svm.hosted.image.NativeImageHeap.metaAccess:Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
        12: .line 129
            aload 0 /* this */
            invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
            putfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
        13: .line 130
            aload 0 /* this */
            aload 4 /* heapLayouter */
            putfield com.oracle.svm.hosted.image.NativeImageHeap.heapLayouter:Lcom/oracle/svm/core/image/ImageHeapLayouter;
        14: .line 132
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getMinimumInstanceObjectSize:()I
            putfield com.oracle.svm.hosted.image.NativeImageHeap.minInstanceSize:I
        15: .line 133
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getMinimumArraySize:()I
            putfield com.oracle.svm.hosted.image.NativeImageHeap.minArraySize:I
        16: .line 134
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 17
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.assertFillerObjectSizes:()Z
            ifne 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 135
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap com.oracle.graal.pointsto.meta.AnalysisUniverse com.oracle.svm.hosted.meta.HostedUniverse com.oracle.svm.hosted.meta.HostedMetaAccess com.oracle.svm.core.image.ImageHeapLayouter
      StackMap stack:
            return
        end local 4 // com.oracle.svm.core.image.ImageHeapLayouter heapLayouter
        end local 3 // com.oracle.svm.hosted.meta.HostedMetaAccess metaAccess
        end local 2 // com.oracle.svm.hosted.meta.HostedUniverse universe
        end local 1 // com.oracle.graal.pointsto.meta.AnalysisUniverse aUniverse
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0   18     1     aUniverse  Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            0   18     2      universe  Lcom/oracle/svm/hosted/meta/HostedUniverse;
            0   18     3    metaAccess  Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            0   18     4  heapLayouter  Lcom/oracle/svm/core/image/ImageHeapLayouter;
    MethodParameters:
              Name  Flags
      aUniverse     
      universe      
      metaAccess    
      heapLayouter  

  public java.util.Collection<com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo> getObjects();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 139
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objects:Ljava/util/IdentityHashMap;
            invokevirtual java.util.IdentityHashMap.values:()Ljava/util/Collection;
            areturn
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
    Signature: ()Ljava/util/Collection<Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;>;

  public int getObjectCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 143
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objects:Ljava/util/IdentityHashMap;
            invokevirtual java.util.IdentityHashMap.size:()I
            ireturn
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;

  public com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo getObjectInfo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object obj
         0: .line 147
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objects:Ljava/util/IdentityHashMap;
            aload 1 /* obj */
            invokevirtual java.util.IdentityHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  protected com.oracle.svm.hosted.meta.HostedUniverse getUniverse();
    descriptor: ()Lcom/oracle/svm/hosted/meta/HostedUniverse;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 151
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.universe:Lcom/oracle/svm/hosted/meta/HostedUniverse;
            areturn
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;

  protected com.oracle.svm.hosted.meta.HostedMetaAccess getMetaAccess();
    descriptor: ()Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 155
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.metaAccess:Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            areturn
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;

  protected com.oracle.graal.pointsto.meta.AnalysisUniverse getAnalysisUniverse();
    descriptor: ()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 159
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            areturn
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;

  protected com.oracle.svm.hosted.config.HybridLayout<?> getHybridLayout(com.oracle.svm.hosted.meta.HostedClass);
    descriptor: (Lcom/oracle/svm/hosted/meta/HostedClass;)Lcom/oracle/svm/hosted/config/HybridLayout;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // com.oracle.svm.hosted.meta.HostedClass clazz
         0: .line 163
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.hybridLayouts:Ljava/util/Map;
            aload 1 /* clazz */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.config.HybridLayout
            areturn
        end local 1 // com.oracle.svm.hosted.meta.HostedClass clazz
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    1     1  clazz  Lcom/oracle/svm/hosted/meta/HostedClass;
    Signature: (Lcom/oracle/svm/hosted/meta/HostedClass;)Lcom/oracle/svm/hosted/config/HybridLayout<*>;
    MethodParameters:
       Name  Flags
      clazz  

  protected boolean isBlacklisted(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object obj
         0: .line 167
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.blacklist:Ljava/util/Set;
            aload 1 /* obj */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    1     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  protected com.oracle.svm.core.config.ObjectLayout getObjectLayout();
    descriptor: ()Lcom/oracle/svm/core/config/ObjectLayout;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 171
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            areturn
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;

  public com.oracle.svm.core.image.ImageHeapLayouter getLayouter();
    descriptor: ()Lcom/oracle/svm/core/image/ImageHeapLayouter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 175
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.heapLayouter:Lcom/oracle/svm/core/image/ImageHeapLayouter;
            areturn
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;

  static boolean useHeapBase();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 180
            getstatic com.oracle.svm.core.SubstrateOptions.SpawnIsolates:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 1
            ldc Lorg/graalvm/compiler/core/common/CompressEncoding;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.core.common.CompressEncoding
            invokevirtual org.graalvm.compiler.core.common.CompressEncoding.hasBase:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  static boolean spawnIsolates();
    descriptor: ()Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 185
            getstatic com.oracle.svm.core.SubstrateOptions.SpawnIsolates:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 1
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.useHeapBase:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  public void addInitialObjects();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 190
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.allow:()V
         1: .line 191
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.internStringsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.allow:()V
         2: .line 193
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addStaticFields:()V
         3: .line 194
            return
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;

  public void addTrailingObjects();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 198
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.processAddObjectWorklist:()V
         1: .line 200
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.metaAccess:Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            invokestatic com.oracle.svm.hosted.image.StringInternFeature.getInternedStringsField:(Ljdk/vm/ci/meta/MetaAccessProvider;)Ljdk/vm/ci/meta/ResolvedJavaField;
            checkcast com.oracle.svm.hosted.meta.HostedField
            astore 1 /* internedStringsField */
        start local 1 // com.oracle.svm.hosted.meta.HostedField internedStringsField
         2: .line 201
            aload 1 /* internedStringsField */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.isAccessed:()Z
            istore 2 /* usesInternedStrings */
        start local 2 // boolean usesInternedStrings
         3: .line 203
            iload 2 /* usesInternedStrings */
            ifeq 12
         4: .line 207
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getMetaAccess:()Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            ldc [Ljava/lang/String;
            invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/meta/HostedType;
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getHub:()Lcom/oracle/svm/core/hub/DynamicHub;
            iconst_0
            ldc "internedStrings table"
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
         5: .line 212
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.internStringsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.disallow:()V
         6: .line 217
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.internedStrings:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            iconst_0
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 3 /* imageInternedStrings */
        start local 3 // java.lang.String[] imageInternedStrings
         7: .line 218
            aload 3 /* imageInternedStrings */
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
         8: .line 219
            ldc Lcom/oracle/svm/core/jdk/StringInternSupport;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.jdk.StringInternSupport
            aload 3 /* imageInternedStrings */
            invokevirtual com.oracle.svm.core.jdk.StringInternSupport.setImageInternedStrings:([Ljava/lang/String;)V
         9: .line 221
            aload 0 /* this */
            aload 3 /* imageInternedStrings */
            iconst_1
            ldc "internedStrings table"
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
        10: .line 224
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.processAddObjectWorklist:()V
        end local 3 // java.lang.String[] imageInternedStrings
        11: .line 225
            goto 13
        12: .line 226
      StackMap locals: com.oracle.svm.hosted.meta.HostedField int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.internStringsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.disallow:()V
        13: .line 229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.disallow:()V
        14: .line 230
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 15
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectWorklist:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 231
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean usesInternedStrings
        end local 1 // com.oracle.svm.hosted.meta.HostedField internedStringsField
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   16     0                  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            2   16     1  internedStringsField  Lcom/oracle/svm/hosted/meta/HostedField;
            3   16     2   usesInternedStrings  Z
            7   11     3  imageInternedStrings  [Ljava/lang/String;

  private static java.lang.Object readObjectField(com.oracle.svm.hosted.meta.HostedField, jdk.vm.ci.meta.JavaConstant);
    descriptor: (Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.meta.HostedField field
        start local 1 // jdk.vm.ci.meta.JavaConstant receiver
         0: .line 234
            aload 0 /* field */
            aload 1 /* receiver */
            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;
            areturn
        end local 1 // jdk.vm.ci.meta.JavaConstant receiver
        end local 0 // com.oracle.svm.hosted.meta.HostedField field
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0     field  Lcom/oracle/svm/hosted/meta/HostedField;
            0    1     1  receiver  Ljdk/vm/ci/meta/JavaConstant;
    MethodParameters:
          Name  Flags
      field     
      receiver  

  private void addStaticFields();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 238
            aload 0 /* this */
            invokestatic com.oracle.svm.core.StaticFieldsSupport.getStaticObjectFields:()[Ljava/lang/Object;
            iconst_0
            ldc "staticObjectFields"
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
         1: .line 239
            aload 0 /* this */
            invokestatic com.oracle.svm.core.StaticFieldsSupport.getStaticPrimitiveFields:()[B
            iconst_0
            ldc "staticPrimitiveFields"
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
         2: .line 245
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getUniverse:()Lcom/oracle/svm/hosted/meta/HostedUniverse;
            invokevirtual com.oracle.svm.hosted.meta.HostedUniverse.getFields:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.meta.HostedField
            astore 1 /* field */
        start local 1 // com.oracle.svm.hosted.meta.HostedField field
         4: .line 246
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifeq 7
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.hasLocation:()Z
            ifeq 7
            aload 1 /* 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 7
         5: .line 247
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 6
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.isWritten:()Z
            ifne 6
            invokestatic com.oracle.svm.hosted.meta.MaterializedConstantFields.singleton:()Lcom/oracle/svm/hosted/meta/MaterializedConstantFields;
            aload 1 /* field */
            getfield com.oracle.svm.hosted.meta.HostedField.wrapped:Lcom/oracle/graal/pointsto/meta/AnalysisField;
            invokevirtual com.oracle.svm.hosted.meta.MaterializedConstantFields.contains:(Lcom/oracle/graal/pointsto/meta/AnalysisField;)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 248
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap com.oracle.svm.hosted.meta.HostedField java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 1 /* field */
            aconst_null
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.readObjectField:(Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            iconst_0
            aload 1 /* field */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
        end local 1 // com.oracle.svm.hosted.meta.HostedField field
         7: .line 245
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 251
            return
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            4    7     1  field  Lcom/oracle/svm/hosted/meta/HostedField;

  public void registerAsImmutable(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object object
         0: .line 254
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.isBefore:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Registering immutable object too late: phase: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 255
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.knownImmutableObjects:Ljava/util/Set;
            aload 1 /* object */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 256
            return
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    3     1  object  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      object  

  public void addObject(java.lang.Object, boolean, java.lang.Object);
    descriptor: (Ljava/lang/Object;ZLjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object original
        start local 2 // boolean immutableFromParent
        start local 3 // java.lang.Object reason
         0: .line 265
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.isAllowed:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Objects cannot be added at phase: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " with reason: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* reason */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 267
      StackMap locals:
      StackMap stack:
            aload 1 /* original */
            ifnull 2
            aload 1 /* original */
            instanceof org.graalvm.word.WordBase
            ifeq 3
         2: .line 268
      StackMap locals:
      StackMap stack:
            return
         3: .line 270
      StackMap locals:
      StackMap stack:
            aload 1 /* original */
            instanceof java.lang.Class
            ifeq 5
         4: .line 271
            new java.lang.StringBuilder
            dup
            ldc "Must not have Class in native image heap: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* original */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         5: .line 273
      StackMap locals:
      StackMap stack:
            aload 1 /* original */
            instanceof com.oracle.svm.core.hub.DynamicHub
            ifeq 7
            aload 1 /* original */
            checkcast com.oracle.svm.core.hub.DynamicHub
            invokevirtual com.oracle.svm.core.hub.DynamicHub.getClassInitializationInfo:()Lcom/oracle/svm/core/classinitialization/ClassInitializationInfo;
            ifnonnull 7
         6: .line 283
            aload 1 /* original */
            aload 3 /* reason */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         7: .line 286
      StackMap locals:
      StackMap stack:
            aload 1 /* original */
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.computeIdentityHashCode:(Ljava/lang/Object;)I
            istore 4 /* identityHashCode */
        start local 4 // int identityHashCode
         8: .line 287
            iload 4 /* identityHashCode */
            ifeq 9
            iconst_1
            goto 10
      StackMap locals: int
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: ldc "0 is used as a marker value for 'hash code not yet computed'"
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
        11: .line 289
            aload 1 /* original */
            instanceof java.lang.String
            ifeq 13
        12: .line 290
            aload 0 /* this */
            aload 1 /* original */
            checkcast java.lang.String
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.handleImageString:(Ljava/lang/String;)V
        13: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objects:Ljava/util/IdentityHashMap;
            aload 1 /* original */
            invokevirtual java.util.IdentityHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
            astore 5 /* existing */
        start local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo existing
        14: .line 294
            aload 5 /* existing */
            ifnonnull 16
        15: .line 295
            aload 0 /* this */
            aload 1 /* original */
            iload 2 /* immutableFromParent */
            iload 4 /* identityHashCode */
            aload 3 /* reason */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addObjectToBootImageHeap:(Ljava/lang/Object;ZILjava/lang/Object;)V
        16: .line 297
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
      StackMap stack:
            return
        end local 5 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo existing
        end local 4 // int identityHashCode
        end local 3 // java.lang.Object reason
        end local 2 // boolean immutableFromParent
        end local 1 // java.lang.Object original
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   17     0                 this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0   17     1             original  Ljava/lang/Object;
            0   17     2  immutableFromParent  Z
            0   17     3               reason  Ljava/lang/Object;
            8   17     4     identityHashCode  I
           14   17     5             existing  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    MethodParameters:
                     Name  Flags
      original             final
      immutableFromParent  
      reason               final

  public int countDynamicHubs();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 301
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 302
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjects:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
            astore 2 /* o */
        start local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo o
         3: .line 303
            aload 2 /* o */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            instanceof com.oracle.svm.core.hub.DynamicHub
            ifeq 5
         4: .line 304
            iinc 1 /* count */ 1
        end local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo o
         5: .line 302
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 307
            iload 1 /* count */
            ireturn
        end local 1 // int count
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            1    7     1  count  I
            3    5     2      o  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;

  public com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo addFillerObject(int);
    descriptor: (I)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // int size
         0: .line 319
            iload 1 /* size */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.minArraySize:I
            if_icmplt 5
         1: .line 320
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
            istore 2 /* elementSize */
        start local 2 // int elementSize
         2: .line 321
            iload 1 /* size */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.minArraySize:I
            isub
            iload 2 /* elementSize */
            idiv
            istore 3 /* arrayLength */
        start local 3 // int arrayLength
         3: .line 322
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 4
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            iload 3 /* arrayLength */
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getArraySize:(Ljdk/vm/ci/meta/JavaKind;I)J
            iload 1 /* size */
            i2l
            lcmp
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 323
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* arrayLength */
            newarray 10
            ldc "Filler object"
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addLateToImageHeap:(Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            areturn
        end local 3 // int arrayLength
        end local 2 // int elementSize
         5: .line 324
      StackMap locals:
      StackMap stack:
            iload 1 /* size */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.minInstanceSize:I
            if_icmplt 7
         6: .line 325
            aload 0 /* this */
            new com.oracle.svm.core.heap.FillerObject
            dup
            invokespecial com.oracle.svm.core.heap.FillerObject.<init>:()V
            ldc "Filler object"
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addLateToImageHeap:(Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            areturn
         7: .line 327
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // int size
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    8     1         size  I
            2    5     2  elementSize  I
            3    5     3  arrayLength  I
    MethodParameters:
      Name  Flags
      size  

  private boolean assertFillerObjectSizes();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 332
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.minArraySize:I
            i2l
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            getstatic jdk.vm.ci.meta.JavaKind.Int:Ljdk/vm/ci/meta/JavaKind;
            iconst_0
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getArraySize:(Ljdk/vm/ci/meta/JavaKind;I)J
            lcmp
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 334
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.metaAccess:Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            ldc Lcom/oracle/svm/core/heap/FillerObject;
            invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/svm/hosted/meta/HostedType;
            astore 1 /* filler */
        start local 1 // com.oracle.svm.hosted.meta.HostedType filler
         2: .line 335
            aload 1 /* filler */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getHub:()Lcom/oracle/svm/core/hub/DynamicHub;
            invokevirtual com.oracle.svm.core.hub.DynamicHub.getLayoutEncoding:()I
            invokestatic com.oracle.svm.core.hub.LayoutEncoding.getInstanceSize:(I)Lorg/graalvm/word/UnsignedWord;
            astore 2 /* fillerSize */
        start local 2 // org.graalvm.word.UnsignedWord fillerSize
         3: .line 336
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 4
            aload 2 /* fillerSize */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.minInstanceSize:I
            invokeinterface org.graalvm.word.UnsignedWord.equal:(I)Z
            ifne 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 338
      StackMap locals: com.oracle.svm.hosted.meta.HostedType org.graalvm.word.UnsignedWord
      StackMap stack:
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.minInstanceSize:I
            iconst_2
            imul
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.minArraySize:I
            if_icmpge 5
            new java.lang.AssertionError
            dup
            ldc "otherwise, we might need more than one non-array object"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         5: .line 340
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.graalvm.word.UnsignedWord fillerSize
        end local 1 // com.oracle.svm.hosted.meta.HostedType filler
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            2    6     1      filler  Lcom/oracle/svm/hosted/meta/HostedType;
            3    6     2  fillerSize  Lorg/graalvm/word/UnsignedWord;

  private void handleImageString(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.String str
         0: .line 344
            aload 1 /* str */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.forceHashCodeComputation:(Ljava/lang/String;)V
         1: .line 345
            aload 1 /* str */
            invokestatic com.oracle.svm.core.util.HostedStringDeduplication.isInternedString:(Ljava/lang/String;)Z
            ifeq 4
         2: .line 347
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.internedStrings:Ljava/util/Map;
            aload 1 /* str */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 3
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.internStringsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.isAllowed:()Z
            ifne 3
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Should not intern string during phase "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.internStringsPhase:Lcom/oracle/svm/hosted/image/NativeImageHeap$Phase;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$Phase.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.internedStrings:Ljava/util/Map;
            aload 1 /* str */
            aload 1 /* str */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 350
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String str
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    5     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   final

  private static void forceHashCodeComputation(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String str
         0: .line 357
            aload 0 /* str */
            invokevirtual java.lang.String.hashCode:()I
            pop
         1: .line 358
            return
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   str  Ljava/lang/String;
    RuntimeInvisibleAnnotations: 
      org.graalvm.compiler.core.common.SuppressFBWarnings(value = {"RV_RETURN_VALUE_IGNORED"}, justification = "eager hash field computation")
    MethodParameters:
      Name  Flags
      str   final

  private void addObjectToBootImageHeap(java.lang.Object, boolean, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;ZILjava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=28, args_size=5
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object object
        start local 2 // boolean immutableFromParent
        start local 3 // int identityHashCode
        start local 4 // java.lang.Object reason
         0: .line 367
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getMetaAccess:()Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            aload 1 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.optionalLookupJavaType:(Ljava/lang/Class;)Ljava/util/Optional;
            astore 5 /* optionalType */
        start local 5 // java.util.Optional optionalType
         1: .line 368
            aload 5 /* optionalType */
            aload 1 /* object */
            aload 4 /* reason */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.requireType:(Ljava/util/Optional;Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/svm/hosted/meta/HostedType;
            astore 6 /* type */
        start local 6 // com.oracle.svm.hosted.meta.HostedType type
         2: .line 369
            aload 6 /* type */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getHub:()Lcom/oracle/svm/core/hub/DynamicHub;
            astore 7 /* hub */
        start local 7 // com.oracle.svm.core.hub.DynamicHub hub
         3: .line 372
            iload 2 /* immutableFromParent */
            ifne 4
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.isKnownImmutable:(Ljava/lang/Object;)Z
            ifne 4
            iconst_0
            goto 5
      StackMap locals: java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 9 /* immutable */
        start local 9 // boolean immutable
         6: .line 373
            iconst_0
            istore 10 /* written */
        start local 10 // boolean written
         7: .line 374
            iconst_0
            istore 11 /* references */
        start local 11 // boolean references
         8: .line 375
            iconst_0
            istore 12 /* relocatable */
        start local 12 // boolean relocatable
         9: .line 377
            aload 6 /* type */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.isInstanceClass:()Z
            ifeq 69
        10: .line 378
            aload 6 /* type */
            checkcast com.oracle.svm.hosted.meta.HostedInstanceClass
            astore 13 /* clazz */
        start local 13 // com.oracle.svm.hosted.meta.HostedInstanceClass clazz
        11: .line 380
            aload 13 /* clazz */
            invokevirtual com.oracle.svm.hosted.meta.HostedInstanceClass.getMonitorFieldOffset:()I
            ifeq 14
        12: .line 381
            iconst_1
            istore 10 /* written */
        13: .line 382
            iconst_1
            istore 11 /* references */
        14: .line 386
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub top int int int int com.oracle.svm.hosted.meta.HostedInstanceClass
      StackMap stack:
            aload 1 /* object */
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            astore 14 /* con */
        start local 14 // jdk.vm.ci.meta.JavaConstant con
        15: .line 387
            aconst_null
            astore 15 /* hybridTypeIDSlotsField */
        start local 15 // com.oracle.svm.hosted.meta.HostedField hybridTypeIDSlotsField
        16: .line 388
            aconst_null
            astore 16 /* hybridArrayField */
        start local 16 // com.oracle.svm.hosted.meta.HostedField hybridArrayField
        17: .line 389
            aconst_null
            astore 17 /* hybridArray */
        start local 17 // java.lang.Object hybridArray
        18: .line 392
            aload 13 /* clazz */
            invokestatic com.oracle.svm.hosted.config.HybridLayout.isHybrid:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 35
        19: .line 393
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.hybridLayouts:Ljava/util/Map;
            aload 13 /* clazz */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.config.HybridLayout
            astore 20 /* hybridLayout */
        start local 20 // com.oracle.svm.hosted.config.HybridLayout hybridLayout
        20: .line 394
            aload 20 /* hybridLayout */
            ifnonnull 23
        21: .line 395
            new com.oracle.svm.hosted.config.HybridLayout
            dup
            aload 13 /* clazz */
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            invokespecial com.oracle.svm.hosted.config.HybridLayout.<init>:(Lcom/oracle/svm/hosted/meta/HostedInstanceClass;Lcom/oracle/svm/core/config/ObjectLayout;)V
            astore 20 /* hybridLayout */
        22: .line 396
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.hybridLayouts:Ljava/util/Map;
            aload 13 /* clazz */
            aload 20 /* hybridLayout */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        23: .line 404
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub top int int int int com.oracle.svm.hosted.meta.HostedInstanceClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField java.lang.Object top top com.oracle.svm.hosted.config.HybridLayout
      StackMap stack:
            aload 20 /* hybridLayout */
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getTypeIDSlotsField:()Lcom/oracle/svm/hosted/meta/HostedField;
            astore 15 /* hybridTypeIDSlotsField */
        24: .line 405
            aload 15 /* hybridTypeIDSlotsField */
            ifnull 28
        25: .line 406
            aload 15 /* hybridTypeIDSlotsField */
            aload 14 /* con */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.readObjectField:(Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            astore 21 /* typeIDSlots */
        start local 21 // java.lang.Object typeIDSlots
        26: .line 407
            aload 21 /* typeIDSlots */
            ifnull 28
        27: .line 408
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.blacklist:Ljava/util/Set;
            aload 21 /* typeIDSlots */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 21 // java.lang.Object typeIDSlots
        28: .line 412
      StackMap locals:
      StackMap stack:
            aload 20 /* hybridLayout */
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getArrayField:()Lcom/oracle/svm/hosted/meta/HostedField;
            astore 16 /* hybridArrayField */
        29: .line 413
            aload 16 /* hybridArrayField */
            aload 14 /* con */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.readObjectField:(Lcom/oracle/svm/hosted/meta/HostedField;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            astore 17 /* hybridArray */
        30: .line 414
            aload 17 /* hybridArray */
            ifnull 33
        31: .line 415
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.blacklist:Ljava/util/Set;
            aload 17 /* hybridArray */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        32: .line 416
            iconst_1
            istore 10 /* written */
        33: .line 419
      StackMap locals:
      StackMap stack:
            aload 20 /* hybridLayout */
            aload 17 /* hybridArray */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            invokevirtual com.oracle.svm.hosted.config.HybridLayout.getTotalSize:(I)J
            lstore 18 /* size */
        end local 20 // com.oracle.svm.hosted.config.HybridLayout hybridLayout
        start local 18 // long size
        34: .line 420
            goto 36
        end local 18 // long size
        35: .line 421
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub top int int int int com.oracle.svm.hosted.meta.HostedInstanceClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField java.lang.Object
      StackMap stack:
            aload 7 /* hub */
            invokevirtual com.oracle.svm.core.hub.DynamicHub.getLayoutEncoding:()I
            invokestatic com.oracle.svm.core.hub.LayoutEncoding.getInstanceSize:(I)Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            lstore 18 /* size */
        start local 18 // long size
        36: .line 424
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            aload 1 /* object */
            aload 13 /* clazz */
            lload 18 /* size */
            iload 3 /* identityHashCode */
            aload 4 /* reason */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addToImageHeap:(Ljava/lang/Object;Lcom/oracle/svm/hosted/meta/HostedClass;JILjava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            astore 8 /* info */
        start local 8 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        37: .line 426
            aload 0 /* this */
            aload 7 /* hub */
            iconst_0
            aload 8 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.recursiveAddObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
        38: .line 428
            aload 1 /* object */
            instanceof java.lang.String
            istore 20 /* fieldsAreImmutable */
        start local 20 // boolean fieldsAreImmutable
        39: .line 429
            aload 13 /* clazz */
            iconst_1
            invokevirtual com.oracle.svm.hosted.meta.HostedInstanceClass.getInstanceFields:(Z)[Lcom/oracle/svm/hosted/meta/HostedField;
            dup
            astore 24
            arraylength
            istore 23
            iconst_0
            istore 22
            goto 62
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int int int int com.oracle.svm.hosted.meta.HostedInstanceClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField java.lang.Object long int top int int com.oracle.svm.hosted.meta.HostedField[]
      StackMap stack:
        40: aload 24
            iload 22
            aaload
            astore 21 /* field */
        start local 21 // com.oracle.svm.hosted.meta.HostedField field
        41: .line 430
            aload 21 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.isInImageHeap:()Z
            ifeq 61
        42: .line 431
            aload 21 /* field */
            aload 16 /* hybridArrayField */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 61
        43: .line 432
            aload 21 /* field */
            aload 15 /* hybridTypeIDSlotsField */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 61
        44: .line 433
            iconst_0
            istore 25 /* fieldRelocatable */
        start local 25 // boolean fieldRelocatable
        45: .line 434
            aload 21 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 54
        46: .line 435
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 47
            aload 21 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.hasLocation:()Z
            ifne 47
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        47: .line 436
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int int int int com.oracle.svm.hosted.meta.HostedInstanceClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField java.lang.Object long int com.oracle.svm.hosted.meta.HostedField int int com.oracle.svm.hosted.meta.HostedField[] int
      StackMap stack:
            aload 21 /* field */
            aload 14 /* con */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.readValue:(Ljdk/vm/ci/meta/JavaConstant;)Ljdk/vm/ci/meta/JavaConstant;
            astore 26 /* fieldValueConstant */
        start local 26 // jdk.vm.ci.meta.JavaConstant fieldValueConstant
        48: .line 437
            aload 26 /* fieldValueConstant */
            invokeinterface jdk.vm.ci.meta.JavaConstant.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            if_acmpne 54
        49: .line 438
            aload 26 /* fieldValueConstant */
            invokestatic com.oracle.svm.core.meta.SubstrateObjectConstant.asObject:(Ljdk/vm/ci/meta/Constant;)Ljava/lang/Object;
            astore 27 /* fieldValue */
        start local 27 // java.lang.Object fieldValue
        50: .line 439
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.spawnIsolates:()Z
            ifeq 52
        51: .line 440
            aload 27 /* fieldValue */
            instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
            istore 25 /* fieldRelocatable */
        52: .line 442
      StackMap locals: jdk.vm.ci.meta.JavaConstant java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 27 /* fieldValue */
            iload 20 /* fieldsAreImmutable */
            aload 8 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.recursiveAddObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
        53: .line 443
            iconst_1
            istore 11 /* references */
        end local 27 // java.lang.Object fieldValue
        end local 26 // jdk.vm.ci.meta.JavaConstant fieldValueConstant
        54: .line 451
      StackMap locals:
      StackMap stack:
            iload 12 /* relocatable */
            ifne 55
            iload 25 /* fieldRelocatable */
            ifne 55
            iconst_0
            goto 56
      StackMap locals:
      StackMap stack:
        55: iconst_1
      StackMap locals:
      StackMap stack: int
        56: istore 12 /* relocatable */
        57: .line 452
            iload 10 /* written */
            ifne 59
            aload 21 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.isWritten:()Z
            ifeq 58
            aload 21 /* field */
            invokevirtual com.oracle.svm.hosted.meta.HostedField.isFinal:()Z
            ifne 58
            iload 25 /* fieldRelocatable */
            ifeq 59
      StackMap locals:
      StackMap stack:
        58: iconst_0
            goto 60
      StackMap locals:
      StackMap stack:
        59: iconst_1
      StackMap locals:
      StackMap stack: int
        60: istore 10 /* written */
        end local 25 // boolean fieldRelocatable
        end local 21 // com.oracle.svm.hosted.meta.HostedField field
        61: .line 429
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int int int int com.oracle.svm.hosted.meta.HostedInstanceClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField java.lang.Object long int top int int com.oracle.svm.hosted.meta.HostedField[]
      StackMap stack:
            iinc 22 1
      StackMap locals:
      StackMap stack:
        62: iload 22
            iload 23
            if_icmplt 40
        63: .line 456
            aload 17 /* hybridArray */
            instanceof java.lang.Object[]
            ifeq 82
        64: .line 457
            aload 0 /* this */
            aload 17 /* hybridArray */
            checkcast java.lang.Object[]
            iload 12 /* relocatable */
            aload 8 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addArrayElements:([Ljava/lang/Object;ZLjava/lang/Object;)Z
            istore 12 /* relocatable */
        65: .line 458
            iconst_1
            istore 11 /* references */
        end local 20 // boolean fieldsAreImmutable
        66: .line 460
            goto 82
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int int int int com.oracle.svm.hosted.meta.HostedInstanceClass jdk.vm.ci.meta.JavaConstant com.oracle.svm.hosted.meta.HostedField com.oracle.svm.hosted.meta.HostedField java.lang.Object long
      StackMap stack: com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError
        67: astore 20 /* ex */
        start local 20 // com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError ex
        68: .line 461
            aload 20 /* ex */
            invokevirtual com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 8 /* info */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 20 // com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError ex
        end local 18 // long size
        end local 17 // java.lang.Object hybridArray
        end local 16 // com.oracle.svm.hosted.meta.HostedField hybridArrayField
        end local 15 // com.oracle.svm.hosted.meta.HostedField hybridTypeIDSlotsField
        end local 14 // jdk.vm.ci.meta.JavaConstant con
        end local 13 // com.oracle.svm.hosted.meta.HostedInstanceClass clazz
        end local 8 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        69: .line 464
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub top int int int int
      StackMap stack:
            aload 6 /* type */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.isArray:()Z
            ifeq 81
        70: .line 465
            aload 6 /* type */
            checkcast com.oracle.svm.hosted.meta.HostedArrayClass
            astore 13 /* clazz */
        start local 13 // com.oracle.svm.hosted.meta.HostedArrayClass clazz
        71: .line 466
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            aload 6 /* type */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getComponentType:()Lcom/oracle/svm/hosted/meta/HostedType;
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getStorageKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 1 /* object */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getArraySize:(Ljdk/vm/ci/meta/JavaKind;I)J
            lstore 14 /* size */
        start local 14 // long size
        72: .line 467
            aload 0 /* this */
            aload 1 /* object */
            aload 13 /* clazz */
            lload 14 /* size */
            iload 3 /* identityHashCode */
            aload 4 /* reason */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addToImageHeap:(Ljava/lang/Object;Lcom/oracle/svm/hosted/meta/HostedClass;JILjava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            astore 8 /* info */
        start local 8 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        73: .line 469
            aload 0 /* this */
            aload 7 /* hub */
            iconst_0
            aload 8 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.recursiveAddObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
        74: .line 470
            aload 1 /* object */
            instanceof java.lang.Object[]
            ifeq 77
        75: .line 471
            aload 0 /* this */
            aload 1 /* object */
            checkcast java.lang.Object[]
            iconst_0
            aload 8 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addArrayElements:([Ljava/lang/Object;ZLjava/lang/Object;)Z
            istore 12 /* relocatable */
        76: .line 472
            iconst_1
            istore 11 /* references */
        77: .line 474
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int int int int com.oracle.svm.hosted.meta.HostedArrayClass long
      StackMap stack:
            iconst_1
            istore 10 /* written */
        78: .line 475
            goto 82
      StackMap locals:
      StackMap stack: com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError
        79: astore 16 /* ex */
        start local 16 // com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError ex
        80: .line 476
            aload 16 /* ex */
            invokevirtual com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 8 /* info */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
        end local 16 // com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError ex
        end local 14 // long size
        end local 13 // com.oracle.svm.hosted.meta.HostedArrayClass clazz
        end local 8 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        81: .line 480
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub top int int int int
      StackMap stack:
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        start local 8 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        82: .line 483
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int int int int
      StackMap stack:
            iload 12 /* relocatable */
            ifeq 84
            aload 0 /* this */
            aload 1 /* object */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.isKnownImmutable:(Ljava/lang/Object;)Z
            ifne 84
        83: .line 484
            new java.lang.StringBuilder
            dup
            ldc "Object with relocatable pointers must be explicitly immutable: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* object */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            pop
        84: .line 486
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.heapLayouter:Lcom/oracle/svm/core/image/ImageHeapLayouter;
            aload 8 /* info */
            iload 10 /* written */
            ifeq 85
            iload 9 /* immutable */
            ifne 85
            iconst_0
            goto 86
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int int int int
      StackMap stack: com.oracle.svm.core.image.ImageHeapLayouter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
        85: iconst_1
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object int int java.lang.Object java.util.Optional com.oracle.svm.hosted.meta.HostedType com.oracle.svm.core.hub.DynamicHub com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int int int int
      StackMap stack: com.oracle.svm.core.image.ImageHeapLayouter com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo int
        86: iload 11 /* references */
            iload 12 /* relocatable */
            invokeinterface com.oracle.svm.core.image.ImageHeapLayouter.assignObjectToPartition:(Lcom/oracle/svm/core/image/ImageHeapObject;ZZZ)V
        87: .line 487
            return
        end local 12 // boolean relocatable
        end local 11 // boolean references
        end local 10 // boolean written
        end local 9 // boolean immutable
        end local 8 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        end local 7 // com.oracle.svm.core.hub.DynamicHub hub
        end local 6 // com.oracle.svm.hosted.meta.HostedType type
        end local 5 // java.util.Optional optionalType
        end local 4 // java.lang.Object reason
        end local 3 // int identityHashCode
        end local 2 // boolean immutableFromParent
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   88     0                    this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0   88     1                  object  Ljava/lang/Object;
            0   88     2     immutableFromParent  Z
            0   88     3        identityHashCode  I
            0   88     4                  reason  Ljava/lang/Object;
            1   88     5            optionalType  Ljava/util/Optional<Lcom/oracle/svm/hosted/meta/HostedType;>;
            2   88     6                    type  Lcom/oracle/svm/hosted/meta/HostedType;
            3   88     7                     hub  Lcom/oracle/svm/core/hub/DynamicHub;
           37   69     8                    info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
           73   81     8                    info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
           82   88     8                    info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            6   88     9               immutable  Z
            7   88    10                 written  Z
            8   88    11              references  Z
            9   88    12             relocatable  Z
           11   69    13                   clazz  Lcom/oracle/svm/hosted/meta/HostedInstanceClass;
           15   69    14                     con  Ljdk/vm/ci/meta/JavaConstant;
           16   69    15  hybridTypeIDSlotsField  Lcom/oracle/svm/hosted/meta/HostedField;
           17   69    16        hybridArrayField  Lcom/oracle/svm/hosted/meta/HostedField;
           18   69    17             hybridArray  Ljava/lang/Object;
           34   35    18                    size  J
           36   69    18                    size  J
           20   34    20            hybridLayout  Lcom/oracle/svm/hosted/config/HybridLayout<*>;
           26   28    21             typeIDSlots  Ljava/lang/Object;
           39   66    20      fieldsAreImmutable  Z
           41   61    21                   field  Lcom/oracle/svm/hosted/meta/HostedField;
           45   61    25        fieldRelocatable  Z
           48   54    26      fieldValueConstant  Ljdk/vm/ci/meta/JavaConstant;
           50   54    27              fieldValue  Ljava/lang/Object;
           68   69    20                      ex  Lcom/oracle/graal/pointsto/util/AnalysisError$TypeNotFoundError;
           71   81    13                   clazz  Lcom/oracle/svm/hosted/meta/HostedArrayClass;
           72   81    14                    size  J
           80   81    16                      ex  Lcom/oracle/graal/pointsto/util/AnalysisError$TypeNotFoundError;
      Exception table:
        from    to  target  type
          37    66      67  Class com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError
          73    78      79  Class com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError
    MethodParameters:
                     Name  Flags
      object               final
      immutableFromParent  
      identityHashCode     final
      reason               final

  private static com.oracle.svm.hosted.meta.HostedType requireType(java.util.Optional<com.oracle.svm.hosted.meta.HostedType>, , );
    descriptor: (Ljava/util/Optional;Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/svm/hosted/meta/HostedType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.util.Optional optionalType
        start local 1 // java.lang.Object object
        start local 2 // java.lang.Object reason
         0: .line 490
            aload 0 /* optionalType */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 1
            aload 0 /* optionalType */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.meta.HostedType
            invokevirtual com.oracle.svm.hosted.meta.HostedType.isInstantiated:()Z
            ifne 2
         1: .line 491
      StackMap locals:
      StackMap stack:
            aload 1 /* object */
            aload 2 /* reason */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.reportIllegalType:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
            athrow
         2: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* optionalType */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.meta.HostedType
            areturn
        end local 2 // java.lang.Object reason
        end local 1 // java.lang.Object object
        end local 0 // java.util.Optional optionalType
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  optionalType  Ljava/util/Optional<Lcom/oracle/svm/hosted/meta/HostedType;>;
            0    3     1        object  Ljava/lang/Object;
            0    3     2        reason  Ljava/lang/Object;
    Signature: (Ljava/util/Optional<Lcom/oracle/svm/hosted/meta/HostedType;>;Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/svm/hosted/meta/HostedType;
    MethodParameters:
              Name  Flags
      optionalType  
      object        
      reason        

  static java.lang.RuntimeException reportIllegalType(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/RuntimeException;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.Object object
        start local 1 // java.lang.Object reason
         0: .line 497
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* msg */
        start local 2 // java.lang.StringBuilder msg
         1: .line 498
            aload 2 /* msg */
            ldc "Image heap writing found a class not seen during static analysis. "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 499
            aload 2 /* msg */
            ldc "Did a static field or an object referenced from a static field change during native image generation? "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 500
            aload 2 /* msg */
            ldc "For example, a lazily initialized cache could have been initialized during image generation, in which case "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 501
            aload 2 /* msg */
            ldc "you need to force eager initialization of the cache before static analysis or reset the cache using a field "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 502
            aload 2 /* msg */
            ldc "value recomputation."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()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;
            pop
         6: .line 503
            aload 0 /* object */
            instanceof com.oracle.svm.core.hub.DynamicHub
            ifeq 9
         7: .line 504
            aload 2 /* msg */
            ldc "class: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* object */
            checkcast com.oracle.svm.core.hub.DynamicHub
            invokevirtual com.oracle.svm.core.hub.DynamicHub.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 505
            goto 13
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         9: aload 0 /* object */
            instanceof jdk.vm.ci.meta.ResolvedJavaType
            ifeq 12
        10: .line 506
            aload 2 /* msg */
            ldc "class: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* object */
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            iconst_1
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 507
            goto 13
        12: .line 508
      StackMap locals:
      StackMap stack:
            aload 2 /* msg */
            ldc "object: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* object */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "  of class: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 510
      StackMap locals:
      StackMap stack:
            aload 2 /* msg */
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "  reachable through:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 511
            aload 2 /* msg */
            aload 1 /* reason */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.fillReasonStack:(Ljava/lang/StringBuilder;Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        15: .line 512
            ldc "%s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* msg */
            aastore
            invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
            athrow
        end local 2 // java.lang.StringBuilder msg
        end local 1 // java.lang.Object reason
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0  object  Ljava/lang/Object;
            0   16     1  reason  Ljava/lang/Object;
            1   16     2     msg  Ljava/lang/StringBuilder;
    MethodParameters:
        Name  Flags
      object  
      reason  

  private static java.lang.StringBuilder fillReasonStack(java.lang.StringBuilder, java.lang.Object);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/Object;)Ljava/lang/StringBuilder;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.StringBuilder msg
        start local 1 // java.lang.Object reason
         0: .line 516
            aload 1 /* reason */
            instanceof com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
            ifeq 4
         1: .line 517
            aload 1 /* reason */
            checkcast com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
            astore 2 /* info */
        start local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         2: .line 518
            aload 0 /* msg */
            ldc "    object: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "  of class: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* info */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getObject:()Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 519
            aload 0 /* msg */
            aload 2 /* info */
            getfield com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.reason:Ljava/lang/Object;
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.fillReasonStack:(Ljava/lang/StringBuilder;Ljava/lang/Object;)Ljava/lang/StringBuilder;
            areturn
        end local 2 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         4: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* msg */
            ldc "    root: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* reason */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            areturn
        end local 1 // java.lang.Object reason
        end local 0 // java.lang.StringBuilder msg
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     msg  Ljava/lang/StringBuilder;
            0    5     1  reason  Ljava/lang/Object;
            2    4     2    info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    MethodParameters:
        Name  Flags
      msg     
      reason  

  private boolean isKnownImmutable(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object obj
         0: .line 526
            aload 1 /* obj */
            instanceof java.lang.String
            ifeq 3
         1: .line 530
            aload 1 /* obj */
            invokevirtual java.lang.Object.hashCode:()I
            ifeq 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 532
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic com.oracle.svm.hosted.meta.UniverseBuilder.isKnownImmutableType:(Ljava/lang/Class;)Z
            ifne 4
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.knownImmutableObjects:Ljava/util/Set;
            aload 1 /* obj */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 4
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    5     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   final

  private com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo addToImageHeap(java.lang.Object, com.oracle.svm.hosted.meta.HostedClass, long, int, java.lang.Object);
    descriptor: (Ljava/lang/Object;Lcom/oracle/svm/hosted/meta/HostedClass;JILjava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=8, args_size=6
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object object
        start local 2 // com.oracle.svm.hosted.meta.HostedClass clazz
        start local 3 // long size
        start local 5 // int identityHashCode
        start local 6 // java.lang.Object reason
         0: .line 537
            new com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
            dup
            aload 1 /* object */
            lload 3 /* size */
            aload 2 /* clazz */
            iload 5 /* identityHashCode */
            aload 6 /* reason */
            invokespecial com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.<init>:(Ljava/lang/Object;JLcom/oracle/svm/hosted/meta/HostedClass;ILjava/lang/Object;)V
            astore 7 /* info */
        start local 7 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
         1: .line 538
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objects:Ljava/util/IdentityHashMap;
            aload 1 /* object */
            invokevirtual java.util.IdentityHashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 539
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objects:Ljava/util/IdentityHashMap;
            aload 1 /* object */
            aload 7 /* info */
            invokevirtual java.util.IdentityHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 540
            aload 7 /* info */
            areturn
        end local 7 // com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo info
        end local 6 // java.lang.Object reason
        end local 5 // int identityHashCode
        end local 3 // long size
        end local 2 // com.oracle.svm.hosted.meta.HostedClass clazz
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    4     1            object  Ljava/lang/Object;
            0    4     2             clazz  Lcom/oracle/svm/hosted/meta/HostedClass;
            0    4     3              size  J
            0    4     5  identityHashCode  I
            0    4     6            reason  Ljava/lang/Object;
            1    4     7              info  Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    MethodParameters:
                  Name  Flags
      object            
      clazz             
      size              
      identityHashCode  
      reason            

  public com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo addLateToImageHeap(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.String reason
         0: .line 550
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 1
            aload 1 /* object */
            instanceof com.oracle.svm.core.hub.DynamicHub
            ifeq 1
            new java.lang.AssertionError
            dup
            ldc "needs a different identity hashcode"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 551
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 2
            aload 1 /* object */
            instanceof java.lang.String
            ifeq 2
            new java.lang.AssertionError
            dup
            ldc "needs String interning"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 553
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getMetaAccess:()Lcom/oracle/svm/hosted/meta/HostedMetaAccess;
            aload 1 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual com.oracle.svm.hosted.meta.HostedMetaAccess.optionalLookupJavaType:(Ljava/lang/Class;)Ljava/util/Optional;
            astore 3 /* optionalType */
        start local 3 // java.util.Optional optionalType
         3: .line 554
            aload 3 /* optionalType */
            aload 1 /* object */
            aload 2 /* reason */
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.requireType:(Ljava/util/Optional;Ljava/lang/Object;Ljava/lang/Object;)Lcom/oracle/svm/hosted/meta/HostedType;
            astore 4 /* type */
        start local 4 // com.oracle.svm.hosted.meta.HostedType type
         4: .line 555
            aload 0 /* this */
            aload 1 /* object */
            aload 4 /* type */
            checkcast com.oracle.svm.hosted.meta.HostedClass
            aload 0 /* this */
            aload 1 /* object */
            aload 4 /* type */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getSize:(Ljava/lang/Object;Lcom/oracle/svm/hosted/meta/HostedType;)J
            aload 1 /* object */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            aload 2 /* reason */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addToImageHeap:(Ljava/lang/Object;Lcom/oracle/svm/hosted/meta/HostedClass;JILjava/lang/Object;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            areturn
        end local 4 // com.oracle.svm.hosted.meta.HostedType type
        end local 3 // java.util.Optional optionalType
        end local 2 // java.lang.String reason
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    5     1        object  Ljava/lang/Object;
            0    5     2        reason  Ljava/lang/String;
            3    5     3  optionalType  Ljava/util/Optional<Lcom/oracle/svm/hosted/meta/HostedType;>;
            4    5     4          type  Lcom/oracle/svm/hosted/meta/HostedType;
    MethodParameters:
        Name  Flags
      object  
      reason  

  private long getSize(java.lang.Object, com.oracle.svm.hosted.meta.HostedType);
    descriptor: (Ljava/lang/Object;Lcom/oracle/svm/hosted/meta/HostedType;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object object
        start local 2 // com.oracle.svm.hosted.meta.HostedType type
         0: .line 559
            aload 2 /* type */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.isInstanceClass:()Z
            ifeq 4
         1: .line 560
            aload 2 /* type */
            checkcast com.oracle.svm.hosted.meta.HostedInstanceClass
            astore 3 /* clazz */
        start local 3 // com.oracle.svm.hosted.meta.HostedInstanceClass clazz
         2: .line 561
            getstatic com.oracle.svm.hosted.image.NativeImageHeap.$assertionsDisabled:Z
            ifne 3
            aload 3 /* clazz */
            invokestatic com.oracle.svm.hosted.config.HybridLayout.isHybrid:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
            ifeq 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 562
      StackMap locals: com.oracle.svm.hosted.meta.HostedInstanceClass
      StackMap stack:
            aload 3 /* clazz */
            invokevirtual com.oracle.svm.hosted.meta.HostedInstanceClass.getHub:()Lcom/oracle/svm/core/hub/DynamicHub;
            invokevirtual com.oracle.svm.core.hub.DynamicHub.getLayoutEncoding:()I
            invokestatic com.oracle.svm.core.hub.LayoutEncoding.getInstanceSize:(I)Lorg/graalvm/word/UnsignedWord;
            invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
            lreturn
        end local 3 // com.oracle.svm.hosted.meta.HostedInstanceClass clazz
         4: .line 563
      StackMap locals:
      StackMap stack:
            aload 2 /* type */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.isArray:()Z
            ifeq 6
         5: .line 564
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.objectLayout:Lcom/oracle/svm/core/config/ObjectLayout;
            aload 2 /* type */
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getComponentType:()Lcom/oracle/svm/hosted/meta/HostedType;
            invokevirtual com.oracle.svm.hosted.meta.HostedType.getStorageKind:()Ljdk/vm/ci/meta/JavaKind;
            aload 1 /* object */
            invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
            invokevirtual com.oracle.svm.core.config.ObjectLayout.getArraySize:(Ljdk/vm/ci/meta/JavaKind;I)J
            lreturn
         6: .line 566
      StackMap locals:
      StackMap stack:
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // com.oracle.svm.hosted.meta.HostedType type
        end local 1 // java.lang.Object object
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    7     1  object  Ljava/lang/Object;
            0    7     2    type  Lcom/oracle/svm/hosted/meta/HostedType;
            2    4     3   clazz  Lcom/oracle/svm/hosted/meta/HostedInstanceClass;
    MethodParameters:
        Name  Flags
      object  
      type    

  private boolean addArrayElements(java.lang.Object[], boolean, java.lang.Object);
    descriptor: ([Ljava/lang/Object;ZLjava/lang/Object;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object[] array
        start local 2 // boolean otherFieldsRelocatable
        start local 3 // java.lang.Object reason
         0: .line 572
            iload 2 /* otherFieldsRelocatable */
            istore 4 /* relocatable */
        start local 4 // boolean relocatable
         1: .line 573
            aload 1 /* array */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object[] int java.lang.Object int top int int java.lang.Object[]
      StackMap stack:
         2: aload 8
            iload 6
            aaload
            astore 5 /* element */
        start local 5 // java.lang.Object element
         3: .line 574
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.aUniverse:Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
            aload 5 /* element */
            invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.replaceObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 9 /* value */
        start local 9 // java.lang.Object value
         4: .line 575
            invokestatic com.oracle.svm.hosted.image.NativeImageHeap.spawnIsolates:()Z
            ifeq 8
         5: .line 576
            iload 4 /* relocatable */
            ifne 6
            aload 9 /* value */
            instanceof org.graalvm.nativeimage.c.function.RelocatedPointer
            ifne 6
            iconst_0
            goto 7
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object[] int java.lang.Object int java.lang.Object int int java.lang.Object[] java.lang.Object
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* relocatable */
         8: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* value */
            iconst_0
            aload 3 /* reason */
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.recursiveAddObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
        end local 9 // java.lang.Object value
        end local 5 // java.lang.Object element
         9: .line 573
            iinc 6 1
      StackMap locals: com.oracle.svm.hosted.image.NativeImageHeap java.lang.Object[] int java.lang.Object int top int int java.lang.Object[]
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 2
        11: .line 580
            iload 4 /* relocatable */
            ireturn
        end local 4 // boolean relocatable
        end local 3 // java.lang.Object reason
        end local 2 // boolean otherFieldsRelocatable
        end local 1 // java.lang.Object[] array
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   12     0                    this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0   12     1                   array  [Ljava/lang/Object;
            0   12     2  otherFieldsRelocatable  Z
            0   12     3                  reason  Ljava/lang/Object;
            1   12     4             relocatable  Z
            3    9     5                 element  Ljava/lang/Object;
            4    9     9                   value  Ljava/lang/Object;
    MethodParameters:
                        Name  Flags
      array                   
      otherFieldsRelocatable  
      reason                  

  private void recursiveAddObject(java.lang.Object, boolean, java.lang.Object);
    descriptor: (Ljava/lang/Object;ZLjava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
        start local 1 // java.lang.Object original
        start local 2 // boolean immutableFromParent
        start local 3 // java.lang.Object reason
         0: .line 588
            aload 1 /* original */
            ifnull 2
         1: .line 589
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectWorklist:Ljava/util/Deque;
            new com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData
            dup
            aload 1 /* original */
            iload 2 /* immutableFromParent */
            aload 3 /* reason */
            invokespecial com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData.<init>:(Ljava/lang/Object;ZLjava/lang/Object;)V
            invokeinterface java.util.Deque.push:(Ljava/lang/Object;)V
         2: .line 591
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object reason
        end local 2 // boolean immutableFromParent
        end local 1 // java.lang.Object original
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            0    3     1             original  Ljava/lang/Object;
            0    3     2  immutableFromParent  Z
            0    3     3               reason  Ljava/lang/Object;
    MethodParameters:
                     Name  Flags
      original             
      immutableFromParent  
      reason               

  private void processAddObjectWorklist();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
         0: .line 594
            goto 3
         1: .line 595
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectWorklist:Ljava/util/Deque;
            invokeinterface java.util.Deque.pop:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData
            astore 1 /* data */
        start local 1 // com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData data
         2: .line 596
            aload 0 /* this */
            aload 1 /* data */
            getfield com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData.original:Ljava/lang/Object;
            aload 1 /* data */
            getfield com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData.immutableFromParent:Z
            aload 1 /* data */
            getfield com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData.reason:Ljava/lang/Object;
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addObject:(Ljava/lang/Object;ZLjava/lang/Object;)V
        end local 1 // com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData data
         3: .line 594
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.hosted.image.NativeImageHeap.addObjectWorklist:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifeq 1
         4: .line 598
            return
        end local 0 // com.oracle.svm.hosted.image.NativeImageHeap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/svm/hosted/image/NativeImageHeap;
            2    3     1  data  Lcom/oracle/svm/hosted/image/NativeImageHeap$AddObjectData;

  public com.oracle.svm.core.image.ImageHeapObject addLateToImageHeap(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/svm/core/image/ImageHeapObject;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addLateToImageHeap:(Ljava/lang/Object;Ljava/lang/String;)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.oracle.svm.core.image.ImageHeapObject addFillerObject(int);
    descriptor: (I)Lcom/oracle/svm/core/image/ImageHeapObject;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.addFillerObject:(I)Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "NativeImageHeap.java"
NestMembers:
  com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData  com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo  com.oracle.svm.hosted.image.NativeImageHeap$Phase  com.oracle.svm.hosted.image.NativeImageHeap$Phase$PhaseValue
InnerClasses:
  public TypeNotFoundError = com.oracle.graal.pointsto.util.AnalysisError$TypeNotFoundError of com.oracle.graal.pointsto.util.AnalysisError
  public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
  AddObjectData = com.oracle.svm.hosted.image.NativeImageHeap$AddObjectData of com.oracle.svm.hosted.image.NativeImageHeap
  public final ObjectInfo = com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo of com.oracle.svm.hosted.image.NativeImageHeap
  protected final Phase = com.oracle.svm.hosted.image.NativeImageHeap$Phase of com.oracle.svm.hosted.image.NativeImageHeap