public final class org.apache.cassandra.utils.LongTimSort
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.cassandra.utils.LongTimSort
super_class: java.lang.Object
{
private static final int MIN_MERGE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private final long[] a;
descriptor: [J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.utils.LongTimSort$LongComparator c;
descriptor: Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int MIN_GALLOP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private int minGallop;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int INITIAL_TMP_STORAGE_LENGTH;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private long[] tmp;
descriptor: [J
flags: (0x0002) ACC_PRIVATE
private int stackSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final int[] runBase;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] runLen;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private void <init>(long[], org.apache.cassandra.utils.LongTimSort$LongComparator);
descriptor: ([JLorg/apache/cassandra/utils/LongTimSort$LongComparator;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=3
start local 0 // org.apache.cassandra.utils.LongTimSort this
start local 1 // long[] a
start local 2 // org.apache.cassandra.utils.LongTimSort$LongComparator c
0: .line 132
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 94
aload 0 /* this */
bipush 7
putfield org.apache.cassandra.utils.LongTimSort.minGallop:I
2: .line 117
aload 0 /* this */
iconst_0
putfield org.apache.cassandra.utils.LongTimSort.stackSize:I
3: .line 133
aload 0 /* this */
aload 1 /* a */
putfield org.apache.cassandra.utils.LongTimSort.a:[J
4: .line 134
aload 0 /* this */
aload 2 /* c */
putfield org.apache.cassandra.utils.LongTimSort.c:Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
5: .line 136
aload 1 /* a */
arraylength
istore 3 /* len */
start local 3 // int len
6: .line 138
iload 3 /* len */
sipush 512
if_icmpge 8
7: .line 139
iload 3 /* len */
iconst_1
iushr
goto 9
StackMap locals: org.apache.cassandra.utils.LongTimSort long[] org.apache.cassandra.utils.LongTimSort$LongComparator int
StackMap stack:
8: sipush 256
9: .line 138
StackMap locals:
StackMap stack: int
newarray 11
astore 4 /* newArray */
start local 4 // long[] newArray
10: .line 140
aload 0 /* this */
aload 4 /* newArray */
putfield org.apache.cassandra.utils.LongTimSort.tmp:[J
11: .line 151
iload 3 /* len */
bipush 120
if_icmpge 12
iconst_5
goto 15
12: .line 152
StackMap locals: long[]
StackMap stack:
iload 3 /* len */
sipush 1542
if_icmpge 13
bipush 10
goto 15
13: .line 153
StackMap locals:
StackMap stack:
iload 3 /* len */
ldc 119151
if_icmpge 14
bipush 19
goto 15
StackMap locals:
StackMap stack:
14: bipush 40
15: .line 151
StackMap locals:
StackMap stack: int
istore 5 /* stackLen */
start local 5 // int stackLen
16: .line 154
aload 0 /* this */
iload 5 /* stackLen */
newarray 10
putfield org.apache.cassandra.utils.LongTimSort.runBase:[I
17: .line 155
aload 0 /* this */
iload 5 /* stackLen */
newarray 10
putfield org.apache.cassandra.utils.LongTimSort.runLen:[I
18: .line 156
return
end local 5 // int stackLen
end local 4 // long[] newArray
end local 3 // int len
end local 2 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 1 // long[] a
end local 0 // org.apache.cassandra.utils.LongTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/utils/LongTimSort;
0 19 1 a [J
0 19 2 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
6 19 3 len I
10 19 4 newArray [J
16 19 5 stackLen I
MethodParameters:
Name Flags
a
c
public static void sort(long[], org.apache.cassandra.utils.LongTimSort$LongComparator);
descriptor: ([JLorg/apache/cassandra/utils/LongTimSort$LongComparator;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 // long[] a
start local 1 // org.apache.cassandra.utils.LongTimSort$LongComparator c
0: .line 163
aload 0 /* a */
iconst_0
aload 0 /* a */
arraylength
aload 1 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.sort:([JIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)V
1: .line 164
return
end local 1 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 2 0 a [J
0 2 1 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
MethodParameters:
Name Flags
a
c
public static void sort(long[], int, int, org.apache.cassandra.utils.LongTimSort$LongComparator);
descriptor: ([JIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=4
start local 0 // long[] a
start local 1 // int lo
start local 2 // int hi
start local 3 // org.apache.cassandra.utils.LongTimSort$LongComparator c
0: .line 166
aload 3 /* c */
ifnonnull 3
1: .line 167
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
invokestatic java.util.Arrays.sort:([JII)V
2: .line 168
return
3: .line 170
StackMap locals:
StackMap stack:
aload 0 /* a */
arraylength
iload 1 /* lo */
iload 2 /* hi */
invokestatic org.apache.cassandra.utils.LongTimSort.rangeCheck:(III)V
4: .line 171
iload 2 /* hi */
iload 1 /* lo */
isub
istore 4 /* nRemaining */
start local 4 // int nRemaining
5: .line 172
iload 4 /* nRemaining */
iconst_2
if_icmpge 7
6: .line 173
return
7: .line 175
StackMap locals: int
StackMap stack:
iload 4 /* nRemaining */
bipush 32
if_icmpge 11
8: .line 176
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
aload 3 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.countRunAndMakeAscending:([JIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
istore 5 /* initRunLen */
start local 5 // int initRunLen
9: .line 177
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
iload 1 /* lo */
iload 5 /* initRunLen */
iadd
aload 3 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.binarySort:([JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)V
10: .line 178
return
end local 5 // int initRunLen
11: .line 185
StackMap locals:
StackMap stack:
new org.apache.cassandra.utils.LongTimSort
dup
aload 0 /* a */
aload 3 /* c */
invokespecial org.apache.cassandra.utils.LongTimSort.<init>:([JLorg/apache/cassandra/utils/LongTimSort$LongComparator;)V
astore 5 /* ts */
start local 5 // org.apache.cassandra.utils.LongTimSort ts
12: .line 186
iload 4 /* nRemaining */
invokestatic org.apache.cassandra.utils.LongTimSort.minRunLength:(I)I
istore 6 /* minRun */
start local 6 // int minRun
13: .line 189
StackMap locals: org.apache.cassandra.utils.LongTimSort int
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
aload 3 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.countRunAndMakeAscending:([JIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
istore 7 /* runLen */
start local 7 // int runLen
14: .line 191
iload 7 /* runLen */
iload 6 /* minRun */
if_icmpge 20
15: .line 192
iload 4 /* nRemaining */
iload 6 /* minRun */
if_icmpgt 16
iload 4 /* nRemaining */
goto 17
StackMap locals: int
StackMap stack:
16: iload 6 /* minRun */
StackMap locals:
StackMap stack: int
17: istore 8 /* force */
start local 8 // int force
18: .line 193
aload 0 /* a */
iload 1 /* lo */
iload 1 /* lo */
iload 8 /* force */
iadd
iload 1 /* lo */
iload 7 /* runLen */
iadd
aload 3 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.binarySort:([JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)V
19: .line 194
iload 8 /* force */
istore 7 /* runLen */
end local 8 // int force
20: .line 197
StackMap locals:
StackMap stack:
aload 5 /* ts */
iload 1 /* lo */
iload 7 /* runLen */
invokevirtual org.apache.cassandra.utils.LongTimSort.pushRun:(II)V
21: .line 198
aload 5 /* ts */
invokevirtual org.apache.cassandra.utils.LongTimSort.mergeCollapse:()V
22: .line 200
iload 1 /* lo */
iload 7 /* runLen */
iadd
istore 1 /* lo */
23: .line 201
iload 4 /* nRemaining */
iload 7 /* runLen */
isub
istore 4 /* nRemaining */
end local 7 // int runLen
24: .line 202
iload 4 /* nRemaining */
ifne 13
25: .line 205
aload 5 /* ts */
invokevirtual org.apache.cassandra.utils.LongTimSort.mergeForceCollapse:()V
26: .line 207
return
end local 6 // int minRun
end local 5 // org.apache.cassandra.utils.LongTimSort ts
end local 4 // int nRemaining
end local 3 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 2 // int hi
end local 1 // int lo
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 27 0 a [J
0 27 1 lo I
0 27 2 hi I
0 27 3 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
5 27 4 nRemaining I
9 11 5 initRunLen I
12 27 5 ts Lorg/apache/cassandra/utils/LongTimSort;
13 27 6 minRun I
14 24 7 runLen I
18 20 8 force I
MethodParameters:
Name Flags
a
lo
hi
c
private static void binarySort(long[], int, int, int, org.apache.cassandra.utils.LongTimSort$LongComparator);
descriptor: ([JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=5
start local 0 // long[] a
start local 1 // int lo
start local 2 // int hi
start local 3 // int start
start local 4 // org.apache.cassandra.utils.LongTimSort$LongComparator c
0: .line 230
iload 3 /* start */
iload 1 /* lo */
if_icmpne 20
1: .line 231
iinc 3 /* start */ 1
2: .line 232
goto 20
3: .line 233
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 3 /* start */
laload
lstore 5 /* pivot */
start local 5 // long pivot
4: .line 235
iload 1 /* lo */
istore 7 /* left */
start local 7 // int left
5: .line 236
iload 3 /* start */
istore 8 /* right */
start local 8 // int right
6: .line 243
goto 11
7: .line 244
StackMap locals: long int int
StackMap stack:
iload 7 /* left */
iload 8 /* right */
iadd
iconst_1
iushr
istore 9 /* mid */
start local 9 // int mid
8: .line 245
aload 4 /* c */
lload 5 /* pivot */
aload 0 /* a */
iload 9 /* mid */
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifge 10
9: .line 246
iload 9 /* mid */
istore 8 /* right */
goto 11
10: .line 248
StackMap locals: int
StackMap stack:
iload 9 /* mid */
iconst_1
iadd
istore 7 /* left */
end local 9 // int mid
11: .line 243
StackMap locals:
StackMap stack:
iload 7 /* left */
iload 8 /* right */
if_icmplt 7
12: .line 258
iload 3 /* start */
iload 7 /* left */
isub
istore 9 /* n */
start local 9 // int n
13: .line 260
iload 9 /* n */
tableswitch { // 1 - 2
1: 15
2: 14
default: 17
}
14: .line 261
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 7 /* left */
iconst_2
iadd
aload 0 /* a */
iload 7 /* left */
iconst_1
iadd
laload
lastore
15: .line 262
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 7 /* left */
iconst_1
iadd
aload 0 /* a */
iload 7 /* left */
laload
lastore
16: .line 263
goto 18
17: .line 264
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 7 /* left */
aload 0 /* a */
iload 7 /* left */
iconst_1
iadd
iload 9 /* n */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: .line 266
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 7 /* left */
lload 5 /* pivot */
lastore
end local 9 // int n
end local 8 // int right
end local 7 // int left
end local 5 // long pivot
19: .line 232
iinc 3 /* start */ 1
StackMap locals: long[] int int int org.apache.cassandra.utils.LongTimSort$LongComparator
StackMap stack:
20: iload 3 /* start */
iload 2 /* hi */
if_icmplt 3
21: .line 268
return
end local 4 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 3 // int start
end local 2 // int hi
end local 1 // int lo
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 22 0 a [J
0 22 1 lo I
0 22 2 hi I
0 22 3 start I
0 22 4 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
4 19 5 pivot J
5 19 7 left I
6 19 8 right I
8 11 9 mid I
13 19 9 n I
MethodParameters:
Name Flags
a
lo
hi
start
c
private static int countRunAndMakeAscending(long[], int, int, org.apache.cassandra.utils.LongTimSort$LongComparator);
descriptor: ([JIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=4
start local 0 // long[] a
start local 1 // int lo
start local 2 // int hi
start local 3 // org.apache.cassandra.utils.LongTimSort$LongComparator c
0: .line 297
iload 1 /* lo */
iconst_1
iadd
istore 4 /* runHi */
start local 4 // int runHi
1: .line 298
iload 4 /* runHi */
iload 2 /* hi */
if_icmpne 3
2: .line 299
iconst_1
ireturn
3: .line 301
StackMap locals: int
StackMap stack:
aload 3 /* c */
aload 0 /* a */
iload 4 /* runHi */
iinc 4 /* runHi */ 1
laload
aload 0 /* a */
iload 1 /* lo */
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifge 10
4: .line 302
goto 6
5: .line 303
StackMap locals:
StackMap stack:
iinc 4 /* runHi */ 1
6: .line 302
StackMap locals:
StackMap stack:
iload 4 /* runHi */
iload 2 /* hi */
if_icmpge 7
aload 3 /* c */
aload 0 /* a */
iload 4 /* runHi */
laload
aload 0 /* a */
iload 4 /* runHi */
iconst_1
isub
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
iflt 5
7: .line 304
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
iload 4 /* runHi */
invokestatic org.apache.cassandra.utils.LongTimSort.reverseRange:([JII)V
8: .line 305
goto 11
9: .line 307
StackMap locals:
StackMap stack:
iinc 4 /* runHi */ 1
10: .line 306
StackMap locals:
StackMap stack:
iload 4 /* runHi */
iload 2 /* hi */
if_icmpge 11
aload 3 /* c */
aload 0 /* a */
iload 4 /* runHi */
laload
aload 0 /* a */
iload 4 /* runHi */
iconst_1
isub
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifge 9
11: .line 309
StackMap locals:
StackMap stack:
iload 4 /* runHi */
iload 1 /* lo */
isub
ireturn
end local 4 // int runHi
end local 3 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 2 // int hi
end local 1 // int lo
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 12 0 a [J
0 12 1 lo I
0 12 2 hi I
0 12 3 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
1 12 4 runHi I
MethodParameters:
Name Flags
a
lo
hi
c
private static void reverseRange(long[], int, int);
descriptor: ([JII)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 // long[] a
start local 1 // int lo
start local 2 // int hi
0: .line 319
iinc 2 /* hi */ -1
1: .line 320
goto 5
2: .line 321
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
laload
lstore 3 /* t */
start local 3 // long t
3: .line 322
aload 0 /* a */
iload 1 /* lo */
iinc 1 /* lo */ 1
aload 0 /* a */
iload 2 /* hi */
laload
lastore
4: .line 323
aload 0 /* a */
iload 2 /* hi */
iinc 2 /* hi */ -1
lload 3 /* t */
lastore
end local 3 // long t
5: .line 320
StackMap locals:
StackMap stack:
iload 1 /* lo */
iload 2 /* hi */
if_icmplt 2
6: .line 325
return
end local 2 // int hi
end local 1 // int lo
end local 0 // long[] a
LocalVariableTable:
Start End Slot Name Signature
0 7 0 a [J
0 7 1 lo I
0 7 2 hi I
3 5 3 t J
MethodParameters:
Name Flags
a
lo
hi
private static int minRunLength(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 // int n
0: .line 345
iconst_0
istore 1 /* r */
start local 1 // int r
1: .line 346
goto 4
2: .line 347
StackMap locals: int
StackMap stack:
iload 1 /* r */
iload 0 /* n */
iconst_1
iand
ior
istore 1 /* r */
3: .line 348
iload 0 /* n */
iconst_1
ishr
istore 0 /* n */
4: .line 346
StackMap locals:
StackMap stack:
iload 0 /* n */
bipush 32
if_icmpge 2
5: .line 350
iload 0 /* n */
iload 1 /* r */
iadd
ireturn
end local 1 // int r
end local 0 // int n
LocalVariableTable:
Start End Slot Name Signature
0 6 0 n I
1 6 1 r I
MethodParameters:
Name Flags
n
private void pushRun(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 // org.apache.cassandra.utils.LongTimSort this
start local 1 // int runBase
start local 2 // int runLen
0: .line 359
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runBase:[I
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iload 1 /* runBase */
iastore
1: .line 360
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iload 2 /* runLen */
iastore
2: .line 361
aload 0 /* this */
dup
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iconst_1
iadd
putfield org.apache.cassandra.utils.LongTimSort.stackSize:I
3: .line 362
return
end local 2 // int runLen
end local 1 // int runBase
end local 0 // org.apache.cassandra.utils.LongTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/LongTimSort;
0 4 1 runBase I
0 4 2 runLen I
MethodParameters:
Name Flags
runBase
runLen
private void mergeCollapse();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 // org.apache.cassandra.utils.LongTimSort this
0: .line 375
goto 9
1: .line 376
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iconst_2
isub
istore 1 /* n */
start local 1 // int n
2: .line 377
iload 1 /* n */
ifle 7
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iaload
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
iadd
if_icmpgt 7
3: .line 378
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmpge 5
4: .line 379
iinc 1 /* n */ -1
5: .line 380
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 1 /* n */
invokevirtual org.apache.cassandra.utils.LongTimSort.mergeAt:(I)V
6: .line 381
goto 9
StackMap locals:
StackMap stack:
7: aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iaload
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmpgt 10
8: .line 382
aload 0 /* this */
iload 1 /* n */
invokevirtual org.apache.cassandra.utils.LongTimSort.mergeAt:(I)V
end local 1 // int n
9: .line 375
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iconst_1
if_icmpgt 1
10: .line 387
StackMap locals:
StackMap stack:
return
end local 0 // org.apache.cassandra.utils.LongTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/utils/LongTimSort;
2 9 1 n I
private void mergeForceCollapse();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 // org.apache.cassandra.utils.LongTimSort this
0: .line 393
goto 5
1: .line 394
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iconst_2
isub
istore 1 /* n */
start local 1 // int n
2: .line 395
iload 1 /* n */
ifle 4
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmpge 4
3: .line 396
iinc 1 /* n */ -1
4: .line 397
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 1 /* n */
invokevirtual org.apache.cassandra.utils.LongTimSort.mergeAt:(I)V
end local 1 // int n
5: .line 393
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iconst_1
if_icmpgt 1
6: .line 399
return
end local 0 // org.apache.cassandra.utils.LongTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/utils/LongTimSort;
2 5 1 n I
private void mergeAt(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=2
start local 0 // org.apache.cassandra.utils.LongTimSort this
start local 1 // int i
0: .line 411
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runBase:[I
iload 1 /* i */
iaload
istore 2 /* base1 */
start local 2 // int base1
1: .line 412
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* i */
iaload
istore 3 /* len1 */
start local 3 // int len1
2: .line 413
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runBase:[I
iload 1 /* i */
iconst_1
iadd
iaload
istore 4 /* base2 */
start local 4 // int base2
3: .line 414
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* i */
iconst_1
iadd
iaload
istore 5 /* len2 */
start local 5 // int len2
4: .line 422
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* i */
iload 3 /* len1 */
iload 5 /* len2 */
iadd
iastore
5: .line 423
iload 1 /* i */
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iconst_3
isub
if_icmpne 8
6: .line 424
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runBase:[I
iload 1 /* i */
iconst_1
iadd
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runBase:[I
iload 1 /* i */
iconst_2
iadd
iaload
iastore
7: .line 425
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* i */
iconst_1
iadd
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.runLen:[I
iload 1 /* i */
iconst_2
iadd
iaload
iastore
8: .line 427
StackMap locals: org.apache.cassandra.utils.LongTimSort int int int int int
StackMap stack:
aload 0 /* this */
dup
getfield org.apache.cassandra.utils.LongTimSort.stackSize:I
iconst_1
isub
putfield org.apache.cassandra.utils.LongTimSort.stackSize:I
9: .line 432
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.a:[J
iload 4 /* base2 */
laload
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.a:[J
iload 2 /* base1 */
iload 3 /* len1 */
iconst_0
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.c:Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
invokestatic org.apache.cassandra.utils.LongTimSort.gallopRight:(J[JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
istore 6 /* k */
start local 6 // int k
10: .line 434
iload 2 /* base1 */
iload 6 /* k */
iadd
istore 2 /* base1 */
11: .line 435
iload 3 /* len1 */
iload 6 /* k */
isub
istore 3 /* len1 */
12: .line 436
iload 3 /* len1 */
ifne 14
13: .line 437
return
14: .line 442
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.a:[J
iload 2 /* base1 */
iload 3 /* len1 */
iadd
iconst_1
isub
laload
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.a:[J
iload 4 /* base2 */
iload 5 /* len2 */
iload 5 /* len2 */
iconst_1
isub
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.c:Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
invokestatic org.apache.cassandra.utils.LongTimSort.gallopLeft:(J[JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
istore 5 /* len2 */
15: .line 444
iload 5 /* len2 */
ifne 17
16: .line 445
return
17: .line 447
StackMap locals:
StackMap stack:
iload 3 /* len1 */
iload 5 /* len2 */
if_icmpgt 19
18: .line 448
aload 0 /* this */
iload 2 /* base1 */
iload 3 /* len1 */
iload 4 /* base2 */
iload 5 /* len2 */
invokevirtual org.apache.cassandra.utils.LongTimSort.mergeLo:(IIII)V
goto 20
19: .line 450
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 2 /* base1 */
iload 3 /* len1 */
iload 4 /* base2 */
iload 5 /* len2 */
invokevirtual org.apache.cassandra.utils.LongTimSort.mergeHi:(IIII)V
20: .line 451
StackMap locals:
StackMap stack:
return
end local 6 // int k
end local 5 // int len2
end local 4 // int base2
end local 3 // int len1
end local 2 // int base1
end local 1 // int i
end local 0 // org.apache.cassandra.utils.LongTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/apache/cassandra/utils/LongTimSort;
0 21 1 i I
1 21 2 base1 I
2 21 3 len1 I
3 21 4 base2 I
4 21 5 len2 I
10 21 6 k I
MethodParameters:
Name Flags
i
private static int gallopLeft(long, long[], int, int, int, org.apache.cassandra.utils.LongTimSort$LongComparator);
descriptor: (J[JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=6
start local 0 // long key
start local 2 // long[] a
start local 3 // int base
start local 4 // int len
start local 5 // int hint
start local 6 // org.apache.cassandra.utils.LongTimSort$LongComparator c
0: .line 473
iconst_0
istore 7 /* lastOfs */
start local 7 // int lastOfs
1: .line 474
iconst_1
istore 8 /* ofs */
start local 8 // int ofs
2: .line 475
aload 6 /* c */
lload 0 /* key */
aload 2 /* a */
iload 3 /* base */
iload 5 /* hint */
iadd
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifle 15
3: .line 477
iload 4 /* len */
iload 5 /* hint */
isub
istore 9 /* maxOfs */
start local 9 // int maxOfs
4: .line 478
goto 9
5: .line 479
StackMap locals: int int int
StackMap stack:
iload 8 /* ofs */
istore 7 /* lastOfs */
6: .line 480
iload 8 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 8 /* ofs */
7: .line 481
iload 8 /* ofs */
ifgt 9
8: .line 482
iload 9 /* maxOfs */
istore 8 /* ofs */
9: .line 478
StackMap locals:
StackMap stack:
iload 8 /* ofs */
iload 9 /* maxOfs */
if_icmpge 10
aload 6 /* c */
lload 0 /* key */
aload 2 /* a */
iload 3 /* base */
iload 5 /* hint */
iadd
iload 8 /* ofs */
iadd
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifgt 5
10: .line 484
StackMap locals:
StackMap stack:
iload 8 /* ofs */
iload 9 /* maxOfs */
if_icmple 12
11: .line 485
iload 9 /* maxOfs */
istore 8 /* ofs */
12: .line 487
StackMap locals:
StackMap stack:
iload 7 /* lastOfs */
iload 5 /* hint */
iadd
istore 7 /* lastOfs */
13: .line 488
iload 8 /* ofs */
iload 5 /* hint */
iadd
istore 8 /* ofs */
end local 9 // int maxOfs
14: .line 489
goto 27
15: .line 491
StackMap locals:
StackMap stack:
iload 5 /* hint */
iconst_1
iadd
istore 9 /* maxOfs */
start local 9 // int maxOfs
16: .line 492
goto 21
17: .line 493
StackMap locals: int
StackMap stack:
iload 8 /* ofs */
istore 7 /* lastOfs */
18: .line 494
iload 8 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 8 /* ofs */
19: .line 495
iload 8 /* ofs */
ifgt 21
20: .line 496
iload 9 /* maxOfs */
istore 8 /* ofs */
21: .line 492
StackMap locals:
StackMap stack:
iload 8 /* ofs */
iload 9 /* maxOfs */
if_icmpge 22
aload 6 /* c */
lload 0 /* key */
aload 2 /* a */
iload 3 /* base */
iload 5 /* hint */
iadd
iload 8 /* ofs */
isub
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifle 17
22: .line 498
StackMap locals:
StackMap stack:
iload 8 /* ofs */
iload 9 /* maxOfs */
if_icmple 24
23: .line 499
iload 9 /* maxOfs */
istore 8 /* ofs */
24: .line 501
StackMap locals:
StackMap stack:
iload 7 /* lastOfs */
istore 10 /* tmp */
start local 10 // int tmp
25: .line 502
iload 5 /* hint */
iload 8 /* ofs */
isub
istore 7 /* lastOfs */
26: .line 503
iload 5 /* hint */
iload 10 /* tmp */
isub
istore 8 /* ofs */
end local 10 // int tmp
end local 9 // int maxOfs
27: .line 511
StackMap locals:
StackMap stack:
iinc 7 /* lastOfs */ 1
28: .line 512
goto 33
29: .line 513
StackMap locals:
StackMap stack:
iload 7 /* lastOfs */
iload 8 /* ofs */
iload 7 /* lastOfs */
isub
iconst_1
iushr
iadd
istore 9 /* m */
start local 9 // int m
30: .line 514
aload 6 /* c */
lload 0 /* key */
aload 2 /* a */
iload 3 /* base */
iload 9 /* m */
iadd
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifle 32
31: .line 515
iload 9 /* m */
iconst_1
iadd
istore 7 /* lastOfs */
goto 33
32: .line 517
StackMap locals: int
StackMap stack:
iload 9 /* m */
istore 8 /* ofs */
end local 9 // int m
33: .line 512
StackMap locals:
StackMap stack:
iload 7 /* lastOfs */
iload 8 /* ofs */
if_icmplt 29
34: .line 520
iload 8 /* ofs */
ireturn
end local 8 // int ofs
end local 7 // int lastOfs
end local 6 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 5 // int hint
end local 4 // int len
end local 3 // int base
end local 2 // long[] a
end local 0 // long key
LocalVariableTable:
Start End Slot Name Signature
0 35 0 key J
0 35 2 a [J
0 35 3 base I
0 35 4 len I
0 35 5 hint I
0 35 6 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
1 35 7 lastOfs I
2 35 8 ofs I
4 14 9 maxOfs I
16 27 9 maxOfs I
25 27 10 tmp I
30 33 9 m I
MethodParameters:
Name Flags
key
a
base
len
hint
c
private static int gallopRight(long, long[], int, int, int, org.apache.cassandra.utils.LongTimSort$LongComparator);
descriptor: (J[JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=11, args_size=6
start local 0 // long key
start local 2 // long[] a
start local 3 // int base
start local 4 // int len
start local 5 // int hint
start local 6 // org.apache.cassandra.utils.LongTimSort$LongComparator c
0: .line 538
iconst_1
istore 7 /* ofs */
start local 7 // int ofs
1: .line 539
iconst_0
istore 8 /* lastOfs */
start local 8 // int lastOfs
2: .line 540
aload 6 /* c */
lload 0 /* key */
aload 2 /* a */
iload 3 /* base */
iload 5 /* hint */
iadd
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifge 16
3: .line 542
iload 5 /* hint */
iconst_1
iadd
istore 9 /* maxOfs */
start local 9 // int maxOfs
4: .line 543
goto 9
5: .line 544
StackMap locals: int int int
StackMap stack:
iload 7 /* ofs */
istore 8 /* lastOfs */
6: .line 545
iload 7 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 7 /* ofs */
7: .line 546
iload 7 /* ofs */
ifgt 9
8: .line 547
iload 9 /* maxOfs */
istore 7 /* ofs */
9: .line 543
StackMap locals:
StackMap stack:
iload 7 /* ofs */
iload 9 /* maxOfs */
if_icmpge 10
aload 6 /* c */
lload 0 /* key */
aload 2 /* a */
iload 3 /* base */
iload 5 /* hint */
iadd
iload 7 /* ofs */
isub
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
iflt 5
10: .line 549
StackMap locals:
StackMap stack:
iload 7 /* ofs */
iload 9 /* maxOfs */
if_icmple 12
11: .line 550
iload 9 /* maxOfs */
istore 7 /* ofs */
12: .line 552
StackMap locals:
StackMap stack:
iload 8 /* lastOfs */
istore 10 /* tmp */
start local 10 // int tmp
13: .line 553
iload 5 /* hint */
iload 7 /* ofs */
isub
istore 8 /* lastOfs */
14: .line 554
iload 5 /* hint */
iload 10 /* tmp */
isub
istore 7 /* ofs */
end local 10 // int tmp
end local 9 // int maxOfs
15: .line 555
goto 27
16: .line 557
StackMap locals:
StackMap stack:
iload 4 /* len */
iload 5 /* hint */
isub
istore 9 /* maxOfs */
start local 9 // int maxOfs
17: .line 558
goto 22
18: .line 559
StackMap locals: int
StackMap stack:
iload 7 /* ofs */
istore 8 /* lastOfs */
19: .line 560
iload 7 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 7 /* ofs */
20: .line 561
iload 7 /* ofs */
ifgt 22
21: .line 562
iload 9 /* maxOfs */
istore 7 /* ofs */
22: .line 558
StackMap locals:
StackMap stack:
iload 7 /* ofs */
iload 9 /* maxOfs */
if_icmpge 23
aload 6 /* c */
lload 0 /* key */
aload 2 /* a */
iload 3 /* base */
iload 5 /* hint */
iadd
iload 7 /* ofs */
iadd
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifge 18
23: .line 564
StackMap locals:
StackMap stack:
iload 7 /* ofs */
iload 9 /* maxOfs */
if_icmple 25
24: .line 565
iload 9 /* maxOfs */
istore 7 /* ofs */
25: .line 567
StackMap locals:
StackMap stack:
iload 8 /* lastOfs */
iload 5 /* hint */
iadd
istore 8 /* lastOfs */
26: .line 568
iload 7 /* ofs */
iload 5 /* hint */
iadd
istore 7 /* ofs */
end local 9 // int maxOfs
27: .line 576
StackMap locals:
StackMap stack:
iinc 8 /* lastOfs */ 1
28: .line 577
goto 33
29: .line 578
StackMap locals:
StackMap stack:
iload 8 /* lastOfs */
iload 7 /* ofs */
iload 8 /* lastOfs */
isub
iconst_1
iushr
iadd
istore 9 /* m */
start local 9 // int m
30: .line 579
aload 6 /* c */
lload 0 /* key */
aload 2 /* a */
iload 3 /* base */
iload 9 /* m */
iadd
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifge 32
31: .line 580
iload 9 /* m */
istore 7 /* ofs */
goto 33
32: .line 582
StackMap locals: int
StackMap stack:
iload 9 /* m */
iconst_1
iadd
istore 8 /* lastOfs */
end local 9 // int m
33: .line 577
StackMap locals:
StackMap stack:
iload 8 /* lastOfs */
iload 7 /* ofs */
if_icmplt 29
34: .line 585
iload 7 /* ofs */
ireturn
end local 8 // int lastOfs
end local 7 // int ofs
end local 6 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 5 // int hint
end local 4 // int len
end local 3 // int base
end local 2 // long[] a
end local 0 // long key
LocalVariableTable:
Start End Slot Name Signature
0 35 0 key J
0 35 2 a [J
0 35 3 base I
0 35 4 len I
0 35 5 hint I
0 35 6 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
1 35 7 ofs I
2 35 8 lastOfs I
4 15 9 maxOfs I
13 15 10 tmp I
17 27 9 maxOfs I
30 33 9 m I
MethodParameters:
Name Flags
key
a
base
len
hint
c
private void mergeLo(int, int, int, int);
descriptor: (IIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=14, args_size=5
start local 0 // org.apache.cassandra.utils.LongTimSort this
start local 1 // int base1
start local 2 // int len1
start local 3 // int base2
start local 4 // int len2
0: .line 606
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.a:[J
astore 5 /* a */
start local 5 // long[] a
1: .line 607
aload 0 /* this */
iload 2 /* len1 */
invokevirtual org.apache.cassandra.utils.LongTimSort.ensureCapacity:(I)[J
astore 6 /* tmp */
start local 6 // long[] tmp
2: .line 608
aload 5 /* a */
iload 1 /* base1 */
aload 6 /* tmp */
iconst_0
iload 2 /* len1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: .line 609
iconst_0
istore 7 /* cursor1 */
start local 7 // int cursor1
4: .line 610
iload 3 /* base2 */
istore 8 /* cursor2 */
start local 8 // int cursor2
5: .line 611
iload 1 /* base1 */
istore 9 /* dest */
start local 9 // int dest
6: .line 613
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
laload
lastore
7: .line 614
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 10
8: .line 615
aload 6 /* tmp */
iload 7 /* cursor1 */
aload 5 /* a */
iload 9 /* dest */
iload 2 /* len1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: .line 616
return
10: .line 618
StackMap locals: org.apache.cassandra.utils.LongTimSort int int int int long[] long[] int int int
StackMap stack:
iload 2 /* len1 */
iconst_1
if_icmpne 14
11: .line 619
aload 5 /* a */
iload 8 /* cursor2 */
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: .line 620
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iadd
aload 6 /* tmp */
iload 7 /* cursor1 */
laload
lastore
13: .line 621
return
14: .line 623
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.c:Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
astore 10 /* c */
start local 10 // org.apache.cassandra.utils.LongTimSort$LongComparator c
15: .line 624
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.minGallop:I
istore 11 /* minGallop */
start local 11 // int minGallop
16: .line 627
StackMap locals: org.apache.cassandra.utils.LongTimSort$LongComparator int
StackMap stack:
iconst_0
istore 12 /* count1 */
start local 12 // int count1
17: .line 628
iconst_0
istore 13 /* count2 */
start local 13 // int count2
18: .line 635
StackMap locals: int int
StackMap stack:
aload 10 /* c */
aload 5 /* a */
iload 8 /* cursor2 */
laload
aload 6 /* tmp */
iload 7 /* cursor1 */
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifge 24
19: .line 636
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
laload
lastore
20: .line 637
iinc 13 /* count2 */ 1
21: .line 638
iconst_0
istore 12 /* count1 */
22: .line 639
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 29
23: .line 640
goto 63
24: .line 642
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 6 /* tmp */
iload 7 /* cursor1 */
iinc 7 /* cursor1 */ 1
laload
lastore
25: .line 643
iinc 12 /* count1 */ 1
26: .line 644
iconst_0
istore 13 /* count2 */
27: .line 645
iinc 2 /* len1 */ -1
iload 2 /* len1 */
iconst_1
if_icmpne 29
28: .line 646
goto 63
29: .line 648
StackMap locals:
StackMap stack:
iload 12 /* count1 */
iload 13 /* count2 */
ior
iload 11 /* minGallop */
30: .line 633
if_icmplt 18
31: .line 656
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 8 /* cursor2 */
laload
aload 6 /* tmp */
iload 7 /* cursor1 */
iload 2 /* len1 */
iconst_0
aload 10 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.gallopRight:(J[JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
istore 12 /* count1 */
32: .line 657
iload 12 /* count1 */
ifeq 39
33: .line 658
aload 6 /* tmp */
iload 7 /* cursor1 */
aload 5 /* a */
iload 9 /* dest */
iload 12 /* count1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
34: .line 659
iload 9 /* dest */
iload 12 /* count1 */
iadd
istore 9 /* dest */
35: .line 660
iload 7 /* cursor1 */
iload 12 /* count1 */
iadd
istore 7 /* cursor1 */
36: .line 661
iload 2 /* len1 */
iload 12 /* count1 */
isub
istore 2 /* len1 */
37: .line 662
iload 2 /* len1 */
iconst_1
if_icmpgt 39
38: .line 663
goto 63
39: .line 665
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
laload
lastore
40: .line 666
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 42
41: .line 667
goto 63
42: .line 668
StackMap locals:
StackMap stack:
aload 6 /* tmp */
iload 7 /* cursor1 */
laload
aload 5 /* a */
iload 8 /* cursor2 */
iload 4 /* len2 */
iconst_0
aload 10 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.gallopLeft:(J[JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
istore 13 /* count2 */
43: .line 669
iload 13 /* count2 */
ifeq 50
44: .line 670
aload 5 /* a */
iload 8 /* cursor2 */
aload 5 /* a */
iload 9 /* dest */
iload 13 /* count2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
45: .line 671
iload 9 /* dest */
iload 13 /* count2 */
iadd
istore 9 /* dest */
46: .line 672
iload 8 /* cursor2 */
iload 13 /* count2 */
iadd
istore 8 /* cursor2 */
47: .line 673
iload 4 /* len2 */
iload 13 /* count2 */
isub
istore 4 /* len2 */
48: .line 674
iload 4 /* len2 */
ifne 50
49: .line 675
goto 63
50: .line 677
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 6 /* tmp */
iload 7 /* cursor1 */
iinc 7 /* cursor1 */ 1
laload
lastore
51: .line 678
iinc 2 /* len1 */ -1
iload 2 /* len1 */
iconst_1
if_icmpne 53
52: .line 679
goto 63
53: .line 680
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ -1
54: .line 681
iload 12 /* count1 */
bipush 7
if_icmplt 55
iconst_1
goto 56
StackMap locals:
StackMap stack:
55: iconst_0
StackMap locals:
StackMap stack: int
56: iload 13 /* count2 */
bipush 7
if_icmplt 57
iconst_1
goto 58
StackMap locals:
StackMap stack: int
57: iconst_0
58: .line 654
StackMap locals: org.apache.cassandra.utils.LongTimSort int int int int long[] long[] int int int org.apache.cassandra.utils.LongTimSort$LongComparator int int int
StackMap stack: int int
ior
ifne 31
59: .line 682
iload 11 /* minGallop */
ifge 61
60: .line 683
iconst_0
istore 11 /* minGallop */
61: .line 684
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ 2
end local 13 // int count2
end local 12 // int count1
62: .line 626
goto 16
63: .line 686
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* minGallop */
iconst_1
if_icmpge 64
iconst_1
goto 65
StackMap locals:
StackMap stack: org.apache.cassandra.utils.LongTimSort
64: iload 11 /* minGallop */
StackMap locals: org.apache.cassandra.utils.LongTimSort int int int int long[] long[] int int int org.apache.cassandra.utils.LongTimSort$LongComparator int
StackMap stack: org.apache.cassandra.utils.LongTimSort int
65: putfield org.apache.cassandra.utils.LongTimSort.minGallop:I
66: .line 687
iload 2 /* len1 */
iconst_1
if_icmpne 70
67: .line 689
aload 5 /* a */
iload 8 /* cursor2 */
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
68: .line 690
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iadd
aload 6 /* tmp */
iload 7 /* cursor1 */
laload
lastore
69: .line 691
goto 75
StackMap locals:
StackMap stack:
70: iload 2 /* len1 */
ifne 74
71: .line 692
new java.lang.IllegalArgumentException
dup
72: .line 693
ldc "Comparison method violates its general contract!"
73: .line 692
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
74: .line 697
StackMap locals:
StackMap stack:
aload 6 /* tmp */
iload 7 /* cursor1 */
aload 5 /* a */
iload 9 /* dest */
iload 2 /* len1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
75: .line 699
StackMap locals:
StackMap stack:
return
end local 11 // int minGallop
end local 10 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 9 // int dest
end local 8 // int cursor2
end local 7 // int cursor1
end local 6 // long[] tmp
end local 5 // long[] a
end local 4 // int len2
end local 3 // int base2
end local 2 // int len1
end local 1 // int base1
end local 0 // org.apache.cassandra.utils.LongTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 76 0 this Lorg/apache/cassandra/utils/LongTimSort;
0 76 1 base1 I
0 76 2 len1 I
0 76 3 base2 I
0 76 4 len2 I
1 76 5 a [J
2 76 6 tmp [J
4 76 7 cursor1 I
5 76 8 cursor2 I
6 76 9 dest I
15 76 10 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
16 76 11 minGallop I
17 62 12 count1 I
18 62 13 count2 I
MethodParameters:
Name Flags
base1
len1
base2
len2
private void mergeHi(int, int, int, int);
descriptor: (IIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=14, args_size=5
start local 0 // org.apache.cassandra.utils.LongTimSort this
start local 1 // int base1
start local 2 // int len1
start local 3 // int base2
start local 4 // int len2
0: .line 714
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.a:[J
astore 5 /* a */
start local 5 // long[] a
1: .line 715
aload 0 /* this */
iload 4 /* len2 */
invokevirtual org.apache.cassandra.utils.LongTimSort.ensureCapacity:(I)[J
astore 6 /* tmp */
start local 6 // long[] tmp
2: .line 716
aload 5 /* a */
iload 3 /* base2 */
aload 6 /* tmp */
iconst_0
iload 4 /* len2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: .line 717
iload 1 /* base1 */
iload 2 /* len1 */
iadd
iconst_1
isub
istore 7 /* cursor1 */
start local 7 // int cursor1
4: .line 718
iload 4 /* len2 */
iconst_1
isub
istore 8 /* cursor2 */
start local 8 // int cursor2
5: .line 719
iload 3 /* base2 */
iload 4 /* len2 */
iadd
iconst_1
isub
istore 9 /* dest */
start local 9 // int dest
6: .line 721
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ -1
aload 5 /* a */
iload 7 /* cursor1 */
iinc 7 /* cursor1 */ -1
laload
lastore
7: .line 722
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 10
8: .line 723
aload 6 /* tmp */
iconst_0
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iconst_1
isub
isub
iload 4 /* len2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: .line 724
return
10: .line 726
StackMap locals: org.apache.cassandra.utils.LongTimSort int int int int long[] long[] int int int
StackMap stack:
iload 4 /* len2 */
iconst_1
if_icmpne 16
11: .line 727
iload 9 /* dest */
iload 2 /* len1 */
isub
istore 9 /* dest */
12: .line 728
iload 7 /* cursor1 */
iload 2 /* len1 */
isub
istore 7 /* cursor1 */
13: .line 729
aload 5 /* a */
iload 7 /* cursor1 */
iconst_1
iadd
aload 5 /* a */
iload 9 /* dest */
iconst_1
iadd
iload 2 /* len1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: .line 730
aload 5 /* a */
iload 9 /* dest */
aload 6 /* tmp */
iload 8 /* cursor2 */
laload
lastore
15: .line 731
return
16: .line 733
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.c:Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
astore 10 /* c */
start local 10 // org.apache.cassandra.utils.LongTimSort$LongComparator c
17: .line 734
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.minGallop:I
istore 11 /* minGallop */
start local 11 // int minGallop
18: .line 737
StackMap locals: org.apache.cassandra.utils.LongTimSort$LongComparator int
StackMap stack:
iconst_0
istore 12 /* count1 */
start local 12 // int count1
19: .line 738
iconst_0
istore 13 /* count2 */
start local 13 // int count2
20: .line 745
StackMap locals: int int
StackMap stack:
aload 10 /* c */
aload 6 /* tmp */
iload 8 /* cursor2 */
laload
aload 5 /* a */
iload 7 /* cursor1 */
laload
invokeinterface org.apache.cassandra.utils.LongTimSort$LongComparator.compare:(JJ)I
ifge 26
21: .line 746
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ -1
aload 5 /* a */
iload 7 /* cursor1 */
iinc 7 /* cursor1 */ -1
laload
lastore
22: .line 747
iinc 12 /* count1 */ 1
23: .line 748
iconst_0
istore 13 /* count2 */
24: .line 749
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 31
25: .line 750
goto 65
26: .line 752
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ -1
aload 6 /* tmp */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ -1
laload
lastore
27: .line 753
iinc 13 /* count2 */ 1
28: .line 754
iconst_0
istore 12 /* count1 */
29: .line 755
iinc 4 /* len2 */ -1
iload 4 /* len2 */
iconst_1
if_icmpne 31
30: .line 756
goto 65
31: .line 758
StackMap locals:
StackMap stack:
iload 12 /* count1 */
iload 13 /* count2 */
ior
iload 11 /* minGallop */
32: .line 743
if_icmplt 20
33: .line 766
StackMap locals:
StackMap stack:
iload 2 /* len1 */
aload 6 /* tmp */
iload 8 /* cursor2 */
laload
aload 5 /* a */
iload 1 /* base1 */
iload 2 /* len1 */
iload 2 /* len1 */
iconst_1
isub
aload 10 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.gallopRight:(J[JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
isub
istore 12 /* count1 */
34: .line 767
iload 12 /* count1 */
ifeq 41
35: .line 768
iload 9 /* dest */
iload 12 /* count1 */
isub
istore 9 /* dest */
36: .line 769
iload 7 /* cursor1 */
iload 12 /* count1 */
isub
istore 7 /* cursor1 */
37: .line 770
iload 2 /* len1 */
iload 12 /* count1 */
isub
istore 2 /* len1 */
38: .line 771
aload 5 /* a */
iload 7 /* cursor1 */
iconst_1
iadd
aload 5 /* a */
iload 9 /* dest */
iconst_1
iadd
iload 12 /* count1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
39: .line 772
iload 2 /* len1 */
ifne 41
40: .line 773
goto 65
41: .line 775
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ -1
aload 6 /* tmp */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ -1
laload
lastore
42: .line 776
iinc 4 /* len2 */ -1
iload 4 /* len2 */
iconst_1
if_icmpne 44
43: .line 777
goto 65
44: .line 778
StackMap locals:
StackMap stack:
iload 4 /* len2 */
aload 5 /* a */
iload 7 /* cursor1 */
laload
aload 6 /* tmp */
iconst_0
iload 4 /* len2 */
iload 4 /* len2 */
iconst_1
isub
aload 10 /* c */
invokestatic org.apache.cassandra.utils.LongTimSort.gallopLeft:(J[JIIILorg/apache/cassandra/utils/LongTimSort$LongComparator;)I
isub
istore 13 /* count2 */
45: .line 779
iload 13 /* count2 */
ifeq 52
46: .line 780
iload 9 /* dest */
iload 13 /* count2 */
isub
istore 9 /* dest */
47: .line 781
iload 8 /* cursor2 */
iload 13 /* count2 */
isub
istore 8 /* cursor2 */
48: .line 782
iload 4 /* len2 */
iload 13 /* count2 */
isub
istore 4 /* len2 */
49: .line 783
aload 6 /* tmp */
iload 8 /* cursor2 */
iconst_1
iadd
aload 5 /* a */
iload 9 /* dest */
iconst_1
iadd
iload 13 /* count2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
50: .line 784
iload 4 /* len2 */
iconst_1
if_icmpgt 52
51: .line 785
goto 65
52: .line 787
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ -1
aload 5 /* a */
iload 7 /* cursor1 */
iinc 7 /* cursor1 */ -1
laload
lastore
53: .line 788
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 55
54: .line 789
goto 65
55: .line 790
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ -1
56: .line 791
iload 12 /* count1 */
bipush 7
if_icmplt 57
iconst_1
goto 58
StackMap locals:
StackMap stack:
57: iconst_0
StackMap locals:
StackMap stack: int
58: iload 13 /* count2 */
bipush 7
if_icmplt 59
iconst_1
goto 60
StackMap locals:
StackMap stack: int
59: iconst_0
60: .line 764
StackMap locals: org.apache.cassandra.utils.LongTimSort int int int int long[] long[] int int int org.apache.cassandra.utils.LongTimSort$LongComparator int int int
StackMap stack: int int
ior
ifne 33
61: .line 792
iload 11 /* minGallop */
ifge 63
62: .line 793
iconst_0
istore 11 /* minGallop */
63: .line 794
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ 2
end local 13 // int count2
end local 12 // int count1
64: .line 736
goto 18
65: .line 796
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* minGallop */
iconst_1
if_icmpge 66
iconst_1
goto 67
StackMap locals:
StackMap stack: org.apache.cassandra.utils.LongTimSort
66: iload 11 /* minGallop */
StackMap locals: org.apache.cassandra.utils.LongTimSort int int int int long[] long[] int int int org.apache.cassandra.utils.LongTimSort$LongComparator int
StackMap stack: org.apache.cassandra.utils.LongTimSort int
67: putfield org.apache.cassandra.utils.LongTimSort.minGallop:I
68: .line 797
iload 4 /* len2 */
iconst_1
if_icmpne 74
69: .line 799
iload 9 /* dest */
iload 2 /* len1 */
isub
istore 9 /* dest */
70: .line 800
iload 7 /* cursor1 */
iload 2 /* len1 */
isub
istore 7 /* cursor1 */
71: .line 801
aload 5 /* a */
iload 7 /* cursor1 */
iconst_1
iadd
aload 5 /* a */
iload 9 /* dest */
iconst_1
iadd
iload 2 /* len1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
72: .line 802
aload 5 /* a */
iload 9 /* dest */
aload 6 /* tmp */
iload 8 /* cursor2 */
laload
lastore
73: .line 803
goto 79
StackMap locals:
StackMap stack:
74: iload 4 /* len2 */
ifne 78
75: .line 804
new java.lang.IllegalArgumentException
dup
76: .line 805
ldc "Comparison method violates its general contract!"
77: .line 804
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
78: .line 809
StackMap locals:
StackMap stack:
aload 6 /* tmp */
iconst_0
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iconst_1
isub
isub
iload 4 /* len2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
79: .line 811
StackMap locals:
StackMap stack:
return
end local 11 // int minGallop
end local 10 // org.apache.cassandra.utils.LongTimSort$LongComparator c
end local 9 // int dest
end local 8 // int cursor2
end local 7 // int cursor1
end local 6 // long[] tmp
end local 5 // long[] a
end local 4 // int len2
end local 3 // int base2
end local 2 // int len1
end local 1 // int base1
end local 0 // org.apache.cassandra.utils.LongTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 80 0 this Lorg/apache/cassandra/utils/LongTimSort;
0 80 1 base1 I
0 80 2 len1 I
0 80 3 base2 I
0 80 4 len2 I
1 80 5 a [J
2 80 6 tmp [J
4 80 7 cursor1 I
5 80 8 cursor2 I
6 80 9 dest I
17 80 10 c Lorg/apache/cassandra/utils/LongTimSort$LongComparator;
18 80 11 minGallop I
19 64 12 count1 I
20 64 13 count2 I
MethodParameters:
Name Flags
base1
len1
base2
len2
private long[] ensureCapacity(int);
descriptor: (I)[J
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 // org.apache.cassandra.utils.LongTimSort this
start local 1 // int minCapacity
0: .line 821
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.tmp:[J
arraylength
iload 1 /* minCapacity */
if_icmpge 13
1: .line 823
iload 1 /* minCapacity */
istore 2 /* newSize */
start local 2 // int newSize
2: .line 824
iload 2 /* newSize */
iload 2 /* newSize */
iconst_1
ishr
ior
istore 2 /* newSize */
3: .line 825
iload 2 /* newSize */
iload 2 /* newSize */
iconst_2
ishr
ior
istore 2 /* newSize */
4: .line 826
iload 2 /* newSize */
iload 2 /* newSize */
iconst_4
ishr
ior
istore 2 /* newSize */
5: .line 827
iload 2 /* newSize */
iload 2 /* newSize */
bipush 8
ishr
ior
istore 2 /* newSize */
6: .line 828
iload 2 /* newSize */
iload 2 /* newSize */
bipush 16
ishr
ior
istore 2 /* newSize */
7: .line 829
iinc 2 /* newSize */ 1
8: .line 830
iload 2 /* newSize */
ifge 10
9: .line 831
iload 1 /* minCapacity */
istore 2 /* newSize */
goto 11
10: .line 833
StackMap locals: int
StackMap stack:
iload 2 /* newSize */
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.a:[J
arraylength
iconst_1
iushr
invokestatic java.lang.Math.min:(II)I
istore 2 /* newSize */
11: .line 835
StackMap locals:
StackMap stack:
iload 2 /* newSize */
newarray 11
astore 3 /* newArray */
start local 3 // long[] newArray
12: .line 836
aload 0 /* this */
aload 3 /* newArray */
putfield org.apache.cassandra.utils.LongTimSort.tmp:[J
end local 3 // long[] newArray
end local 2 // int newSize
13: .line 838
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.utils.LongTimSort.tmp:[J
areturn
end local 1 // int minCapacity
end local 0 // org.apache.cassandra.utils.LongTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/utils/LongTimSort;
0 14 1 minCapacity I
2 13 2 newSize I
12 13 3 newArray [J
MethodParameters:
Name Flags
minCapacity
private static void rangeCheck(int, int, int);
descriptor: (III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 // int arrayLen
start local 1 // int fromIndex
start local 2 // int toIndex
0: .line 852
iload 1 /* fromIndex */
iload 2 /* toIndex */
if_icmple 4
1: .line 853
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "fromIndex("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* fromIndex */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
2: .line 854
ldc ") > toIndex("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2 /* toIndex */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: .line 853
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: .line 855
StackMap locals:
StackMap stack:
iload 1 /* fromIndex */
ifge 6
5: .line 856
new java.lang.ArrayIndexOutOfBoundsException
dup
iload 1 /* fromIndex */
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
athrow
6: .line 857
StackMap locals:
StackMap stack:
iload 2 /* toIndex */
iload 0 /* arrayLen */
if_icmple 8
7: .line 858
new java.lang.ArrayIndexOutOfBoundsException
dup
iload 2 /* toIndex */
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
athrow
8: .line 859
StackMap locals:
StackMap stack:
return
end local 2 // int toIndex
end local 1 // int fromIndex
end local 0 // int arrayLen
LocalVariableTable:
Start End Slot Name Signature
0 9 0 arrayLen I
0 9 1 fromIndex I
0 9 2 toIndex I
MethodParameters:
Name Flags
arrayLen
fromIndex
toIndex
}
SourceFile: "LongTimSort.java"
NestMembers:
org.apache.cassandra.utils.LongTimSort$LongComparator
InnerClasses:
public abstract LongComparator = org.apache.cassandra.utils.LongTimSort$LongComparator of org.apache.cassandra.utils.LongTimSort