public class org.h2.tools.MultiDimension implements java.util.Comparator<long[]>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.tools.MultiDimension
super_class: java.lang.Object
{
private static final org.h2.tools.MultiDimension INSTANCE;
descriptor: Lorg/h2/tools/MultiDimension;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.h2.tools.MultiDimension
dup
invokespecial org.h2.tools.MultiDimension.<init>:()V
putstatic org.h2.tools.MultiDimension.INSTANCE:Lorg/h2/tools/MultiDimension;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/tools/MultiDimension;
public static org.h2.tools.MultiDimension getInstance();
descriptor: ()Lorg/h2/tools/MultiDimension;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.h2.tools.MultiDimension.INSTANCE:Lorg/h2/tools/MultiDimension;
areturn
LocalVariableTable:
Start End Slot Name Signature
public int normalize(int, double, double, double);
descriptor: (IDDD)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 6 0: dload 2
dload 4
dcmpg
iflt 1
dload 2
dload 6
dcmpl
ifle 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
dload 4
invokestatic java.lang.String.valueOf:(D)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
dload 2
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
ldc "<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
dload 6
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
dload 2
dload 4
dsub
dload 6
dload 4
dsub
ddiv
dstore 8
start local 8 3: dload 8
aload 0
iload 1
invokevirtual org.h2.tools.MultiDimension.getMaxValue:(I)I
i2d
dmul
d2i
ireturn
end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/tools/MultiDimension;
0 4 1 dimensions I
0 4 2 value D
0 4 4 min D
0 4 6 max D
3 4 8 x D
MethodParameters:
Name Flags
dimensions
value
min
max
public int getMaxValue(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
iconst_2
if_icmplt 1
iload 1
bipush 32
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
iload 1
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
invokestatic org.h2.tools.MultiDimension.getBitsPerValue:(I)I
istore 2
start local 2 3: lconst_1
iload 2
lshl
lconst_1
lsub
l2i
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/tools/MultiDimension;
0 4 1 dimensions I
3 4 2 bitsPerValue I
MethodParameters:
Name Flags
dimensions
private static int getBitsPerValue(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: bipush 31
bipush 64
iload 0
idiv
invokestatic java.lang.Math.min:(II)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 dimensions I
MethodParameters:
Name Flags
dimensions
public long interleave(int[]);
descriptor: ([I)J
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=7, locals=12, args_size=2
start local 0 start local 1 0: aload 1
arraylength
istore 2
start local 2 1: aload 0
iload 2
invokevirtual org.h2.tools.MultiDimension.getMaxValue:(I)I
i2l
lstore 3
start local 3 2: iload 2
invokestatic org.h2.tools.MultiDimension.getBitsPerValue:(I)I
istore 5
start local 5 3: lconst_0
lstore 6
start local 6 4: iconst_0
istore 8
start local 8 5: goto 15
6: StackMap locals: org.h2.tools.MultiDimension int[] int long int long int
StackMap stack:
aload 1
iload 8
iaload
i2l
lstore 9
start local 9 7: lload 9
lconst_0
lcmp
iflt 8
lload 9
lload 3
lcmp
ifle 9
8: StackMap locals: long
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "0<"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 9
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc "<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
iconst_0
istore 11
start local 11 10: goto 13
11: StackMap locals: int
StackMap stack:
lload 6
lload 9
lconst_1
iload 11
lshl
land
iload 8
iload 2
iconst_1
isub
iload 11
imul
iadd
lshl
lor
lstore 6
12: iinc 11 1
StackMap locals:
StackMap stack:
13: iload 11
iload 5
if_icmplt 11
end local 11 end local 9 14: iinc 8 1
StackMap locals:
StackMap stack:
15: iload 8
iload 2
if_icmplt 6
end local 8 16: lload 6
lreturn
end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/h2/tools/MultiDimension;
0 17 1 values [I
1 17 2 dimensions I
2 17 3 max J
3 17 5 bitsPerValue I
4 17 6 x J
5 16 8 i I
7 14 9 k J
10 14 11 b I
MethodParameters:
Name Flags
values
public long interleave(int, int);
descriptor: (II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifge 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "0<"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 2
ifge 4
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "0<"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
lconst_0
lstore 3
start local 3 5: iconst_0
istore 5
start local 5 6: goto 10
7: StackMap locals: long int
StackMap stack:
lload 3
iload 1
i2l
lconst_1
iload 5
lshl
land
iload 5
lshl
lor
lstore 3
8: lload 3
iload 2
i2l
lconst_1
iload 5
lshl
land
iload 5
iconst_1
iadd
lshl
lor
lstore 3
9: iinc 5 1
StackMap locals:
StackMap stack:
10: iload 5
bipush 32
if_icmplt 7
end local 5 11: lload 3
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/h2/tools/MultiDimension;
0 12 1 x I
0 12 2 y I
5 12 3 z J
6 11 5 i I
MethodParameters:
Name Flags
x
y
public int deinterleave(int, long, int);
descriptor: (IJI)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 4 0: iload 1
invokestatic org.h2.tools.MultiDimension.getBitsPerValue:(I)I
istore 5
start local 5 1: iconst_0
istore 6
start local 6 2: iconst_0
istore 7
start local 7 3: goto 6
4: StackMap locals: int int int
StackMap stack:
iload 6
i2l
lload 2
iload 4
iload 1
iconst_1
isub
iload 7
imul
iadd
lshr
lconst_1
iload 7
lshl
land
lor
l2i
istore 6
5: iinc 7 1
StackMap locals:
StackMap stack:
6: iload 7
iload 5
if_icmplt 4
end local 7 7: iload 6
ireturn
end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/tools/MultiDimension;
0 8 1 dimensions I
0 8 2 scalar J
0 8 4 dim I
1 8 5 bitsPerValue I
2 8 6 value I
3 7 7 i I
MethodParameters:
Name Flags
dimensions
scalar
dim
public java.lang.String generatePreparedQuery(java.lang.String, java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.lang.StringBuilder
dup
ldc "SELECT D.* FROM "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 4
start local 4 1: aload 4
aload 1
invokestatic org.h2.util.StringUtils.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
2: ldc " D, TABLE(_FROM_ BIGINT=?, _TO_ BIGINT=?) WHERE "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 4
aload 2
invokestatic org.h2.util.StringUtils.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
4: ldc " BETWEEN _FROM_ AND _TO_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 3
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 11
StackMap locals: org.h2.tools.MultiDimension java.lang.String java.lang.String java.lang.String[] java.lang.StringBuilder top int int java.lang.String[]
StackMap stack:
6: aload 8
iload 6
aaload
astore 5
start local 5 7: aload 4
ldc " AND "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
8: aload 4
aload 5
invokestatic org.h2.util.StringUtils.quoteIdentifier:(Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/StringBuilder;
9: ldc "+1 BETWEEN ?+1 AND ?+1"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 5 10: iinc 6 1
StackMap locals:
StackMap stack:
11: iload 6
iload 7
if_icmplt 6
12: aload 4
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/h2/tools/MultiDimension;
0 13 1 table Ljava/lang/String;
0 13 2 scalarColumn Ljava/lang/String;
0 13 3 columns [Ljava/lang/String;
1 13 4 buff Ljava/lang/StringBuilder;
7 10 5 col Ljava/lang/String;
MethodParameters:
Name Flags
table
scalarColumn
columns
public java.sql.ResultSet getResult(java.sql.PreparedStatement, int[], int[]);
descriptor: (Ljava/sql/PreparedStatement;[I[I)Ljava/sql/ResultSet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 3
invokevirtual org.h2.tools.MultiDimension.getMortonRanges:([I[I)[[J
astore 4
start local 4 1: aload 4
arraylength
istore 5
start local 5 2: iload 5
anewarray java.lang.Long
astore 6
start local 6 3: iload 5
anewarray java.lang.Long
astore 7
start local 7 4: iconst_0
istore 8
start local 8 5: goto 9
6: StackMap locals: org.h2.tools.MultiDimension java.sql.PreparedStatement int[] int[] long[][] int java.lang.Long[] java.lang.Long[] int
StackMap stack:
aload 6
iload 8
aload 4
iload 8
aaload
iconst_0
laload
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
7: aload 7
iload 8
aload 4
iload 8
aaload
iconst_1
laload
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
8: iinc 8 1
StackMap locals:
StackMap stack:
9: iload 8
iload 5
if_icmplt 6
end local 8 10: aload 1
iconst_1
aload 6
invokeinterface java.sql.PreparedStatement.setObject:(ILjava/lang/Object;)V
11: aload 1
iconst_2
aload 7
invokeinterface java.sql.PreparedStatement.setObject:(ILjava/lang/Object;)V
12: aload 2
arraylength
istore 5
13: iconst_0
istore 8
start local 8 14: iconst_3
istore 9
start local 9 15: goto 19
16: StackMap locals: int
StackMap stack:
aload 1
iload 9
iinc 9 1
aload 2
iload 8
iaload
invokeinterface java.sql.PreparedStatement.setInt:(II)V
17: aload 1
iload 9
iinc 9 1
aload 3
iload 8
iaload
invokeinterface java.sql.PreparedStatement.setInt:(II)V
18: iinc 8 1
StackMap locals:
StackMap stack:
19: iload 8
iload 5
if_icmplt 16
end local 9 end local 8 20: aload 1
invokeinterface java.sql.PreparedStatement.executeQuery:()Ljava/sql/ResultSet;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/h2/tools/MultiDimension;
0 21 1 prep Ljava/sql/PreparedStatement;
0 21 2 min [I
0 21 3 max [I
1 21 4 ranges [[J
2 21 5 len I
3 21 6 from [Ljava/lang/Long;
4 21 7 to [Ljava/lang/Long;
5 10 8 i I
14 20 8 i I
15 20 9 idx I
Exceptions:
throws java.sql.SQLException
MethodParameters:
Name Flags
prep
min
max
private long[][] getMortonRanges(int[], int[]);
descriptor: ([I[I)[[J
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
arraylength
istore 3
start local 3 1: aload 2
arraylength
iload 3
if_icmpeq 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
iload 3
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: int
StackMap stack:
iconst_0
istore 4
start local 4 4: goto 10
5: StackMap locals: int
StackMap stack:
aload 1
iload 4
iaload
aload 2
iload 4
iaload
if_icmple 9
6: aload 1
iload 4
iaload
istore 5
start local 5 7: aload 1
iload 4
aload 2
iload 4
iaload
iastore
8: aload 2
iload 4
iload 5
iastore
end local 5 9: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
iload 3
if_icmplt 5
end local 4 11: aload 1
aload 2
iload 3
invokestatic org.h2.tools.MultiDimension.getSize:([I[II)I
istore 4
start local 4 12: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 13: aload 0
aload 5
aload 1
aload 2
iload 3
iconst_0
invokevirtual org.h2.tools.MultiDimension.addMortonRanges:(Ljava/util/ArrayList;[I[III)V
14: aload 0
aload 5
iload 4
invokevirtual org.h2.tools.MultiDimension.combineEntries:(Ljava/util/ArrayList;I)V
15: aload 5
iconst_0
anewarray long[]
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast long[][]
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/h2/tools/MultiDimension;
0 16 1 min [I
0 16 2 max [I
1 16 3 len I
4 11 4 i I
7 9 5 temp I
12 16 4 total I
13 16 5 list Ljava/util/ArrayList<[J>;
MethodParameters:
Name Flags
min
max
private static int getSize(int[], int[], int);
descriptor: ([I[II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iconst_1
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: goto 6
3: StackMap locals: int int
StackMap stack:
aload 1
iload 4
iaload
aload 0
iload 4
iaload
isub
istore 5
start local 5 4: iload 3
iload 5
iconst_1
iadd
imul
istore 3
end local 5 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 2
if_icmplt 3
end local 4 7: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 min [I
0 8 1 max [I
0 8 2 len I
1 8 3 size I
2 7 4 i I
4 5 5 diff I
MethodParameters:
Name Flags
min
max
len
private void combineEntries(java.util.ArrayList<long[]>, );
descriptor: (Ljava/util/ArrayList;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
1: bipush 10
istore 3
start local 3 2: goto 21
3: StackMap locals: int
StackMap stack:
iconst_0
istore 4
start local 4 4: goto 12
5: StackMap locals: int
StackMap stack:
aload 1
iload 4
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast long[]
astore 5
start local 5 6: aload 1
iload 4
iconst_1
iadd
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast long[]
astore 6
start local 6 7: aload 5
iconst_1
laload
iload 3
i2l
ladd
aload 6
iconst_0
laload
lcmp
iflt 11
8: aload 5
iconst_1
aload 6
iconst_1
laload
lastore
9: aload 1
iload 4
iconst_1
iadd
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
10: iinc 4 -1
end local 6 end local 5 11: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
aload 1
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
if_icmplt 5
end local 4 13: iconst_0
istore 4
start local 4 14: aload 1
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 6
goto 17
StackMap locals: org.h2.tools.MultiDimension java.util.ArrayList int int int top java.util.Iterator
StackMap stack:
15: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast long[]
astore 5
start local 5 16: iload 4
i2l
aload 5
iconst_1
laload
aload 5
iconst_0
laload
lsub
lconst_1
ladd
ladd
l2i
istore 4
end local 5 17: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
18: iload 4
iconst_2
iload 2
imul
if_icmpgt 22
aload 1
invokevirtual java.util.ArrayList.size:()I
bipush 100
if_icmpge 20
19: goto 22
end local 4 20: StackMap locals: org.h2.tools.MultiDimension java.util.ArrayList int int
StackMap stack:
iload 3
iload 3
iconst_2
idiv
iadd
istore 3
StackMap locals:
StackMap stack:
21: iload 3
iload 2
if_icmplt 3
end local 3 22: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/h2/tools/MultiDimension;
0 23 1 list Ljava/util/ArrayList<[J>;
0 23 2 total I
2 22 3 minGap I
4 13 4 i I
6 11 5 current [J
7 11 6 next [J
14 20 4 searched I
16 17 5 range [J
Signature: (Ljava/util/ArrayList<[J>;I)V
MethodParameters:
Name Flags
list
total
public int compare(long[], long[]);
descriptor: ([J[J)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iconst_0
laload
aload 2
iconst_0
laload
lcmp
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_m1
StackMap locals:
StackMap stack: int
2: ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/tools/MultiDimension;
0 3 1 a [J
0 3 2 b [J
MethodParameters:
Name Flags
a
b
private void addMortonRanges(java.util.ArrayList<long[]>, int[], int[], int, );
descriptor: (Ljava/util/ArrayList;[I[III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=18, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iload 5
bipush 100
if_icmple 2
1: new java.lang.IllegalArgumentException
dup
iload 5
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 3: iconst_0
istore 7
start local 7 4: lconst_1
lstore 8
start local 8 5: iconst_0
istore 10
start local 10 6: goto 17
7: StackMap locals: org.h2.tools.MultiDimension java.util.ArrayList int[] int[] int int int int long int
StackMap stack:
aload 3
iload 10
iaload
aload 2
iload 10
iaload
isub
istore 11
start local 11 8: iload 11
ifge 10
9: new java.lang.IllegalArgumentException
dup
iload 11
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: int
StackMap stack:
lload 8
iload 11
iconst_1
iadd
i2l
lmul
lstore 8
11: lload 8
lconst_0
lcmp
ifge 13
12: new java.lang.IllegalArgumentException
dup
lload 8
invokestatic java.lang.Long.toString:(J)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
iload 11
iload 7
if_icmple 16
14: iload 11
istore 7
15: iload 10
istore 6
end local 11 16: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
17: iload 10
iload 4
if_icmplt 7
end local 10 18: aload 0
aload 2
invokevirtual org.h2.tools.MultiDimension.interleave:([I)J
lstore 10
start local 10 19: aload 0
aload 3
invokevirtual org.h2.tools.MultiDimension.interleave:([I)J
lstore 12
start local 12 20: lload 12
lload 10
lcmp
ifge 22
21: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
lload 12
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 10
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals: org.h2.tools.MultiDimension java.util.ArrayList int[] int[] int int int int long long long
StackMap stack:
lload 12
lload 10
lsub
lconst_1
ladd
lstore 14
start local 14 23: lload 14
lload 8
lcmp
ifne 27
24: iconst_2
newarray 11
dup
iconst_0
lload 10
lastore
dup
iconst_1
lload 12
lastore
astore 16
start local 16 25: aload 1
aload 16
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 16 26: goto 36
27: StackMap locals: long
StackMap stack:
aload 2
iload 6
iaload
aload 3
iload 6
iaload
invokestatic org.h2.tools.MultiDimension.findMiddle:(II)I
istore 16
start local 16 28: aload 3
iload 6
iaload
istore 17
start local 17 29: aload 3
iload 6
iload 16
iastore
30: aload 0
aload 1
aload 2
aload 3
iload 4
iload 5
iconst_1
iadd
invokevirtual org.h2.tools.MultiDimension.addMortonRanges:(Ljava/util/ArrayList;[I[III)V
31: aload 3
iload 6
iload 17
iastore
32: aload 2
iload 6
iaload
istore 17
33: aload 2
iload 6
iload 16
iconst_1
iadd
iastore
34: aload 0
aload 1
aload 2
aload 3
iload 4
iload 5
iconst_1
iadd
invokevirtual org.h2.tools.MultiDimension.addMortonRanges:(Ljava/util/ArrayList;[I[III)V
35: aload 2
iload 6
iload 17
iastore
end local 17 end local 16 36: StackMap locals:
StackMap stack:
return
end local 14 end local 12 end local 10 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lorg/h2/tools/MultiDimension;
0 37 1 list Ljava/util/ArrayList<[J>;
0 37 2 min [I
0 37 3 max [I
0 37 4 len I
0 37 5 level I
3 37 6 largest I
4 37 7 largestDiff I
5 37 8 size J
6 18 10 i I
8 16 11 diff I
19 37 10 low J
20 37 12 high J
23 37 14 range J
25 26 16 item [J
28 36 16 middle I
29 36 17 temp I
Signature: (Ljava/util/ArrayList<[J>;[I[III)V
MethodParameters:
Name Flags
list
min
max
len
level
private static int roundUp(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
iadd
iconst_1
isub
iload 1
ineg
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 x I
0 1 1 blockSizePowerOf2 I
MethodParameters:
Name Flags
x
blockSizePowerOf2
private static int findMiddle(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: iload 1
iload 0
isub
iconst_1
isub
istore 2
start local 2 1: iload 2
ifne 3
2: iload 0
ireturn
3: StackMap locals: int
StackMap stack:
iload 2
iconst_1
if_icmpne 5
4: iload 0
iconst_1
iadd
ireturn
5: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 6: goto 8
7: StackMap locals: int
StackMap stack:
iinc 3 1
8: StackMap locals:
StackMap stack:
iconst_1
iload 3
ishl
iload 2
if_icmplt 7
9: iinc 3 -1
10: iload 0
iconst_2
iadd
iconst_1
iload 3
ishl
invokestatic org.h2.tools.MultiDimension.roundUp:(II)I
iconst_1
isub
istore 4
start local 4 11: iload 4
iload 0
if_icmple 12
iload 4
iload 1
if_icmplt 13
12: StackMap locals: int
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
iload 0
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 a I
0 14 1 b I
1 14 2 diff I
6 14 3 scale I
11 14 4 m I
MethodParameters:
Name Flags
a
b
public int compare(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast long[]
aload 2
checkcast long[]
invokevirtual org.h2.tools.MultiDimension.compare:([J[J)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/Comparator<[J>;
SourceFile: "MultiDimension.java"