public class org.h2.mvstore.tx.TransactionStore$ArrayType implements org.h2.mvstore.type.DataType
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.mvstore.tx.TransactionStore$ArrayType
  super_class: java.lang.Object
{
  private final int arrayLength;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.h2.mvstore.type.DataType[] elementTypes;
    descriptor: [Lorg/h2/mvstore/type/DataType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(org.h2.mvstore.type.DataType[]);
    descriptor: ([Lorg/h2/mvstore/type/DataType;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
        start local 1 // org.h2.mvstore.type.DataType[] elementTypes
         0: .line 760
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 761
            aload 0 /* this */
            aload 1 /* elementTypes */
            arraylength
            putfield org.h2.mvstore.tx.TransactionStore$ArrayType.arrayLength:I
         2: .line 762
            aload 0 /* this */
            aload 1 /* elementTypes */
            putfield org.h2.mvstore.tx.TransactionStore$ArrayType.elementTypes:[Lorg/h2/mvstore/type/DataType;
         3: .line 763
            return
        end local 1 // org.h2.mvstore.type.DataType[] elementTypes
        end local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/h2/mvstore/tx/TransactionStore$ArrayType;
            0    4     1  elementTypes  [Lorg/h2/mvstore/type/DataType;
    MethodParameters:
              Name  Flags
      elementTypes  

  public int getMemory(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
        start local 1 // java.lang.Object obj
         0: .line 767
            aload 1 /* obj */
            checkcast java.lang.Object[]
            astore 2 /* array */
        start local 2 // java.lang.Object[] array
         1: .line 768
            iconst_0
            istore 3 /* size */
        start local 3 // int size
         2: .line 769
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 9
         4: .line 770
      StackMap locals: java.lang.Object[] int int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.elementTypes:[Lorg/h2/mvstore/type/DataType;
            iload 4 /* i */
            aaload
            astore 5 /* t */
        start local 5 // org.h2.mvstore.type.DataType t
         5: .line 771
            aload 2 /* array */
            iload 4 /* i */
            aaload
            astore 6 /* o */
        start local 6 // java.lang.Object o
         6: .line 772
            aload 6 /* o */
            ifnull 8
         7: .line 773
            iload 3 /* size */
            aload 5 /* t */
            aload 6 /* o */
            invokeinterface org.h2.mvstore.type.DataType.getMemory:(Ljava/lang/Object;)I
            iadd
            istore 3 /* size */
        end local 6 // java.lang.Object o
        end local 5 // org.h2.mvstore.type.DataType t
         8: .line 769
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.arrayLength:I
            if_icmplt 4
        end local 4 // int i
        10: .line 776
            iload 3 /* size */
            ireturn
        end local 3 // int size
        end local 2 // java.lang.Object[] array
        end local 1 // java.lang.Object obj
        end local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lorg/h2/mvstore/tx/TransactionStore$ArrayType;
            0   11     1    obj  Ljava/lang/Object;
            1   11     2  array  [Ljava/lang/Object;
            2   11     3   size  I
            3   10     4      i  I
            5    8     5      t  Lorg/h2/mvstore/type/DataType;
            6    8     6      o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public int compare(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
        start local 1 // java.lang.Object aObj
        start local 2 // java.lang.Object bObj
         0: .line 781
            aload 1 /* aObj */
            aload 2 /* bObj */
            if_acmpne 2
         1: .line 782
            iconst_0
            ireturn
         2: .line 784
      StackMap locals:
      StackMap stack:
            aload 1 /* aObj */
            checkcast java.lang.Object[]
            astore 3 /* a */
        start local 3 // java.lang.Object[] a
         3: .line 785
            aload 2 /* bObj */
            checkcast java.lang.Object[]
            astore 4 /* b */
        start local 4 // java.lang.Object[] b
         4: .line 786
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         5: goto 11
         6: .line 787
      StackMap locals: java.lang.Object[] java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.elementTypes:[Lorg/h2/mvstore/type/DataType;
            iload 5 /* i */
            aaload
            astore 6 /* t */
        start local 6 // org.h2.mvstore.type.DataType t
         7: .line 788
            aload 6 /* t */
            aload 3 /* a */
            iload 5 /* i */
            aaload
            aload 4 /* b */
            iload 5 /* i */
            aaload
            invokeinterface org.h2.mvstore.type.DataType.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
            istore 7 /* comp */
        start local 7 // int comp
         8: .line 789
            iload 7 /* comp */
            ifeq 10
         9: .line 790
            iload 7 /* comp */
            ireturn
        end local 7 // int comp
        end local 6 // org.h2.mvstore.type.DataType t
        10: .line 786
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.arrayLength:I
            if_icmplt 6
        end local 5 // int i
        12: .line 793
            iconst_0
            ireturn
        end local 4 // java.lang.Object[] b
        end local 3 // java.lang.Object[] a
        end local 2 // java.lang.Object bObj
        end local 1 // java.lang.Object aObj
        end local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/h2/mvstore/tx/TransactionStore$ArrayType;
            0   13     1  aObj  Ljava/lang/Object;
            0   13     2  bObj  Ljava/lang/Object;
            3   13     3     a  [Ljava/lang/Object;
            4   13     4     b  [Ljava/lang/Object;
            5   12     5     i  I
            7   10     6     t  Lorg/h2/mvstore/type/DataType;
            8   10     7  comp  I
    MethodParameters:
      Name  Flags
      aObj  
      bObj  

  public void read(java.nio.ByteBuffer, java.lang.Object[], int, boolean);
    descriptor: (Ljava/nio/ByteBuffer;[Ljava/lang/Object;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
        start local 1 // java.nio.ByteBuffer buff
        start local 2 // java.lang.Object[] obj
        start local 3 // int len
        start local 4 // boolean key
         0: .line 799
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: goto 4
         2: .line 800
      StackMap locals: int
      StackMap stack:
            aload 2 /* obj */
            iload 5 /* i */
            aload 0 /* this */
            aload 1 /* buff */
            invokevirtual org.h2.mvstore.tx.TransactionStore$ArrayType.read:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            aastore
         3: .line 799
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 5 /* i */
            iload 3 /* len */
            if_icmplt 2
        end local 5 // int i
         5: .line 802
            return
        end local 4 // boolean key
        end local 3 // int len
        end local 2 // java.lang.Object[] obj
        end local 1 // java.nio.ByteBuffer buff
        end local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/mvstore/tx/TransactionStore$ArrayType;
            0    6     1  buff  Ljava/nio/ByteBuffer;
            0    6     2   obj  [Ljava/lang/Object;
            0    6     3   len  I
            0    6     4   key  Z
            1    5     5     i  I
    MethodParameters:
      Name  Flags
      buff  
      obj   
      len   
      key   

  public void write(org.h2.mvstore.WriteBuffer, java.lang.Object[], int, boolean);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;[Ljava/lang/Object;IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
        start local 1 // org.h2.mvstore.WriteBuffer buff
        start local 2 // java.lang.Object[] obj
        start local 3 // int len
        start local 4 // boolean key
         0: .line 807
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: goto 4
         2: .line 808
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* buff */
            aload 2 /* obj */
            iload 5 /* i */
            aaload
            invokevirtual org.h2.mvstore.tx.TransactionStore$ArrayType.write:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/Object;)V
         3: .line 807
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 5 /* i */
            iload 3 /* len */
            if_icmplt 2
        end local 5 // int i
         5: .line 810
            return
        end local 4 // boolean key
        end local 3 // int len
        end local 2 // java.lang.Object[] obj
        end local 1 // org.h2.mvstore.WriteBuffer buff
        end local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/h2/mvstore/tx/TransactionStore$ArrayType;
            0    6     1  buff  Lorg/h2/mvstore/WriteBuffer;
            0    6     2   obj  [Ljava/lang/Object;
            0    6     3   len  I
            0    6     4   key  Z
            1    5     5     i  I
    MethodParameters:
      Name  Flags
      buff  
      obj   
      len   
      key   

  public void write(org.h2.mvstore.WriteBuffer, java.lang.Object);
    descriptor: (Lorg/h2/mvstore/WriteBuffer;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
        start local 1 // org.h2.mvstore.WriteBuffer buff
        start local 2 // java.lang.Object obj
         0: .line 814
            aload 2 /* obj */
            checkcast java.lang.Object[]
            astore 3 /* array */
        start local 3 // java.lang.Object[] array
         1: .line 815
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 11
         3: .line 816
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.elementTypes:[Lorg/h2/mvstore/type/DataType;
            iload 4 /* i */
            aaload
            astore 5 /* t */
        start local 5 // org.h2.mvstore.type.DataType t
         4: .line 817
            aload 3 /* array */
            iload 4 /* i */
            aaload
            astore 6 /* o */
        start local 6 // java.lang.Object o
         5: .line 818
            aload 6 /* o */
            ifnonnull 8
         6: .line 819
            aload 1 /* buff */
            iconst_0
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
         7: .line 820
            goto 10
         8: .line 821
      StackMap locals: org.h2.mvstore.type.DataType java.lang.Object
      StackMap stack:
            aload 1 /* buff */
            iconst_1
            invokevirtual org.h2.mvstore.WriteBuffer.put:(B)Lorg/h2/mvstore/WriteBuffer;
            pop
         9: .line 822
            aload 5 /* t */
            aload 1 /* buff */
            aload 6 /* o */
            invokeinterface org.h2.mvstore.type.DataType.write:(Lorg/h2/mvstore/WriteBuffer;Ljava/lang/Object;)V
        end local 6 // java.lang.Object o
        end local 5 // org.h2.mvstore.type.DataType t
        10: .line 815
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.arrayLength:I
            if_icmplt 3
        end local 4 // int i
        12: .line 825
            return
        end local 3 // java.lang.Object[] array
        end local 2 // java.lang.Object obj
        end local 1 // org.h2.mvstore.WriteBuffer buff
        end local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lorg/h2/mvstore/tx/TransactionStore$ArrayType;
            0   13     1   buff  Lorg/h2/mvstore/WriteBuffer;
            0   13     2    obj  Ljava/lang/Object;
            1   13     3  array  [Ljava/lang/Object;
            2   12     4      i  I
            4   10     5      t  Lorg/h2/mvstore/type/DataType;
            5   10     6      o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      buff  
      obj   

  public java.lang.Object read(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
        start local 1 // java.nio.ByteBuffer buff
         0: .line 829
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.arrayLength:I
            anewarray java.lang.Object
            astore 2 /* array */
        start local 2 // java.lang.Object[] array
         1: .line 830
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 831
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.elementTypes:[Lorg/h2/mvstore/type/DataType;
            iload 3 /* i */
            aaload
            astore 4 /* t */
        start local 4 // org.h2.mvstore.type.DataType t
         4: .line 832
            aload 1 /* buff */
            invokevirtual java.nio.ByteBuffer.get:()B
            iconst_1
            if_icmpne 6
         5: .line 833
            aload 2 /* array */
            iload 3 /* i */
            aload 4 /* t */
            aload 1 /* buff */
            invokeinterface org.h2.mvstore.type.DataType.read:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            aastore
        end local 4 // org.h2.mvstore.type.DataType t
         6: .line 830
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield org.h2.mvstore.tx.TransactionStore$ArrayType.arrayLength:I
            if_icmplt 3
        end local 3 // int i
         8: .line 836
            aload 2 /* array */
            areturn
        end local 2 // java.lang.Object[] array
        end local 1 // java.nio.ByteBuffer buff
        end local 0 // org.h2.mvstore.tx.TransactionStore$ArrayType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/h2/mvstore/tx/TransactionStore$ArrayType;
            0    9     1   buff  Ljava/nio/ByteBuffer;
            1    9     2  array  [Ljava/lang/Object;
            2    8     3      i  I
            4    6     4      t  Lorg/h2/mvstore/type/DataType;
    MethodParameters:
      Name  Flags
      buff  
}
SourceFile: "TransactionStore.java"
NestHost: org.h2.mvstore.tx.TransactionStore
InnerClasses:
  public ArrayType = org.h2.mvstore.tx.TransactionStore$ArrayType of org.h2.mvstore.tx.TransactionStore