class java.util.ComparableTimSort
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.ComparableTimSort
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 java.lang.Object[] a;
descriptor: [Ljava/lang/Object;
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 java.lang.Object[] tmp;
descriptor: [Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private int tmpBase;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int tmpLen;
descriptor: I
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
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 42
ldc Ljava/util/ComparableTimSort;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic java.util.ComparableTimSort.$assertionsDisabled:Z
3: .line 87
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.Object[], java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=5
start local 0 // java.util.ComparableTimSort this
start local 1 // java.lang.Object[] a
start local 2 // java.lang.Object[] work
start local 3 // int workBase
start local 4 // int workLen
0: .line 120
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 78
aload 0 /* this */
bipush 7
putfield java.util.ComparableTimSort.minGallop:I
2: .line 108
aload 0 /* this */
iconst_0
putfield java.util.ComparableTimSort.stackSize:I
3: .line 121
aload 0 /* this */
aload 1 /* a */
putfield java.util.ComparableTimSort.a:[Ljava/lang/Object;
4: .line 124
aload 1 /* a */
arraylength
istore 5 /* len */
start local 5 // int len
5: .line 125
iload 5 /* len */
sipush 512
if_icmpge 7
6: .line 126
iload 5 /* len */
iconst_1
iushr
goto 8
StackMap locals: java.util.ComparableTimSort java.lang.Object[] java.lang.Object[] int int int
StackMap stack:
7: sipush 256
8: .line 125
StackMap locals:
StackMap stack: int
istore 6 /* tlen */
start local 6 // int tlen
9: .line 127
aload 2 /* work */
ifnull 10
iload 4 /* workLen */
iload 6 /* tlen */
if_icmplt 10
iload 3 /* workBase */
iload 6 /* tlen */
iadd
aload 2 /* work */
arraylength
if_icmple 14
10: .line 128
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 6 /* tlen */
anewarray java.lang.Object
putfield java.util.ComparableTimSort.tmp:[Ljava/lang/Object;
11: .line 129
aload 0 /* this */
iconst_0
putfield java.util.ComparableTimSort.tmpBase:I
12: .line 130
aload 0 /* this */
iload 6 /* tlen */
putfield java.util.ComparableTimSort.tmpLen:I
13: .line 131
goto 17
14: .line 133
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 2 /* work */
putfield java.util.ComparableTimSort.tmp:[Ljava/lang/Object;
15: .line 134
aload 0 /* this */
iload 3 /* workBase */
putfield java.util.ComparableTimSort.tmpBase:I
16: .line 135
aload 0 /* this */
iload 4 /* workLen */
putfield java.util.ComparableTimSort.tmpLen:I
17: .line 152
StackMap locals:
StackMap stack:
iload 5 /* len */
bipush 120
if_icmpge 18
iconst_5
goto 21
18: .line 153
StackMap locals:
StackMap stack:
iload 5 /* len */
sipush 1542
if_icmpge 19
bipush 10
goto 21
19: .line 154
StackMap locals:
StackMap stack:
iload 5 /* len */
ldc 119151
if_icmpge 20
bipush 24
goto 21
StackMap locals:
StackMap stack:
20: bipush 49
21: .line 152
StackMap locals:
StackMap stack: int
istore 7 /* stackLen */
start local 7 // int stackLen
22: .line 155
aload 0 /* this */
iload 7 /* stackLen */
newarray 10
putfield java.util.ComparableTimSort.runBase:[I
23: .line 156
aload 0 /* this */
iload 7 /* stackLen */
newarray 10
putfield java.util.ComparableTimSort.runLen:[I
24: .line 157
return
end local 7 // int stackLen
end local 6 // int tlen
end local 5 // int len
end local 4 // int workLen
end local 3 // int workBase
end local 2 // java.lang.Object[] work
end local 1 // java.lang.Object[] a
end local 0 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/util/ComparableTimSort;
0 25 1 a [Ljava/lang/Object;
0 25 2 work [Ljava/lang/Object;
0 25 3 workBase I
0 25 4 workLen I
5 25 5 len I
9 25 6 tlen I
22 25 7 stackLen I
MethodParameters:
Name Flags
a
work
workBase
workLen
static void sort(java.lang.Object[], int, int, java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;II[Ljava/lang/Object;II)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=11, args_size=6
start local 0 // java.lang.Object[] a
start local 1 // int lo
start local 2 // int hi
start local 3 // java.lang.Object[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 180
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 2
aload 0 /* a */
ifnull 1
iload 1 /* lo */
iflt 1
iload 1 /* lo */
iload 2 /* hi */
if_icmpgt 1
iload 2 /* hi */
aload 0 /* a */
arraylength
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 182
StackMap locals:
StackMap stack:
iload 2 /* hi */
iload 1 /* lo */
isub
istore 6 /* nRemaining */
start local 6 // int nRemaining
3: .line 183
iload 6 /* nRemaining */
iconst_2
if_icmpge 5
4: .line 184
return
5: .line 187
StackMap locals: int
StackMap stack:
iload 6 /* nRemaining */
bipush 32
if_icmpge 9
6: .line 188
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
invokestatic java.util.ComparableTimSort.countRunAndMakeAscending:([Ljava/lang/Object;II)I
istore 7 /* initRunLen */
start local 7 // int initRunLen
7: .line 189
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
iload 1 /* lo */
iload 7 /* initRunLen */
iadd
invokestatic java.util.ComparableTimSort.binarySort:([Ljava/lang/Object;III)V
8: .line 190
return
end local 7 // int initRunLen
9: .line 198
StackMap locals:
StackMap stack:
new java.util.ComparableTimSort
dup
aload 0 /* a */
aload 3 /* work */
iload 4 /* workBase */
iload 5 /* workLen */
invokespecial java.util.ComparableTimSort.<init>:([Ljava/lang/Object;[Ljava/lang/Object;II)V
astore 7 /* ts */
start local 7 // java.util.ComparableTimSort ts
10: .line 199
iload 6 /* nRemaining */
invokestatic java.util.ComparableTimSort.minRunLength:(I)I
istore 8 /* minRun */
start local 8 // int minRun
11: .line 202
StackMap locals: java.util.ComparableTimSort int
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
invokestatic java.util.ComparableTimSort.countRunAndMakeAscending:([Ljava/lang/Object;II)I
istore 9 /* runLen */
start local 9 // int runLen
12: .line 205
iload 9 /* runLen */
iload 8 /* minRun */
if_icmpge 18
13: .line 206
iload 6 /* nRemaining */
iload 8 /* minRun */
if_icmpgt 14
iload 6 /* nRemaining */
goto 15
StackMap locals: int
StackMap stack:
14: iload 8 /* minRun */
StackMap locals:
StackMap stack: int
15: istore 10 /* force */
start local 10 // int force
16: .line 207
aload 0 /* a */
iload 1 /* lo */
iload 1 /* lo */
iload 10 /* force */
iadd
iload 1 /* lo */
iload 9 /* runLen */
iadd
invokestatic java.util.ComparableTimSort.binarySort:([Ljava/lang/Object;III)V
17: .line 208
iload 10 /* force */
istore 9 /* runLen */
end local 10 // int force
18: .line 212
StackMap locals:
StackMap stack:
aload 7 /* ts */
iload 1 /* lo */
iload 9 /* runLen */
invokevirtual java.util.ComparableTimSort.pushRun:(II)V
19: .line 213
aload 7 /* ts */
invokevirtual java.util.ComparableTimSort.mergeCollapse:()V
20: .line 216
iload 1 /* lo */
iload 9 /* runLen */
iadd
istore 1 /* lo */
21: .line 217
iload 6 /* nRemaining */
iload 9 /* runLen */
isub
istore 6 /* nRemaining */
end local 9 // int runLen
22: .line 218
iload 6 /* nRemaining */
ifne 11
23: .line 221
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 24
iload 1 /* lo */
iload 2 /* hi */
if_icmpeq 24
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
24: .line 222
StackMap locals:
StackMap stack:
aload 7 /* ts */
invokevirtual java.util.ComparableTimSort.mergeForceCollapse:()V
25: .line 223
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 26
aload 7 /* ts */
getfield java.util.ComparableTimSort.stackSize:I
iconst_1
if_icmpeq 26
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
26: .line 224
StackMap locals:
StackMap stack:
return
end local 8 // int minRun
end local 7 // java.util.ComparableTimSort ts
end local 6 // int nRemaining
end local 5 // int workLen
end local 4 // int workBase
end local 3 // java.lang.Object[] work
end local 2 // int hi
end local 1 // int lo
end local 0 // java.lang.Object[] a
LocalVariableTable:
Start End Slot Name Signature
0 27 0 a [Ljava/lang/Object;
0 27 1 lo I
0 27 2 hi I
0 27 3 work [Ljava/lang/Object;
0 27 4 workBase I
0 27 5 workLen I
3 27 6 nRemaining I
7 9 7 initRunLen I
10 27 7 ts Ljava/util/ComparableTimSort;
11 27 8 minRun I
12 22 9 runLen I
16 18 10 force I
MethodParameters:
Name Flags
a
lo
hi
work
workBase
workLen
private static void binarySort(java.lang.Object[], int, int, int);
descriptor: ([Ljava/lang/Object;III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=8, args_size=4
start local 0 // java.lang.Object[] a
start local 1 // int lo
start local 2 // int hi
start local 3 // int start
0: .line 245
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 2
iload 1 /* lo */
iload 3 /* start */
if_icmpgt 1
iload 3 /* start */
iload 2 /* hi */
if_icmple 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 246
StackMap locals:
StackMap stack:
iload 3 /* start */
iload 1 /* lo */
if_icmpne 23
3: .line 247
iinc 3 /* start */ 1
4: .line 248
goto 23
5: .line 249
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 3 /* start */
aaload
checkcast java.lang.Comparable
astore 4 /* pivot */
start local 4 // java.lang.Comparable pivot
6: .line 252
iload 1 /* lo */
istore 5 /* left */
start local 5 // int left
7: .line 253
iload 3 /* start */
istore 6 /* right */
start local 6 // int right
8: .line 254
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 13
iload 5 /* left */
iload 6 /* right */
if_icmple 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: .line 261
StackMap locals: java.lang.Comparable int int
StackMap stack:
iload 5 /* left */
iload 6 /* right */
iadd
iconst_1
iushr
istore 7 /* mid */
start local 7 // int mid
10: .line 262
aload 4 /* pivot */
aload 0 /* a */
iload 7 /* mid */
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifge 12
11: .line 263
iload 7 /* mid */
istore 6 /* right */
goto 13
12: .line 265
StackMap locals: int
StackMap stack:
iload 7 /* mid */
iconst_1
iadd
istore 5 /* left */
end local 7 // int mid
13: .line 260
StackMap locals:
StackMap stack:
iload 5 /* left */
iload 6 /* right */
if_icmplt 9
14: .line 267
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 15
iload 5 /* left */
iload 6 /* right */
if_icmpeq 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: .line 276
StackMap locals:
StackMap stack:
iload 3 /* start */
iload 5 /* left */
isub
istore 7 /* n */
start local 7 // int n
16: .line 278
iload 7 /* n */
tableswitch { // 1 - 2
1: 18
2: 17
default: 20
}
17: .line 279
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 5 /* left */
iconst_2
iadd
aload 0 /* a */
iload 5 /* left */
iconst_1
iadd
aaload
aastore
18: .line 280
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* left */
iconst_1
iadd
aload 0 /* a */
iload 5 /* left */
aaload
aastore
19: .line 281
goto 21
20: .line 282
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* left */
aload 0 /* a */
iload 5 /* left */
iconst_1
iadd
iload 7 /* n */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
21: .line 284
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 5 /* left */
aload 4 /* pivot */
aastore
end local 7 // int n
end local 6 // int right
end local 5 // int left
end local 4 // java.lang.Comparable pivot
22: .line 248
iinc 3 /* start */ 1
StackMap locals: java.lang.Object[] int int int
StackMap stack:
23: iload 3 /* start */
iload 2 /* hi */
if_icmplt 5
24: .line 286
return
end local 3 // int start
end local 2 // int hi
end local 1 // int lo
end local 0 // java.lang.Object[] a
LocalVariableTable:
Start End Slot Name Signature
0 25 0 a [Ljava/lang/Object;
0 25 1 lo I
0 25 2 hi I
0 25 3 start I
6 22 4 pivot Ljava/lang/Comparable;
7 22 5 left I
8 22 6 right I
10 13 7 mid I
16 22 7 n I
MethodParameters:
Name Flags
a
lo
hi
start
private static int countRunAndMakeAscending(java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 // java.lang.Object[] a
start local 1 // int lo
start local 2 // int hi
0: .line 314
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 1
iload 1 /* lo */
iload 2 /* hi */
if_icmplt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 315
StackMap locals:
StackMap stack:
iload 1 /* lo */
iconst_1
iadd
istore 3 /* runHi */
start local 3 // int runHi
2: .line 316
iload 3 /* runHi */
iload 2 /* hi */
if_icmpne 4
3: .line 317
iconst_1
ireturn
4: .line 320
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 3 /* runHi */
iinc 3 /* runHi */ 1
aaload
checkcast java.lang.Comparable
aload 0 /* a */
iload 1 /* lo */
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifge 11
5: .line 321
goto 7
6: .line 322
StackMap locals:
StackMap stack:
iinc 3 /* runHi */ 1
7: .line 321
StackMap locals:
StackMap stack:
iload 3 /* runHi */
iload 2 /* hi */
if_icmpge 8
aload 0 /* a */
iload 3 /* runHi */
aaload
checkcast java.lang.Comparable
aload 0 /* a */
iload 3 /* runHi */
iconst_1
isub
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
iflt 6
8: .line 323
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
iload 3 /* runHi */
invokestatic java.util.ComparableTimSort.reverseRange:([Ljava/lang/Object;II)V
9: .line 324
goto 12
10: .line 326
StackMap locals:
StackMap stack:
iinc 3 /* runHi */ 1
11: .line 325
StackMap locals:
StackMap stack:
iload 3 /* runHi */
iload 2 /* hi */
if_icmpge 12
aload 0 /* a */
iload 3 /* runHi */
aaload
checkcast java.lang.Comparable
aload 0 /* a */
iload 3 /* runHi */
iconst_1
isub
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifge 10
12: .line 329
StackMap locals:
StackMap stack:
iload 3 /* runHi */
iload 1 /* lo */
isub
ireturn
end local 3 // int runHi
end local 2 // int hi
end local 1 // int lo
end local 0 // java.lang.Object[] a
LocalVariableTable:
Start End Slot Name Signature
0 13 0 a [Ljava/lang/Object;
0 13 1 lo I
0 13 2 hi I
2 13 3 runHi I
MethodParameters:
Name Flags
a
lo
hi
private static void reverseRange(java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 // java.lang.Object[] a
start local 1 // int lo
start local 2 // int hi
0: .line 340
iinc 2 /* hi */ -1
1: .line 341
goto 5
2: .line 342
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
aaload
astore 3 /* t */
start local 3 // java.lang.Object t
3: .line 343
aload 0 /* a */
iload 1 /* lo */
iinc 1 /* lo */ 1
aload 0 /* a */
iload 2 /* hi */
aaload
aastore
4: .line 344
aload 0 /* a */
iload 2 /* hi */
iinc 2 /* hi */ -1
aload 3 /* t */
aastore
end local 3 // java.lang.Object t
5: .line 341
StackMap locals:
StackMap stack:
iload 1 /* lo */
iload 2 /* hi */
if_icmplt 2
6: .line 346
return
end local 2 // int hi
end local 1 // int lo
end local 0 // java.lang.Object[] a
LocalVariableTable:
Start End Slot Name Signature
0 7 0 a [Ljava/lang/Object;
0 7 1 lo I
0 7 2 hi I
3 5 3 t Ljava/lang/Object;
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 366
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 1
iload 0 /* n */
ifge 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 367
StackMap locals:
StackMap stack:
iconst_0
istore 1 /* r */
start local 1 // int r
2: .line 368
goto 5
3: .line 369
StackMap locals: int
StackMap stack:
iload 1 /* r */
iload 0 /* n */
iconst_1
iand
ior
istore 1 /* r */
4: .line 370
iload 0 /* n */
iconst_1
ishr
istore 0 /* n */
5: .line 368
StackMap locals:
StackMap stack:
iload 0 /* n */
bipush 32
if_icmpge 3
6: .line 372
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 7 0 n I
2 7 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 // java.util.ComparableTimSort this
start local 1 // int runBase
start local 2 // int runLen
0: .line 382
aload 0 /* this */
getfield java.util.ComparableTimSort.runBase:[I
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iload 1 /* runBase */
iastore
1: .line 383
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iload 2 /* runLen */
iastore
2: .line 384
aload 0 /* this */
dup
getfield java.util.ComparableTimSort.stackSize:I
iconst_1
iadd
putfield java.util.ComparableTimSort.stackSize:I
3: .line 385
return
end local 2 // int runLen
end local 1 // int runBase
end local 0 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/ComparableTimSort;
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 // java.util.ComparableTimSort this
0: .line 399
goto 9
1: .line 400
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_2
isub
istore 1 /* n */
start local 1 // int n
2: .line 401
iload 1 /* n */
ifle 7
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iaload
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
iadd
if_icmpgt 7
3: .line 402
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmpge 5
4: .line 403
iinc 1 /* n */ -1
5: .line 404
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 1 /* n */
invokevirtual java.util.ComparableTimSort.mergeAt:(I)V
6: .line 405
goto 9
StackMap locals:
StackMap stack:
7: aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iaload
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmpgt 10
8: .line 406
aload 0 /* this */
iload 1 /* n */
invokevirtual java.util.ComparableTimSort.mergeAt:(I)V
end local 1 // int n
9: .line 399
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_1
if_icmpgt 1
10: .line 411
StackMap locals:
StackMap stack:
return
end local 0 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/ComparableTimSort;
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 // java.util.ComparableTimSort this
0: .line 418
goto 5
1: .line 419
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_2
isub
istore 1 /* n */
start local 1 // int n
2: .line 420
iload 1 /* n */
ifle 4
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmpge 4
3: .line 421
iinc 1 /* n */ -1
4: .line 422
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 1 /* n */
invokevirtual java.util.ComparableTimSort.mergeAt:(I)V
end local 1 // int n
5: .line 418
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_1
if_icmpgt 1
6: .line 424
return
end local 0 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/ComparableTimSort;
2 5 1 n I
private void mergeAt(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 // java.util.ComparableTimSort this
start local 1 // int i
0: .line 435
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 1
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_2
if_icmpge 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 436
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 2
iload 1 /* i */
ifge 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 437
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 3
iload 1 /* i */
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_2
isub
if_icmpeq 3
iload 1 /* i */
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_3
isub
if_icmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: .line 439
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.runBase:[I
iload 1 /* i */
iaload
istore 2 /* base1 */
start local 2 // int base1
4: .line 440
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* i */
iaload
istore 3 /* len1 */
start local 3 // int len1
5: .line 441
aload 0 /* this */
getfield java.util.ComparableTimSort.runBase:[I
iload 1 /* i */
iconst_1
iadd
iaload
istore 4 /* base2 */
start local 4 // int base2
6: .line 442
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* i */
iconst_1
iadd
iaload
istore 5 /* len2 */
start local 5 // int len2
7: .line 443
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 9
iload 3 /* len1 */
ifle 8
iload 5 /* len2 */
ifgt 9
StackMap locals: java.util.ComparableTimSort int int int int int
StackMap stack:
8: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: .line 444
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 10
iload 2 /* base1 */
iload 3 /* len1 */
iadd
iload 4 /* base2 */
if_icmpeq 10
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
10: .line 451
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* i */
iload 3 /* len1 */
iload 5 /* len2 */
iadd
iastore
11: .line 452
iload 1 /* i */
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_3
isub
if_icmpne 14
12: .line 453
aload 0 /* this */
getfield java.util.ComparableTimSort.runBase:[I
iload 1 /* i */
iconst_1
iadd
aload 0 /* this */
getfield java.util.ComparableTimSort.runBase:[I
iload 1 /* i */
iconst_2
iadd
iaload
iastore
13: .line 454
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* i */
iconst_1
iadd
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* i */
iconst_2
iadd
iaload
iastore
14: .line 456
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
getfield java.util.ComparableTimSort.stackSize:I
iconst_1
isub
putfield java.util.ComparableTimSort.stackSize:I
15: .line 462
aload 0 /* this */
getfield java.util.ComparableTimSort.a:[Ljava/lang/Object;
iload 4 /* base2 */
aaload
checkcast java.lang.Comparable
aload 0 /* this */
getfield java.util.ComparableTimSort.a:[Ljava/lang/Object;
iload 2 /* base1 */
iload 3 /* len1 */
iconst_0
invokestatic java.util.ComparableTimSort.gallopRight:(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
istore 6 /* k */
start local 6 // int k
16: .line 463
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 17
iload 6 /* k */
ifge 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: .line 464
StackMap locals: int
StackMap stack:
iload 2 /* base1 */
iload 6 /* k */
iadd
istore 2 /* base1 */
18: .line 465
iload 3 /* len1 */
iload 6 /* k */
isub
istore 3 /* len1 */
19: .line 466
iload 3 /* len1 */
ifne 21
20: .line 467
return
21: .line 473
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.a:[Ljava/lang/Object;
iload 2 /* base1 */
iload 3 /* len1 */
iadd
iconst_1
isub
aaload
checkcast java.lang.Comparable
aload 0 /* this */
getfield java.util.ComparableTimSort.a:[Ljava/lang/Object;
22: .line 474
iload 4 /* base2 */
iload 5 /* len2 */
iload 5 /* len2 */
iconst_1
isub
23: .line 473
invokestatic java.util.ComparableTimSort.gallopLeft:(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
istore 5 /* len2 */
24: .line 475
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 25
iload 5 /* len2 */
ifge 25
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
25: .line 476
StackMap locals:
StackMap stack:
iload 5 /* len2 */
ifne 27
26: .line 477
return
27: .line 480
StackMap locals:
StackMap stack:
iload 3 /* len1 */
iload 5 /* len2 */
if_icmpgt 29
28: .line 481
aload 0 /* this */
iload 2 /* base1 */
iload 3 /* len1 */
iload 4 /* base2 */
iload 5 /* len2 */
invokevirtual java.util.ComparableTimSort.mergeLo:(IIII)V
goto 30
29: .line 483
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 2 /* base1 */
iload 3 /* len1 */
iload 4 /* base2 */
iload 5 /* len2 */
invokevirtual java.util.ComparableTimSort.mergeHi:(IIII)V
30: .line 484
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 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Ljava/util/ComparableTimSort;
0 31 1 i I
4 31 2 base1 I
5 31 3 len1 I
6 31 4 base2 I
7 31 5 len2 I
16 31 6 k I
MethodParameters:
Name Flags
i
private static int gallopLeft(java.lang.Comparable<java.lang.Object>, [], int, int, );
descriptor: (Ljava/lang/Comparable;[Ljava/lang/Object;III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=5
start local 0 // java.lang.Comparable key
start local 1 // java.lang.Object[] a
start local 2 // int base
start local 3 // int len
start local 4 // int hint
0: .line 505
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 2
iload 3 /* len */
ifle 1
iload 4 /* hint */
iflt 1
iload 4 /* hint */
iload 3 /* len */
if_icmplt 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 507
StackMap locals:
StackMap stack:
iconst_0
istore 5 /* lastOfs */
start local 5 // int lastOfs
3: .line 508
iconst_1
istore 6 /* ofs */
start local 6 // int ofs
4: .line 509
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifle 17
5: .line 511
iload 3 /* len */
iload 4 /* hint */
isub
istore 7 /* maxOfs */
start local 7 // int maxOfs
6: .line 512
goto 11
7: .line 513
StackMap locals: int int int
StackMap stack:
iload 6 /* ofs */
istore 5 /* lastOfs */
8: .line 514
iload 6 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 6 /* ofs */
9: .line 515
iload 6 /* ofs */
ifgt 11
10: .line 516
iload 7 /* maxOfs */
istore 6 /* ofs */
11: .line 512
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 7 /* maxOfs */
if_icmpge 12
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
iload 6 /* ofs */
iadd
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifgt 7
12: .line 518
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 7 /* maxOfs */
if_icmple 14
13: .line 519
iload 7 /* maxOfs */
istore 6 /* ofs */
14: .line 522
StackMap locals:
StackMap stack:
iload 5 /* lastOfs */
iload 4 /* hint */
iadd
istore 5 /* lastOfs */
15: .line 523
iload 6 /* ofs */
iload 4 /* hint */
iadd
istore 6 /* ofs */
end local 7 // int maxOfs
16: .line 524
goto 29
17: .line 526
StackMap locals:
StackMap stack:
iload 4 /* hint */
iconst_1
iadd
istore 7 /* maxOfs */
start local 7 // int maxOfs
18: .line 527
goto 23
19: .line 528
StackMap locals: int
StackMap stack:
iload 6 /* ofs */
istore 5 /* lastOfs */
20: .line 529
iload 6 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 6 /* ofs */
21: .line 530
iload 6 /* ofs */
ifgt 23
22: .line 531
iload 7 /* maxOfs */
istore 6 /* ofs */
23: .line 527
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 7 /* maxOfs */
if_icmpge 24
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
iload 6 /* ofs */
isub
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifle 19
24: .line 533
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 7 /* maxOfs */
if_icmple 26
25: .line 534
iload 7 /* maxOfs */
istore 6 /* ofs */
26: .line 537
StackMap locals:
StackMap stack:
iload 5 /* lastOfs */
istore 8 /* tmp */
start local 8 // int tmp
27: .line 538
iload 4 /* hint */
iload 6 /* ofs */
isub
istore 5 /* lastOfs */
28: .line 539
iload 4 /* hint */
iload 8 /* tmp */
isub
istore 6 /* ofs */
end local 8 // int tmp
end local 7 // int maxOfs
29: .line 541
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 31
iconst_m1
iload 5 /* lastOfs */
if_icmpgt 30
iload 5 /* lastOfs */
iload 6 /* ofs */
if_icmpge 30
iload 6 /* ofs */
iload 3 /* len */
if_icmple 31
StackMap locals:
StackMap stack:
30: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
31: .line 548
StackMap locals:
StackMap stack:
iinc 5 /* lastOfs */ 1
32: .line 549
goto 37
33: .line 550
StackMap locals:
StackMap stack:
iload 5 /* lastOfs */
iload 6 /* ofs */
iload 5 /* lastOfs */
isub
iconst_1
iushr
iadd
istore 7 /* m */
start local 7 // int m
34: .line 552
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 7 /* m */
iadd
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifle 36
35: .line 553
iload 7 /* m */
iconst_1
iadd
istore 5 /* lastOfs */
goto 37
36: .line 555
StackMap locals: int
StackMap stack:
iload 7 /* m */
istore 6 /* ofs */
end local 7 // int m
37: .line 549
StackMap locals:
StackMap stack:
iload 5 /* lastOfs */
iload 6 /* ofs */
if_icmplt 33
38: .line 557
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 39
iload 5 /* lastOfs */
iload 6 /* ofs */
if_icmpeq 39
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: .line 558
StackMap locals:
StackMap stack:
iload 6 /* ofs */
ireturn
end local 6 // int ofs
end local 5 // int lastOfs
end local 4 // int hint
end local 3 // int len
end local 2 // int base
end local 1 // java.lang.Object[] a
end local 0 // java.lang.Comparable key
LocalVariableTable:
Start End Slot Name Signature
0 40 0 key Ljava/lang/Comparable<Ljava/lang/Object;>;
0 40 1 a [Ljava/lang/Object;
0 40 2 base I
0 40 3 len I
0 40 4 hint I
3 40 5 lastOfs I
4 40 6 ofs I
6 16 7 maxOfs I
18 29 7 maxOfs I
27 29 8 tmp I
34 37 7 m I
Signature: (Ljava/lang/Comparable<Ljava/lang/Object;>;[Ljava/lang/Object;III)I
MethodParameters:
Name Flags
key
a
base
len
hint
private static int gallopRight(java.lang.Comparable<java.lang.Object>, [], int, int, );
descriptor: (Ljava/lang/Comparable;[Ljava/lang/Object;III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=9, args_size=5
start local 0 // java.lang.Comparable key
start local 1 // java.lang.Object[] a
start local 2 // int base
start local 3 // int len
start local 4 // int hint
0: .line 575
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 2
iload 3 /* len */
ifle 1
iload 4 /* hint */
iflt 1
iload 4 /* hint */
iload 3 /* len */
if_icmplt 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 577
StackMap locals:
StackMap stack:
iconst_1
istore 5 /* ofs */
start local 5 // int ofs
3: .line 578
iconst_0
istore 6 /* lastOfs */
start local 6 // int lastOfs
4: .line 579
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifge 18
5: .line 581
iload 4 /* hint */
iconst_1
iadd
istore 7 /* maxOfs */
start local 7 // int maxOfs
6: .line 582
goto 11
7: .line 583
StackMap locals: int int int
StackMap stack:
iload 5 /* ofs */
istore 6 /* lastOfs */
8: .line 584
iload 5 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 5 /* ofs */
9: .line 585
iload 5 /* ofs */
ifgt 11
10: .line 586
iload 7 /* maxOfs */
istore 5 /* ofs */
11: .line 582
StackMap locals:
StackMap stack:
iload 5 /* ofs */
iload 7 /* maxOfs */
if_icmpge 12
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
iload 5 /* ofs */
isub
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
iflt 7
12: .line 588
StackMap locals:
StackMap stack:
iload 5 /* ofs */
iload 7 /* maxOfs */
if_icmple 14
13: .line 589
iload 7 /* maxOfs */
istore 5 /* ofs */
14: .line 592
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
istore 8 /* tmp */
start local 8 // int tmp
15: .line 593
iload 4 /* hint */
iload 5 /* ofs */
isub
istore 6 /* lastOfs */
16: .line 594
iload 4 /* hint */
iload 8 /* tmp */
isub
istore 5 /* ofs */
end local 8 // int tmp
end local 7 // int maxOfs
17: .line 595
goto 29
18: .line 597
StackMap locals:
StackMap stack:
iload 3 /* len */
iload 4 /* hint */
isub
istore 7 /* maxOfs */
start local 7 // int maxOfs
19: .line 598
goto 24
20: .line 599
StackMap locals: int
StackMap stack:
iload 5 /* ofs */
istore 6 /* lastOfs */
21: .line 600
iload 5 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 5 /* ofs */
22: .line 601
iload 5 /* ofs */
ifgt 24
23: .line 602
iload 7 /* maxOfs */
istore 5 /* ofs */
24: .line 598
StackMap locals:
StackMap stack:
iload 5 /* ofs */
iload 7 /* maxOfs */
if_icmpge 25
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
iload 5 /* ofs */
iadd
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifge 20
25: .line 604
StackMap locals:
StackMap stack:
iload 5 /* ofs */
iload 7 /* maxOfs */
if_icmple 27
26: .line 605
iload 7 /* maxOfs */
istore 5 /* ofs */
27: .line 608
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
iload 4 /* hint */
iadd
istore 6 /* lastOfs */
28: .line 609
iload 5 /* ofs */
iload 4 /* hint */
iadd
istore 5 /* ofs */
end local 7 // int maxOfs
29: .line 611
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 31
iconst_m1
iload 6 /* lastOfs */
if_icmpgt 30
iload 6 /* lastOfs */
iload 5 /* ofs */
if_icmpge 30
iload 5 /* ofs */
iload 3 /* len */
if_icmple 31
StackMap locals:
StackMap stack:
30: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
31: .line 618
StackMap locals:
StackMap stack:
iinc 6 /* lastOfs */ 1
32: .line 619
goto 37
33: .line 620
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
iload 5 /* ofs */
iload 6 /* lastOfs */
isub
iconst_1
iushr
iadd
istore 7 /* m */
start local 7 // int m
34: .line 622
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 7 /* m */
iadd
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifge 36
35: .line 623
iload 7 /* m */
istore 5 /* ofs */
goto 37
36: .line 625
StackMap locals: int
StackMap stack:
iload 7 /* m */
iconst_1
iadd
istore 6 /* lastOfs */
end local 7 // int m
37: .line 619
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
iload 5 /* ofs */
if_icmplt 33
38: .line 627
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 39
iload 6 /* lastOfs */
iload 5 /* ofs */
if_icmpeq 39
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: .line 628
StackMap locals:
StackMap stack:
iload 5 /* ofs */
ireturn
end local 6 // int lastOfs
end local 5 // int ofs
end local 4 // int hint
end local 3 // int len
end local 2 // int base
end local 1 // java.lang.Object[] a
end local 0 // java.lang.Comparable key
LocalVariableTable:
Start End Slot Name Signature
0 40 0 key Ljava/lang/Comparable<Ljava/lang/Object;>;
0 40 1 a [Ljava/lang/Object;
0 40 2 base I
0 40 3 len I
0 40 4 hint I
3 40 5 ofs I
4 40 6 lastOfs I
6 17 7 maxOfs I
15 17 8 tmp I
19 29 7 maxOfs I
34 37 7 m I
Signature: (Ljava/lang/Comparable<Ljava/lang/Object;>;[Ljava/lang/Object;III)I
MethodParameters:
Name Flags
key
a
base
len
hint
private void mergeLo(int, int, int, int);
descriptor: (IIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=5
start local 0 // java.util.ComparableTimSort this
start local 1 // int base1
start local 2 // int len1
start local 3 // int base2
start local 4 // int len2
0: .line 649
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 2
iload 2 /* len1 */
ifle 1
iload 4 /* len2 */
ifle 1
iload 1 /* base1 */
iload 2 /* len1 */
iadd
iload 3 /* base2 */
if_icmpeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 652
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.a:[Ljava/lang/Object;
astore 5 /* a */
start local 5 // java.lang.Object[] a
3: .line 653
aload 0 /* this */
iload 2 /* len1 */
invokevirtual java.util.ComparableTimSort.ensureCapacity:(I)[Ljava/lang/Object;
astore 6 /* tmp */
start local 6 // java.lang.Object[] tmp
4: .line 655
aload 0 /* this */
getfield java.util.ComparableTimSort.tmpBase:I
istore 7 /* cursor1 */
start local 7 // int cursor1
5: .line 656
iload 3 /* base2 */
istore 8 /* cursor2 */
start local 8 // int cursor2
6: .line 657
iload 1 /* base1 */
istore 9 /* dest */
start local 9 // int dest
7: .line 658
aload 5 /* a */
iload 1 /* base1 */
aload 6 /* tmp */
iload 7 /* cursor1 */
iload 2 /* len1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: .line 661
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
aaload
aastore
9: .line 662
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 12
10: .line 663
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
11: .line 664
return
12: .line 666
StackMap locals: java.util.ComparableTimSort int int int int java.lang.Object[] java.lang.Object[] int int int
StackMap stack:
iload 2 /* len1 */
iconst_1
if_icmpne 16
13: .line 667
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
14: .line 668
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iadd
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
aastore
15: .line 669
return
16: .line 672
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.minGallop:I
istore 10 /* minGallop */
start local 10 // int minGallop
17: .line 675
StackMap locals: int
StackMap stack:
iconst_0
istore 11 /* count1 */
start local 11 // int count1
18: .line 676
iconst_0
istore 12 /* count2 */
start local 12 // int count2
19: .line 683
StackMap locals: int int
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 21
iload 2 /* len1 */
iconst_1
if_icmple 20
iload 4 /* len2 */
ifgt 21
StackMap locals:
StackMap stack:
20: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
21: .line 684
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 8 /* cursor2 */
aaload
checkcast java.lang.Comparable
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifge 27
22: .line 685
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
aaload
aastore
23: .line 686
iinc 12 /* count2 */ 1
24: .line 687
iconst_0
istore 11 /* count1 */
25: .line 688
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 32
26: .line 689
goto 68
27: .line 691
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 6 /* tmp */
iload 7 /* cursor1 */
iinc 7 /* cursor1 */ 1
aaload
aastore
28: .line 692
iinc 11 /* count1 */ 1
29: .line 693
iconst_0
istore 12 /* count2 */
30: .line 694
iinc 2 /* len1 */ -1
iload 2 /* len1 */
iconst_1
if_icmpne 32
31: .line 695
goto 68
32: .line 697
StackMap locals:
StackMap stack:
iload 11 /* count1 */
iload 12 /* count2 */
ior
iload 10 /* minGallop */
33: .line 682
if_icmplt 19
34: .line 705
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 36
iload 2 /* len1 */
iconst_1
if_icmple 35
iload 4 /* len2 */
ifgt 36
StackMap locals:
StackMap stack:
35: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
36: .line 706
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 8 /* cursor2 */
aaload
checkcast java.lang.Comparable
aload 6 /* tmp */
iload 7 /* cursor1 */
iload 2 /* len1 */
iconst_0
invokestatic java.util.ComparableTimSort.gallopRight:(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
istore 11 /* count1 */
37: .line 707
iload 11 /* count1 */
ifeq 44
38: .line 708
aload 6 /* tmp */
iload 7 /* cursor1 */
aload 5 /* a */
iload 9 /* dest */
iload 11 /* count1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
39: .line 709
iload 9 /* dest */
iload 11 /* count1 */
iadd
istore 9 /* dest */
40: .line 710
iload 7 /* cursor1 */
iload 11 /* count1 */
iadd
istore 7 /* cursor1 */
41: .line 711
iload 2 /* len1 */
iload 11 /* count1 */
isub
istore 2 /* len1 */
42: .line 712
iload 2 /* len1 */
iconst_1
if_icmpgt 44
43: .line 713
goto 68
44: .line 715
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
aaload
aastore
45: .line 716
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 47
46: .line 717
goto 68
47: .line 719
StackMap locals:
StackMap stack:
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
checkcast java.lang.Comparable
aload 5 /* a */
iload 8 /* cursor2 */
iload 4 /* len2 */
iconst_0
invokestatic java.util.ComparableTimSort.gallopLeft:(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
istore 12 /* count2 */
48: .line 720
iload 12 /* count2 */
ifeq 55
49: .line 721
aload 5 /* a */
iload 8 /* cursor2 */
aload 5 /* a */
iload 9 /* dest */
iload 12 /* count2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
50: .line 722
iload 9 /* dest */
iload 12 /* count2 */
iadd
istore 9 /* dest */
51: .line 723
iload 8 /* cursor2 */
iload 12 /* count2 */
iadd
istore 8 /* cursor2 */
52: .line 724
iload 4 /* len2 */
iload 12 /* count2 */
isub
istore 4 /* len2 */
53: .line 725
iload 4 /* len2 */
ifne 55
54: .line 726
goto 68
55: .line 728
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 6 /* tmp */
iload 7 /* cursor1 */
iinc 7 /* cursor1 */ 1
aaload
aastore
56: .line 729
iinc 2 /* len1 */ -1
iload 2 /* len1 */
iconst_1
if_icmpne 58
57: .line 730
goto 68
58: .line 731
StackMap locals:
StackMap stack:
iinc 10 /* minGallop */ -1
59: .line 732
iload 11 /* count1 */
bipush 7
if_icmplt 60
iconst_1
goto 61
StackMap locals:
StackMap stack:
60: iconst_0
StackMap locals:
StackMap stack: int
61: iload 12 /* count2 */
bipush 7
if_icmplt 62
iconst_1
goto 63
StackMap locals:
StackMap stack: int
62: iconst_0
63: .line 704
StackMap locals: java.util.ComparableTimSort int int int int java.lang.Object[] java.lang.Object[] int int int int int int
StackMap stack: int int
ior
ifne 34
64: .line 733
iload 10 /* minGallop */
ifge 66
65: .line 734
iconst_0
istore 10 /* minGallop */
66: .line 735
StackMap locals:
StackMap stack:
iinc 10 /* minGallop */ 2
end local 12 // int count2
end local 11 // int count1
67: .line 674
goto 17
68: .line 737
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 10 /* minGallop */
iconst_1
if_icmpge 69
iconst_1
goto 70
StackMap locals:
StackMap stack: java.util.ComparableTimSort
69: iload 10 /* minGallop */
StackMap locals: java.util.ComparableTimSort int int int int java.lang.Object[] java.lang.Object[] int int int int
StackMap stack: java.util.ComparableTimSort int
70: putfield java.util.ComparableTimSort.minGallop:I
71: .line 739
iload 2 /* len1 */
iconst_1
if_icmpne 76
72: .line 740
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 73
iload 4 /* len2 */
ifgt 73
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
73: .line 741
StackMap locals:
StackMap stack:
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
74: .line 742
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iadd
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
aastore
75: .line 743
goto 83
StackMap locals:
StackMap stack:
76: iload 2 /* len1 */
ifne 80
77: .line 744
new java.lang.IllegalArgumentException
dup
78: .line 745
ldc "Comparison method violates its general contract!"
79: .line 744
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
80: .line 747
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 81
iload 4 /* len2 */
ifeq 81
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
81: .line 748
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 82
iload 2 /* len1 */
iconst_1
if_icmpgt 82
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
82: .line 749
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
83: .line 751
StackMap locals:
StackMap stack:
return
end local 10 // int minGallop
end local 9 // int dest
end local 8 // int cursor2
end local 7 // int cursor1
end local 6 // java.lang.Object[] tmp
end local 5 // java.lang.Object[] a
end local 4 // int len2
end local 3 // int base2
end local 2 // int len1
end local 1 // int base1
end local 0 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 84 0 this Ljava/util/ComparableTimSort;
0 84 1 base1 I
0 84 2 len1 I
0 84 3 base2 I
0 84 4 len2 I
3 84 5 a [Ljava/lang/Object;
4 84 6 tmp [Ljava/lang/Object;
5 84 7 cursor1 I
6 84 8 cursor2 I
7 84 9 dest I
17 84 10 minGallop I
18 67 11 count1 I
19 67 12 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=7, locals=14, args_size=5
start local 0 // java.util.ComparableTimSort this
start local 1 // int base1
start local 2 // int len1
start local 3 // int base2
start local 4 // int len2
0: .line 766
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 2
iload 2 /* len1 */
ifle 1
iload 4 /* len2 */
ifle 1
iload 1 /* base1 */
iload 2 /* len1 */
iadd
iload 3 /* base2 */
if_icmpeq 2
StackMap locals:
StackMap stack:
1: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 769
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.a:[Ljava/lang/Object;
astore 5 /* a */
start local 5 // java.lang.Object[] a
3: .line 770
aload 0 /* this */
iload 4 /* len2 */
invokevirtual java.util.ComparableTimSort.ensureCapacity:(I)[Ljava/lang/Object;
astore 6 /* tmp */
start local 6 // java.lang.Object[] tmp
4: .line 771
aload 0 /* this */
getfield java.util.ComparableTimSort.tmpBase:I
istore 7 /* tmpBase */
start local 7 // int tmpBase
5: .line 772
aload 5 /* a */
iload 3 /* base2 */
aload 6 /* tmp */
iload 7 /* tmpBase */
iload 4 /* len2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: .line 774
iload 1 /* base1 */
iload 2 /* len1 */
iadd
iconst_1
isub
istore 8 /* cursor1 */
start local 8 // int cursor1
7: .line 775
iload 7 /* tmpBase */
iload 4 /* len2 */
iadd
iconst_1
isub
istore 9 /* cursor2 */
start local 9 // int cursor2
8: .line 776
iload 3 /* base2 */
iload 4 /* len2 */
iadd
iconst_1
isub
istore 10 /* dest */
start local 10 // int dest
9: .line 779
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 5 /* a */
iload 8 /* cursor1 */
iinc 8 /* cursor1 */ -1
aaload
aastore
10: .line 780
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 13
11: .line 781
aload 6 /* tmp */
iload 7 /* tmpBase */
aload 5 /* a */
iload 10 /* dest */
iload 4 /* len2 */
iconst_1
isub
isub
iload 4 /* len2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: .line 782
return
13: .line 784
StackMap locals: java.util.ComparableTimSort int int int int java.lang.Object[] java.lang.Object[] int int int int
StackMap stack:
iload 4 /* len2 */
iconst_1
if_icmpne 19
14: .line 785
iload 10 /* dest */
iload 2 /* len1 */
isub
istore 10 /* dest */
15: .line 786
iload 8 /* cursor1 */
iload 2 /* len1 */
isub
istore 8 /* cursor1 */
16: .line 787
aload 5 /* a */
iload 8 /* cursor1 */
iconst_1
iadd
aload 5 /* a */
iload 10 /* dest */
iconst_1
iadd
iload 2 /* len1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
17: .line 788
aload 5 /* a */
iload 10 /* dest */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
aastore
18: .line 789
return
19: .line 792
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.minGallop:I
istore 11 /* minGallop */
start local 11 // int minGallop
20: .line 795
StackMap locals: int
StackMap stack:
iconst_0
istore 12 /* count1 */
start local 12 // int count1
21: .line 796
iconst_0
istore 13 /* count2 */
start local 13 // int count2
22: .line 803
StackMap locals: int int
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 24
iload 2 /* len1 */
ifle 23
iload 4 /* len2 */
iconst_1
if_icmpgt 24
StackMap locals:
StackMap stack:
23: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
24: .line 804
StackMap locals:
StackMap stack:
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
checkcast java.lang.Comparable
aload 5 /* a */
iload 8 /* cursor1 */
aaload
invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
ifge 30
25: .line 805
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 5 /* a */
iload 8 /* cursor1 */
iinc 8 /* cursor1 */ -1
aaload
aastore
26: .line 806
iinc 12 /* count1 */ 1
27: .line 807
iconst_0
istore 13 /* count2 */
28: .line 808
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 35
29: .line 809
goto 71
30: .line 811
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 6 /* tmp */
iload 9 /* cursor2 */
iinc 9 /* cursor2 */ -1
aaload
aastore
31: .line 812
iinc 13 /* count2 */ 1
32: .line 813
iconst_0
istore 12 /* count1 */
33: .line 814
iinc 4 /* len2 */ -1
iload 4 /* len2 */
iconst_1
if_icmpne 35
34: .line 815
goto 71
35: .line 817
StackMap locals:
StackMap stack:
iload 12 /* count1 */
iload 13 /* count2 */
ior
iload 11 /* minGallop */
36: .line 802
if_icmplt 22
37: .line 825
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 39
iload 2 /* len1 */
ifle 38
iload 4 /* len2 */
iconst_1
if_icmpgt 39
StackMap locals:
StackMap stack:
38: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: .line 826
StackMap locals:
StackMap stack:
iload 2 /* len1 */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
checkcast java.lang.Comparable
aload 5 /* a */
iload 1 /* base1 */
iload 2 /* len1 */
iload 2 /* len1 */
iconst_1
isub
invokestatic java.util.ComparableTimSort.gallopRight:(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
isub
istore 12 /* count1 */
40: .line 827
iload 12 /* count1 */
ifeq 47
41: .line 828
iload 10 /* dest */
iload 12 /* count1 */
isub
istore 10 /* dest */
42: .line 829
iload 8 /* cursor1 */
iload 12 /* count1 */
isub
istore 8 /* cursor1 */
43: .line 830
iload 2 /* len1 */
iload 12 /* count1 */
isub
istore 2 /* len1 */
44: .line 831
aload 5 /* a */
iload 8 /* cursor1 */
iconst_1
iadd
aload 5 /* a */
iload 10 /* dest */
iconst_1
iadd
iload 12 /* count1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
45: .line 832
iload 2 /* len1 */
ifne 47
46: .line 833
goto 71
47: .line 835
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 6 /* tmp */
iload 9 /* cursor2 */
iinc 9 /* cursor2 */ -1
aaload
aastore
48: .line 836
iinc 4 /* len2 */ -1
iload 4 /* len2 */
iconst_1
if_icmpne 50
49: .line 837
goto 71
50: .line 839
StackMap locals:
StackMap stack:
iload 4 /* len2 */
aload 5 /* a */
iload 8 /* cursor1 */
aaload
checkcast java.lang.Comparable
aload 6 /* tmp */
iload 7 /* tmpBase */
iload 4 /* len2 */
iload 4 /* len2 */
iconst_1
isub
invokestatic java.util.ComparableTimSort.gallopLeft:(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
isub
istore 13 /* count2 */
51: .line 840
iload 13 /* count2 */
ifeq 58
52: .line 841
iload 10 /* dest */
iload 13 /* count2 */
isub
istore 10 /* dest */
53: .line 842
iload 9 /* cursor2 */
iload 13 /* count2 */
isub
istore 9 /* cursor2 */
54: .line 843
iload 4 /* len2 */
iload 13 /* count2 */
isub
istore 4 /* len2 */
55: .line 844
aload 6 /* tmp */
iload 9 /* cursor2 */
iconst_1
iadd
aload 5 /* a */
iload 10 /* dest */
iconst_1
iadd
iload 13 /* count2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
56: .line 845
iload 4 /* len2 */
iconst_1
if_icmpgt 58
57: .line 846
goto 71
58: .line 848
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 5 /* a */
iload 8 /* cursor1 */
iinc 8 /* cursor1 */ -1
aaload
aastore
59: .line 849
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 61
60: .line 850
goto 71
61: .line 851
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ -1
62: .line 852
iload 12 /* count1 */
bipush 7
if_icmplt 63
iconst_1
goto 64
StackMap locals:
StackMap stack:
63: iconst_0
StackMap locals:
StackMap stack: int
64: iload 13 /* count2 */
bipush 7
if_icmplt 65
iconst_1
goto 66
StackMap locals:
StackMap stack: int
65: iconst_0
66: .line 824
StackMap locals: java.util.ComparableTimSort int int int int java.lang.Object[] java.lang.Object[] int int int int int int int
StackMap stack: int int
ior
ifne 37
67: .line 853
iload 11 /* minGallop */
ifge 69
68: .line 854
iconst_0
istore 11 /* minGallop */
69: .line 855
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ 2
end local 13 // int count2
end local 12 // int count1
70: .line 794
goto 20
71: .line 857
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* minGallop */
iconst_1
if_icmpge 72
iconst_1
goto 73
StackMap locals:
StackMap stack: java.util.ComparableTimSort
72: iload 11 /* minGallop */
StackMap locals: java.util.ComparableTimSort int int int int java.lang.Object[] java.lang.Object[] int int int int int
StackMap stack: java.util.ComparableTimSort int
73: putfield java.util.ComparableTimSort.minGallop:I
74: .line 859
iload 4 /* len2 */
iconst_1
if_icmpne 81
75: .line 860
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 76
iload 2 /* len1 */
ifgt 76
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
76: .line 861
StackMap locals:
StackMap stack:
iload 10 /* dest */
iload 2 /* len1 */
isub
istore 10 /* dest */
77: .line 862
iload 8 /* cursor1 */
iload 2 /* len1 */
isub
istore 8 /* cursor1 */
78: .line 863
aload 5 /* a */
iload 8 /* cursor1 */
iconst_1
iadd
aload 5 /* a */
iload 10 /* dest */
iconst_1
iadd
iload 2 /* len1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
79: .line 864
aload 5 /* a */
iload 10 /* dest */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
aastore
80: .line 865
goto 88
StackMap locals:
StackMap stack:
81: iload 4 /* len2 */
ifne 85
82: .line 866
new java.lang.IllegalArgumentException
dup
83: .line 867
ldc "Comparison method violates its general contract!"
84: .line 866
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
85: .line 869
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 86
iload 2 /* len1 */
ifeq 86
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
86: .line 870
StackMap locals:
StackMap stack:
getstatic java.util.ComparableTimSort.$assertionsDisabled:Z
ifne 87
iload 4 /* len2 */
ifgt 87
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
87: .line 871
StackMap locals:
StackMap stack:
aload 6 /* tmp */
iload 7 /* tmpBase */
aload 5 /* a */
iload 10 /* dest */
iload 4 /* len2 */
iconst_1
isub
isub
iload 4 /* len2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
88: .line 873
StackMap locals:
StackMap stack:
return
end local 11 // int minGallop
end local 10 // int dest
end local 9 // int cursor2
end local 8 // int cursor1
end local 7 // int tmpBase
end local 6 // java.lang.Object[] tmp
end local 5 // java.lang.Object[] a
end local 4 // int len2
end local 3 // int base2
end local 2 // int len1
end local 1 // int base1
end local 0 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 89 0 this Ljava/util/ComparableTimSort;
0 89 1 base1 I
0 89 2 len1 I
0 89 3 base2 I
0 89 4 len2 I
3 89 5 a [Ljava/lang/Object;
4 89 6 tmp [Ljava/lang/Object;
5 89 7 tmpBase I
7 89 8 cursor1 I
8 89 9 cursor2 I
9 89 10 dest I
20 89 11 minGallop I
21 70 12 count1 I
22 70 13 count2 I
MethodParameters:
Name Flags
base1
len1
base2
len2
private java.lang.Object[] ensureCapacity(int);
descriptor: (I)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 // java.util.ComparableTimSort this
start local 1 // int minCapacity
0: .line 884
aload 0 /* this */
getfield java.util.ComparableTimSort.tmpLen:I
iload 1 /* minCapacity */
if_icmpge 15
1: .line 886
iload 1 /* minCapacity */
istore 2 /* newSize */
start local 2 // int newSize
2: .line 887
iload 2 /* newSize */
iload 2 /* newSize */
iconst_1
ishr
ior
istore 2 /* newSize */
3: .line 888
iload 2 /* newSize */
iload 2 /* newSize */
iconst_2
ishr
ior
istore 2 /* newSize */
4: .line 889
iload 2 /* newSize */
iload 2 /* newSize */
iconst_4
ishr
ior
istore 2 /* newSize */
5: .line 890
iload 2 /* newSize */
iload 2 /* newSize */
bipush 8
ishr
ior
istore 2 /* newSize */
6: .line 891
iload 2 /* newSize */
iload 2 /* newSize */
bipush 16
ishr
ior
istore 2 /* newSize */
7: .line 892
iinc 2 /* newSize */ 1
8: .line 894
iload 2 /* newSize */
ifge 10
9: .line 895
iload 1 /* minCapacity */
istore 2 /* newSize */
goto 11
10: .line 897
StackMap locals: int
StackMap stack:
iload 2 /* newSize */
aload 0 /* this */
getfield java.util.ComparableTimSort.a:[Ljava/lang/Object;
arraylength
iconst_1
iushr
invokestatic java.lang.Math.min:(II)I
istore 2 /* newSize */
11: .line 900
StackMap locals:
StackMap stack:
iload 2 /* newSize */
anewarray java.lang.Object
astore 3 /* newArray */
start local 3 // java.lang.Object[] newArray
12: .line 901
aload 0 /* this */
aload 3 /* newArray */
putfield java.util.ComparableTimSort.tmp:[Ljava/lang/Object;
13: .line 902
aload 0 /* this */
iload 2 /* newSize */
putfield java.util.ComparableTimSort.tmpLen:I
14: .line 903
aload 0 /* this */
iconst_0
putfield java.util.ComparableTimSort.tmpBase:I
end local 3 // java.lang.Object[] newArray
end local 2 // int newSize
15: .line 905
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.tmp:[Ljava/lang/Object;
areturn
end local 1 // int minCapacity
end local 0 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljava/util/ComparableTimSort;
0 16 1 minCapacity I
2 15 2 newSize I
12 15 3 newArray [Ljava/lang/Object;
MethodParameters:
Name Flags
minCapacity
}
SourceFile: "ComparableTimSort.java"