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 404
goto 10
1: .line 405
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 406
iload 1 /* n */
ifle 3
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_icmple 4
3: .line 407
StackMap locals: int
StackMap stack:
iload 1 /* n */
iconst_1
if_icmple 7
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* n */
iconst_2
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
isub
iaload
iadd
if_icmpgt 7
4: .line 408
StackMap locals:
StackMap stack:
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 9
5: .line 409
iinc 1 /* n */ -1
6: .line 410
goto 9
StackMap locals:
StackMap stack:
7: iload 1 /* n */
iflt 11
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_icmple 9
8: .line 411
goto 11
9: .line 413
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* n */
invokevirtual java.util.ComparableTimSort.mergeAt:(I)V
end local 1 // int n
10: .line 404
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_1
if_icmpgt 1
11: .line 415
StackMap locals:
StackMap stack:
return
end local 0 // java.util.ComparableTimSort this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/ComparableTimSort;
2 10 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 422
goto 5
1: .line 423
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 424
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 425
iinc 1 /* n */ -1
4: .line 426
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 422
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_1
if_icmpgt 1
6: .line 428
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 439
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 440
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 441
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 443
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 444
aload 0 /* this */
getfield java.util.ComparableTimSort.runLen:[I
iload 1 /* i */
iaload
istore 3 /* len1 */
start local 3 // int len1
5: .line 445
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 446
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 447
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 448
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 455
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 456
iload 1 /* i */
aload 0 /* this */
getfield java.util.ComparableTimSort.stackSize:I
iconst_3
isub
if_icmpne 14
12: .line 457
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 458
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 460
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 466
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 467
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 468
StackMap locals: int
StackMap stack:
iload 2 /* base1 */
iload 6 /* k */
iadd
istore 2 /* base1 */
18: .line 469
iload 3 /* len1 */
iload 6 /* k */
isub
istore 3 /* len1 */
19: .line 470
iload 3 /* len1 */
ifne 21
20: .line 471
return
21: .line 477
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 478
iload 4 /* base2 */
iload 5 /* len2 */
iload 5 /* len2 */
iconst_1
isub
23: .line 477
invokestatic java.util.ComparableTimSort.gallopLeft:(Ljava/lang/Comparable;[Ljava/lang/Object;III)I
istore 5 /* len2 */
24: .line 479
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 480
StackMap locals:
StackMap stack:
iload 5 /* len2 */
ifne 27
26: .line 481
return
27: .line 484
StackMap locals:
StackMap stack:
iload 3 /* len1 */
iload 5 /* len2 */
if_icmpgt 29
28: .line 485
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 487
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 488
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 509
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 511
StackMap locals:
StackMap stack:
iconst_0
istore 5 /* lastOfs */
start local 5 // int lastOfs
3: .line 512
iconst_1
istore 6 /* ofs */
start local 6 // int ofs
4: .line 513
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 515
iload 3 /* len */
iload 4 /* hint */
isub
istore 7 /* maxOfs */
start local 7 // int maxOfs
6: .line 516
goto 11
7: .line 517
StackMap locals: int int int
StackMap stack:
iload 6 /* ofs */
istore 5 /* lastOfs */
8: .line 518
iload 6 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 6 /* ofs */
9: .line 519
iload 6 /* ofs */
ifgt 11
10: .line 520
iload 7 /* maxOfs */
istore 6 /* ofs */
11: .line 516
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 522
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 7 /* maxOfs */
if_icmple 14
13: .line 523
iload 7 /* maxOfs */
istore 6 /* ofs */
14: .line 526
StackMap locals:
StackMap stack:
iload 5 /* lastOfs */
iload 4 /* hint */
iadd
istore 5 /* lastOfs */
15: .line 527
iload 6 /* ofs */
iload 4 /* hint */
iadd
istore 6 /* ofs */
end local 7 // int maxOfs
16: .line 528
goto 29
17: .line 530
StackMap locals:
StackMap stack:
iload 4 /* hint */
iconst_1
iadd
istore 7 /* maxOfs */
start local 7 // int maxOfs
18: .line 531
goto 23
19: .line 532
StackMap locals: int
StackMap stack:
iload 6 /* ofs */
istore 5 /* lastOfs */
20: .line 533
iload 6 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 6 /* ofs */
21: .line 534
iload 6 /* ofs */
ifgt 23
22: .line 535
iload 7 /* maxOfs */
istore 6 /* ofs */
23: .line 531
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 537
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 7 /* maxOfs */
if_icmple 26
25: .line 538
iload 7 /* maxOfs */
istore 6 /* ofs */
26: .line 541
StackMap locals:
StackMap stack:
iload 5 /* lastOfs */
istore 8 /* tmp */
start local 8 // int tmp
27: .line 542
iload 4 /* hint */
iload 6 /* ofs */
isub
istore 5 /* lastOfs */
28: .line 543
iload 4 /* hint */
iload 8 /* tmp */
isub
istore 6 /* ofs */
end local 8 // int tmp
end local 7 // int maxOfs
29: .line 545
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 552
StackMap locals:
StackMap stack:
iinc 5 /* lastOfs */ 1
32: .line 553
goto 37
33: .line 554
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 556
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 557
iload 7 /* m */
iconst_1
iadd
istore 5 /* lastOfs */
goto 37
36: .line 559
StackMap locals: int
StackMap stack:
iload 7 /* m */
istore 6 /* ofs */
end local 7 // int m
37: .line 553
StackMap locals:
StackMap stack:
iload 5 /* lastOfs */
iload 6 /* ofs */
if_icmplt 33
38: .line 561
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 562
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 579
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 581
StackMap locals:
StackMap stack:
iconst_1
istore 5 /* ofs */
start local 5 // int ofs
3: .line 582
iconst_0
istore 6 /* lastOfs */
start local 6 // int lastOfs
4: .line 583
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 585
iload 4 /* hint */
iconst_1
iadd
istore 7 /* maxOfs */
start local 7 // int maxOfs
6: .line 586
goto 11
7: .line 587
StackMap locals: int int int
StackMap stack:
iload 5 /* ofs */
istore 6 /* lastOfs */
8: .line 588
iload 5 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 5 /* ofs */
9: .line 589
iload 5 /* ofs */
ifgt 11
10: .line 590
iload 7 /* maxOfs */
istore 5 /* ofs */
11: .line 586
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 592
StackMap locals:
StackMap stack:
iload 5 /* ofs */
iload 7 /* maxOfs */
if_icmple 14
13: .line 593
iload 7 /* maxOfs */
istore 5 /* ofs */
14: .line 596
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
istore 8 /* tmp */
start local 8 // int tmp
15: .line 597
iload 4 /* hint */
iload 5 /* ofs */
isub
istore 6 /* lastOfs */
16: .line 598
iload 4 /* hint */
iload 8 /* tmp */
isub
istore 5 /* ofs */
end local 8 // int tmp
end local 7 // int maxOfs
17: .line 599
goto 29
18: .line 601
StackMap locals:
StackMap stack:
iload 3 /* len */
iload 4 /* hint */
isub
istore 7 /* maxOfs */
start local 7 // int maxOfs
19: .line 602
goto 24
20: .line 603
StackMap locals: int
StackMap stack:
iload 5 /* ofs */
istore 6 /* lastOfs */
21: .line 604
iload 5 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 5 /* ofs */
22: .line 605
iload 5 /* ofs */
ifgt 24
23: .line 606
iload 7 /* maxOfs */
istore 5 /* ofs */
24: .line 602
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 608
StackMap locals:
StackMap stack:
iload 5 /* ofs */
iload 7 /* maxOfs */
if_icmple 27
26: .line 609
iload 7 /* maxOfs */
istore 5 /* ofs */
27: .line 612
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
iload 4 /* hint */
iadd
istore 6 /* lastOfs */
28: .line 613
iload 5 /* ofs */
iload 4 /* hint */
iadd
istore 5 /* ofs */
end local 7 // int maxOfs
29: .line 615
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 622
StackMap locals:
StackMap stack:
iinc 6 /* lastOfs */ 1
32: .line 623
goto 37
33: .line 624
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 626
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 627
iload 7 /* m */
istore 5 /* ofs */
goto 37
36: .line 629
StackMap locals: int
StackMap stack:
iload 7 /* m */
iconst_1
iadd
istore 6 /* lastOfs */
end local 7 // int m
37: .line 623
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
iload 5 /* ofs */
if_icmplt 33
38: .line 631
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 632
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 653
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 656
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 657
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 659
aload 0 /* this */
getfield java.util.ComparableTimSort.tmpBase:I
istore 7 /* cursor1 */
start local 7 // int cursor1
5: .line 660
iload 3 /* base2 */
istore 8 /* cursor2 */
start local 8 // int cursor2
6: .line 661
iload 1 /* base1 */
istore 9 /* dest */
start local 9 // int dest
7: .line 662
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 665
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
aaload
aastore
9: .line 666
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 12
10: .line 667
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 668
return
12: .line 670
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 671
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 672
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iadd
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
aastore
15: .line 673
return
16: .line 676
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.minGallop:I
istore 10 /* minGallop */
start local 10 // int minGallop
17: .line 679
StackMap locals: int
StackMap stack:
iconst_0
istore 11 /* count1 */
start local 11 // int count1
18: .line 680
iconst_0
istore 12 /* count2 */
start local 12 // int count2
19: .line 687
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 688
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 689
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
aaload
aastore
23: .line 690
iinc 12 /* count2 */ 1
24: .line 691
iconst_0
istore 11 /* count1 */
25: .line 692
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 32
26: .line 693
goto 68
27: .line 695
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 696
iinc 11 /* count1 */ 1
29: .line 697
iconst_0
istore 12 /* count2 */
30: .line 698
iinc 2 /* len1 */ -1
iload 2 /* len1 */
iconst_1
if_icmpne 32
31: .line 699
goto 68
32: .line 701
StackMap locals:
StackMap stack:
iload 11 /* count1 */
iload 12 /* count2 */
ior
iload 10 /* minGallop */
33: .line 686
if_icmplt 19
34: .line 709
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 710
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 711
iload 11 /* count1 */
ifeq 44
38: .line 712
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 713
iload 9 /* dest */
iload 11 /* count1 */
iadd
istore 9 /* dest */
40: .line 714
iload 7 /* cursor1 */
iload 11 /* count1 */
iadd
istore 7 /* cursor1 */
41: .line 715
iload 2 /* len1 */
iload 11 /* count1 */
isub
istore 2 /* len1 */
42: .line 716
iload 2 /* len1 */
iconst_1
if_icmpgt 44
43: .line 717
goto 68
44: .line 719
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 720
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 47
46: .line 721
goto 68
47: .line 723
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 724
iload 12 /* count2 */
ifeq 55
49: .line 725
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 726
iload 9 /* dest */
iload 12 /* count2 */
iadd
istore 9 /* dest */
51: .line 727
iload 8 /* cursor2 */
iload 12 /* count2 */
iadd
istore 8 /* cursor2 */
52: .line 728
iload 4 /* len2 */
iload 12 /* count2 */
isub
istore 4 /* len2 */
53: .line 729
iload 4 /* len2 */
ifne 55
54: .line 730
goto 68
55: .line 732
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 733
iinc 2 /* len1 */ -1
iload 2 /* len1 */
iconst_1
if_icmpne 58
57: .line 734
goto 68
58: .line 735
StackMap locals:
StackMap stack:
iinc 10 /* minGallop */ -1
59: .line 736
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 708
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 737
iload 10 /* minGallop */
ifge 66
65: .line 738
iconst_0
istore 10 /* minGallop */
66: .line 739
StackMap locals:
StackMap stack:
iinc 10 /* minGallop */ 2
end local 12 // int count2
end local 11 // int count1
67: .line 678
goto 17
68: .line 741
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 743
iload 2 /* len1 */
iconst_1
if_icmpne 76
72: .line 744
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 745
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 746
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iadd
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
aastore
75: .line 747
goto 83
StackMap locals:
StackMap stack:
76: iload 2 /* len1 */
ifne 80
77: .line 748
new java.lang.IllegalArgumentException
dup
78: .line 749
ldc "Comparison method violates its general contract!"
79: .line 748
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
80: .line 751
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 752
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 753
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 755
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 770
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 773
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 774
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 775
aload 0 /* this */
getfield java.util.ComparableTimSort.tmpBase:I
istore 7 /* tmpBase */
start local 7 // int tmpBase
5: .line 776
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 778
iload 1 /* base1 */
iload 2 /* len1 */
iadd
iconst_1
isub
istore 8 /* cursor1 */
start local 8 // int cursor1
7: .line 779
iload 7 /* tmpBase */
iload 4 /* len2 */
iadd
iconst_1
isub
istore 9 /* cursor2 */
start local 9 // int cursor2
8: .line 780
iload 3 /* base2 */
iload 4 /* len2 */
iadd
iconst_1
isub
istore 10 /* dest */
start local 10 // int dest
9: .line 783
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 5 /* a */
iload 8 /* cursor1 */
iinc 8 /* cursor1 */ -1
aaload
aastore
10: .line 784
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 13
11: .line 785
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 786
return
13: .line 788
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 789
iload 10 /* dest */
iload 2 /* len1 */
isub
istore 10 /* dest */
15: .line 790
iload 8 /* cursor1 */
iload 2 /* len1 */
isub
istore 8 /* cursor1 */
16: .line 791
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 792
aload 5 /* a */
iload 10 /* dest */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
aastore
18: .line 793
return
19: .line 796
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.ComparableTimSort.minGallop:I
istore 11 /* minGallop */
start local 11 // int minGallop
20: .line 799
StackMap locals: int
StackMap stack:
iconst_0
istore 12 /* count1 */
start local 12 // int count1
21: .line 800
iconst_0
istore 13 /* count2 */
start local 13 // int count2
22: .line 807
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 808
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 809
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 5 /* a */
iload 8 /* cursor1 */
iinc 8 /* cursor1 */ -1
aaload
aastore
26: .line 810
iinc 12 /* count1 */ 1
27: .line 811
iconst_0
istore 13 /* count2 */
28: .line 812
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 35
29: .line 813
goto 71
30: .line 815
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 816
iinc 13 /* count2 */ 1
32: .line 817
iconst_0
istore 12 /* count1 */
33: .line 818
iinc 4 /* len2 */ -1
iload 4 /* len2 */
iconst_1
if_icmpne 35
34: .line 819
goto 71
35: .line 821
StackMap locals:
StackMap stack:
iload 12 /* count1 */
iload 13 /* count2 */
ior
iload 11 /* minGallop */
36: .line 806
if_icmplt 22
37: .line 829
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 830
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 831
iload 12 /* count1 */
ifeq 47
41: .line 832
iload 10 /* dest */
iload 12 /* count1 */
isub
istore 10 /* dest */
42: .line 833
iload 8 /* cursor1 */
iload 12 /* count1 */
isub
istore 8 /* cursor1 */
43: .line 834
iload 2 /* len1 */
iload 12 /* count1 */
isub
istore 2 /* len1 */
44: .line 835
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 836
iload 2 /* len1 */
ifne 47
46: .line 837
goto 71
47: .line 839
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 840
iinc 4 /* len2 */ -1
iload 4 /* len2 */
iconst_1
if_icmpne 50
49: .line 841
goto 71
50: .line 843
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 844
iload 13 /* count2 */
ifeq 58
52: .line 845
iload 10 /* dest */
iload 13 /* count2 */
isub
istore 10 /* dest */
53: .line 846
iload 9 /* cursor2 */
iload 13 /* count2 */
isub
istore 9 /* cursor2 */
54: .line 847
iload 4 /* len2 */
iload 13 /* count2 */
isub
istore 4 /* len2 */
55: .line 848
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 849
iload 4 /* len2 */
iconst_1
if_icmpgt 58
57: .line 850
goto 71
58: .line 852
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 853
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 61
60: .line 854
goto 71
61: .line 855
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ -1
62: .line 856
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 828
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 857
iload 11 /* minGallop */
ifge 69
68: .line 858
iconst_0
istore 11 /* minGallop */
69: .line 859
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ 2
end local 13 // int count2
end local 12 // int count1
70: .line 798
goto 20
71: .line 861
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 863
iload 4 /* len2 */
iconst_1
if_icmpne 81
75: .line 864
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 865
StackMap locals:
StackMap stack:
iload 10 /* dest */
iload 2 /* len1 */
isub
istore 10 /* dest */
77: .line 866
iload 8 /* cursor1 */
iload 2 /* len1 */
isub
istore 8 /* cursor1 */
78: .line 867
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 868
aload 5 /* a */
iload 10 /* dest */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
aastore
80: .line 869
goto 88
StackMap locals:
StackMap stack:
81: iload 4 /* len2 */
ifne 85
82: .line 870
new java.lang.IllegalArgumentException
dup
83: .line 871
ldc "Comparison method violates its general contract!"
84: .line 870
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
85: .line 873
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 874
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 875
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 877
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 888
aload 0 /* this */
getfield java.util.ComparableTimSort.tmpLen:I
iload 1 /* minCapacity */
if_icmpge 10
1: .line 890
iconst_m1
iload 1 /* minCapacity */
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
iushr
istore 2 /* newSize */
start local 2 // int newSize
2: .line 891
iinc 2 /* newSize */ 1
3: .line 893
iload 2 /* newSize */
ifge 5
4: .line 894
iload 1 /* minCapacity */
istore 2 /* newSize */
goto 6
5: .line 896
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 */
6: .line 899
StackMap locals:
StackMap stack:
iload 2 /* newSize */
anewarray java.lang.Object
astore 3 /* newArray */
start local 3 // java.lang.Object[] newArray
7: .line 900
aload 0 /* this */
aload 3 /* newArray */
putfield java.util.ComparableTimSort.tmp:[Ljava/lang/Object;
8: .line 901
aload 0 /* this */
iload 2 /* newSize */
putfield java.util.ComparableTimSort.tmpLen:I
9: .line 902
aload 0 /* this */
iconst_0
putfield java.util.ComparableTimSort.tmpBase:I
end local 3 // java.lang.Object[] newArray
end local 2 // int newSize
10: .line 904
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 11 0 this Ljava/util/ComparableTimSort;
0 11 1 minCapacity I
2 10 2 newSize I
7 10 3 newArray [Ljava/lang/Object;
MethodParameters:
Name Flags
minCapacity
}
SourceFile: "ComparableTimSort.java"