public final class com.oracle.truffle.nfi.util.ProfiledArrayBuilder<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.nfi.util.ProfiledArrayBuilder
  super_class: java.lang.Object
{
  private T[] storage;
    descriptor: [Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Signature: [TT;

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

  private final com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArraySizeMemento memento;
    descriptor: Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder$ArraySizeMemento;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private void <init>(T[], com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArraySizeMemento);
    descriptor: ([Ljava/lang/Object;Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder$ArraySizeMemento;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder this
        start local 1 // java.lang.Object[] storage
        start local 2 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArraySizeMemento memento
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            aload 1 /* storage */
            putfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.storage:[Ljava/lang/Object;
         2: .line 60
            aload 0 /* this */
            iconst_0
            putfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.size:I
         3: .line 61
            aload 0 /* this */
            aload 2 /* memento */
            putfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.memento:Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder$ArraySizeMemento;
         4: .line 62
            return
        end local 2 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArraySizeMemento memento
        end local 1 // java.lang.Object[] storage
        end local 0 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder<TT;>;
            0    5     1  storage  [Ljava/lang/Object;
            0    5     2  memento  Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder$ArraySizeMemento;
    Signature: ([TT;Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder$ArraySizeMemento;)V
    MethodParameters:
         Name  Flags
      storage  
      memento  

  public int getSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder this
         0: .line 65
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.size:I
            ireturn
        end local 0 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder<TT;>;

  public void add();
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder this
        start local 1 // java.lang.Object obj
         0: .line 69
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.size:I
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.storage:[Ljava/lang/Object;
            arraylength
            if_icmplt 3
         1: .line 70
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         2: .line 76
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.storage:[Ljava/lang/Object;
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.storage:[Ljava/lang/Object;
            arraylength
            iconst_5
            iadd
            iconst_2
            imul
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            putfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.storage:[Ljava/lang/Object;
         3: .line 78
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.storage:[Ljava/lang/Object;
            aload 0 /* this */
            dup
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.size:I
            dup_x1
            iconst_1
            iadd
            putfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.size:I
            aload 1 /* obj */
            aastore
         4: .line 79
            return
        end local 1 // java.lang.Object obj
        end local 0 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder<TT;>;
            0    5     1   obj  TT;
    Signature: (TT;)V
    MethodParameters:
      Name  Flags
      obj   

  public T[] getFinalArray();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder this
         0: .line 82
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.storage:[Ljava/lang/Object;
            astore 1 /* ret */
        start local 1 // java.lang.Object[] ret
         1: .line 83
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.storage:[Ljava/lang/Object;
         2: .line 84
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.memento:Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder$ArraySizeMemento;
            ifnull 4
         3: .line 85
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.memento:Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder$ArraySizeMemento;
            aload 0 /* this */
            getfield com.oracle.truffle.nfi.util.ProfiledArrayBuilder.size:I
            invokevirtual com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArraySizeMemento.feedbackProfile:(I)V
         4: .line 87
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 1 /* ret */
            areturn
        end local 1 // java.lang.Object[] ret
        end local 0 // com.oracle.truffle.nfi.util.ProfiledArrayBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/nfi/util/ProfiledArrayBuilder<TT;>;
            1    5     1   ret  [Ljava/lang/Object;
    Signature: ()[TT;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ProfiledArrayBuilder.java"
NestMembers:
  com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArrayBuilderFactory  com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArrayFactory  com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArraySizeMemento  com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ProfiledArrayBuilderFactory  com.oracle.truffle.nfi.util.ProfiledArrayBuilder$UncachedArrayBuilderFactory
InnerClasses:
  public abstract ArrayBuilderFactory = com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArrayBuilderFactory of com.oracle.truffle.nfi.util.ProfiledArrayBuilder
  public abstract ArrayFactory = com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArrayFactory of com.oracle.truffle.nfi.util.ProfiledArrayBuilder
  private final ArraySizeMemento = com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ArraySizeMemento of com.oracle.truffle.nfi.util.ProfiledArrayBuilder
  private final ProfiledArrayBuilderFactory = com.oracle.truffle.nfi.util.ProfiledArrayBuilder$ProfiledArrayBuilderFactory of com.oracle.truffle.nfi.util.ProfiledArrayBuilder
  private final UncachedArrayBuilderFactory = com.oracle.truffle.nfi.util.ProfiledArrayBuilder$UncachedArrayBuilderFactory of com.oracle.truffle.nfi.util.ProfiledArrayBuilder