class java.util.TimSort<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.TimSort
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 T[] a;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [TT;
private final java.util.Comparator<? super T> c;
descriptor: Ljava/util/Comparator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Comparator<-TT;>;
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 T[] tmp;
descriptor: [Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Signature: [TT;
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 62
ldc Ljava/util/TimSort;
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.TimSort.$assertionsDisabled:Z
3: .line 112
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(T[], java.util.Comparator<? super T>, T[], int, );
descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;[Ljava/lang/Object;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=9, args_size=6
start local 0 // java.util.TimSort this
start local 1 // java.lang.Object[] a
start local 2 // java.util.Comparator c
start local 3 // java.lang.Object[] work
start local 4 // int workBase
start local 5 // int workLen
0: .line 146
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 103
aload 0 /* this */
bipush 7
putfield java.util.TimSort.minGallop:I
2: .line 133
aload 0 /* this */
iconst_0
putfield java.util.TimSort.stackSize:I
3: .line 147
aload 0 /* this */
aload 1 /* a */
putfield java.util.TimSort.a:[Ljava/lang/Object;
4: .line 148
aload 0 /* this */
aload 2 /* c */
putfield java.util.TimSort.c:Ljava/util/Comparator;
5: .line 151
aload 1 /* a */
arraylength
istore 6 /* len */
start local 6 // int len
6: .line 152
iload 6 /* len */
sipush 512
if_icmpge 8
7: .line 153
iload 6 /* len */
iconst_1
iushr
goto 9
StackMap locals: java.util.TimSort java.lang.Object[] java.util.Comparator java.lang.Object[] int int int
StackMap stack:
8: sipush 256
9: .line 152
StackMap locals:
StackMap stack: int
istore 7 /* tlen */
start local 7 // int tlen
10: .line 154
aload 3 /* work */
ifnull 11
iload 5 /* workLen */
iload 7 /* tlen */
if_icmplt 11
iload 4 /* workBase */
iload 7 /* tlen */
iadd
aload 3 /* work */
arraylength
if_icmple 17
11: .line 157
StackMap locals: int
StackMap stack:
aload 1 /* a */
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
iload 7 /* tlen */
12: .line 156
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 8 /* newArray */
start local 8 // java.lang.Object[] newArray
13: .line 158
aload 0 /* this */
aload 8 /* newArray */
putfield java.util.TimSort.tmp:[Ljava/lang/Object;
14: .line 159
aload 0 /* this */
iconst_0
putfield java.util.TimSort.tmpBase:I
15: .line 160
aload 0 /* this */
iload 7 /* tlen */
putfield java.util.TimSort.tmpLen:I
end local 8 // java.lang.Object[] newArray
16: .line 161
goto 20
17: .line 163
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 3 /* work */
putfield java.util.TimSort.tmp:[Ljava/lang/Object;
18: .line 164
aload 0 /* this */
iload 4 /* workBase */
putfield java.util.TimSort.tmpBase:I
19: .line 165
aload 0 /* this */
iload 5 /* workLen */
putfield java.util.TimSort.tmpLen:I
20: .line 182
StackMap locals:
StackMap stack:
iload 6 /* len */
bipush 120
if_icmpge 21
iconst_5
goto 24
21: .line 183
StackMap locals:
StackMap stack:
iload 6 /* len */
sipush 1542
if_icmpge 22
bipush 10
goto 24
22: .line 184
StackMap locals:
StackMap stack:
iload 6 /* len */
ldc 119151
if_icmpge 23
bipush 24
goto 24
StackMap locals:
StackMap stack:
23: bipush 49
24: .line 182
StackMap locals:
StackMap stack: int
istore 8 /* stackLen */
start local 8 // int stackLen
25: .line 185
aload 0 /* this */
iload 8 /* stackLen */
newarray 10
putfield java.util.TimSort.runBase:[I
26: .line 186
aload 0 /* this */
iload 8 /* stackLen */
newarray 10
putfield java.util.TimSort.runLen:[I
27: .line 187
return
end local 8 // int stackLen
end local 7 // int tlen
end local 6 // int len
end local 5 // int workLen
end local 4 // int workBase
end local 3 // java.lang.Object[] work
end local 2 // java.util.Comparator c
end local 1 // java.lang.Object[] a
end local 0 // java.util.TimSort this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Ljava/util/TimSort<TT;>;
0 28 1 a [Ljava/lang/Object;
0 28 2 c Ljava/util/Comparator<-TT;>;
0 28 3 work [Ljava/lang/Object;
0 28 4 workBase I
0 28 5 workLen I
6 28 6 len I
10 28 7 tlen I
13 16 8 newArray [Ljava/lang/Object;
25 28 8 stackLen I
Signature: ([TT;Ljava/util/Comparator<-TT;>;[TT;II)V
MethodParameters:
Name Flags
a
c
work
workBase
workLen
static <T> void sort(T[], int, int, java.util.Comparator<? super T>, T[], int, );
descriptor: ([Ljava/lang/Object;IILjava/util/Comparator;[Ljava/lang/Object;II)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=12, args_size=7
start local 0 // java.lang.Object[] a
start local 1 // int lo
start local 2 // int hi
start local 3 // java.util.Comparator c
start local 4 // java.lang.Object[] work
start local 5 // int workBase
start local 6 // int workLen
0: .line 212
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 2
aload 3 /* c */
ifnull 1
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 214
StackMap locals:
StackMap stack:
iload 2 /* hi */
iload 1 /* lo */
isub
istore 7 /* nRemaining */
start local 7 // int nRemaining
3: .line 215
iload 7 /* nRemaining */
iconst_2
if_icmpge 5
4: .line 216
return
5: .line 219
StackMap locals: int
StackMap stack:
iload 7 /* nRemaining */
bipush 32
if_icmpge 9
6: .line 220
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
aload 3 /* c */
invokestatic java.util.TimSort.countRunAndMakeAscending:([Ljava/lang/Object;IILjava/util/Comparator;)I
istore 8 /* initRunLen */
start local 8 // int initRunLen
7: .line 221
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
iload 1 /* lo */
iload 8 /* initRunLen */
iadd
aload 3 /* c */
invokestatic java.util.TimSort.binarySort:([Ljava/lang/Object;IIILjava/util/Comparator;)V
8: .line 222
return
end local 8 // int initRunLen
9: .line 230
StackMap locals:
StackMap stack:
new java.util.TimSort
dup
aload 0 /* a */
aload 3 /* c */
aload 4 /* work */
iload 5 /* workBase */
iload 6 /* workLen */
invokespecial java.util.TimSort.<init>:([Ljava/lang/Object;Ljava/util/Comparator;[Ljava/lang/Object;II)V
astore 8 /* ts */
start local 8 // java.util.TimSort ts
10: .line 231
iload 7 /* nRemaining */
invokestatic java.util.TimSort.minRunLength:(I)I
istore 9 /* minRun */
start local 9 // int minRun
11: .line 234
StackMap locals: java.util.TimSort int
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
iload 2 /* hi */
aload 3 /* c */
invokestatic java.util.TimSort.countRunAndMakeAscending:([Ljava/lang/Object;IILjava/util/Comparator;)I
istore 10 /* runLen */
start local 10 // int runLen
12: .line 237
iload 10 /* runLen */
iload 9 /* minRun */
if_icmpge 18
13: .line 238
iload 7 /* nRemaining */
iload 9 /* minRun */
if_icmpgt 14
iload 7 /* nRemaining */
goto 15
StackMap locals: int
StackMap stack:
14: iload 9 /* minRun */
StackMap locals:
StackMap stack: int
15: istore 11 /* force */
start local 11 // int force
16: .line 239
aload 0 /* a */
iload 1 /* lo */
iload 1 /* lo */
iload 11 /* force */
iadd
iload 1 /* lo */
iload 10 /* runLen */
iadd
aload 3 /* c */
invokestatic java.util.TimSort.binarySort:([Ljava/lang/Object;IIILjava/util/Comparator;)V
17: .line 240
iload 11 /* force */
istore 10 /* runLen */
end local 11 // int force
18: .line 244
StackMap locals:
StackMap stack:
aload 8 /* ts */
iload 1 /* lo */
iload 10 /* runLen */
invokevirtual java.util.TimSort.pushRun:(II)V
19: .line 245
aload 8 /* ts */
invokevirtual java.util.TimSort.mergeCollapse:()V
20: .line 248
iload 1 /* lo */
iload 10 /* runLen */
iadd
istore 1 /* lo */
21: .line 249
iload 7 /* nRemaining */
iload 10 /* runLen */
isub
istore 7 /* nRemaining */
end local 10 // int runLen
22: .line 250
iload 7 /* nRemaining */
ifne 11
23: .line 253
getstatic java.util.TimSort.$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 254
StackMap locals:
StackMap stack:
aload 8 /* ts */
invokevirtual java.util.TimSort.mergeForceCollapse:()V
25: .line 255
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 26
aload 8 /* ts */
getfield java.util.TimSort.stackSize:I
iconst_1
if_icmpeq 26
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
26: .line 256
StackMap locals:
StackMap stack:
return
end local 9 // int minRun
end local 8 // java.util.TimSort ts
end local 7 // int nRemaining
end local 6 // int workLen
end local 5 // int workBase
end local 4 // java.lang.Object[] work
end local 3 // java.util.Comparator c
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 c Ljava/util/Comparator<-TT;>;
0 27 4 work [Ljava/lang/Object;
0 27 5 workBase I
0 27 6 workLen I
3 27 7 nRemaining I
7 9 8 initRunLen I
10 27 8 ts Ljava/util/TimSort<TT;>;
11 27 9 minRun I
12 22 10 runLen I
16 18 11 force I
Signature: <T:Ljava/lang/Object;>([TT;IILjava/util/Comparator<-TT;>;[TT;II)V
MethodParameters:
Name Flags
a
lo
hi
c
work
workBase
workLen
private static <T> void binarySort(T[], int, int, int, java.util.Comparator<? super T>);
descriptor: ([Ljava/lang/Object;IIILjava/util/Comparator;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=5
start local 0 // java.lang.Object[] a
start local 1 // int lo
start local 2 // int hi
start local 3 // int start
start local 4 // java.util.Comparator c
0: .line 279
getstatic java.util.TimSort.$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 280
StackMap locals:
StackMap stack:
iload 3 /* start */
iload 1 /* lo */
if_icmpne 23
3: .line 281
iinc 3 /* start */ 1
4: .line 282
goto 23
5: .line 283
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 3 /* start */
aaload
astore 5 /* pivot */
start local 5 // java.lang.Object pivot
6: .line 286
iload 1 /* lo */
istore 6 /* left */
start local 6 // int left
7: .line 287
iload 3 /* start */
istore 7 /* right */
start local 7 // int right
8: .line 288
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 13
iload 6 /* left */
iload 7 /* right */
if_icmple 13
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: .line 295
StackMap locals: java.lang.Object int int
StackMap stack:
iload 6 /* left */
iload 7 /* right */
iadd
iconst_1
iushr
istore 8 /* mid */
start local 8 // int mid
10: .line 296
aload 4 /* c */
aload 5 /* pivot */
aload 0 /* a */
iload 8 /* mid */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 12
11: .line 297
iload 8 /* mid */
istore 7 /* right */
goto 13
12: .line 299
StackMap locals: int
StackMap stack:
iload 8 /* mid */
iconst_1
iadd
istore 6 /* left */
end local 8 // int mid
13: .line 294
StackMap locals:
StackMap stack:
iload 6 /* left */
iload 7 /* right */
if_icmplt 9
14: .line 301
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 15
iload 6 /* left */
iload 7 /* right */
if_icmpeq 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: .line 310
StackMap locals:
StackMap stack:
iload 3 /* start */
iload 6 /* left */
isub
istore 8 /* n */
start local 8 // int n
16: .line 312
iload 8 /* n */
tableswitch { // 1 - 2
1: 18
2: 17
default: 20
}
17: .line 313
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 6 /* left */
iconst_2
iadd
aload 0 /* a */
iload 6 /* left */
iconst_1
iadd
aaload
aastore
18: .line 314
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* left */
iconst_1
iadd
aload 0 /* a */
iload 6 /* left */
aaload
aastore
19: .line 315
goto 21
20: .line 316
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* left */
aload 0 /* a */
iload 6 /* left */
iconst_1
iadd
iload 8 /* n */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
21: .line 318
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 6 /* left */
aload 5 /* pivot */
aastore
end local 8 // int n
end local 7 // int right
end local 6 // int left
end local 5 // java.lang.Object pivot
22: .line 282
iinc 3 /* start */ 1
StackMap locals: java.lang.Object[] int int int java.util.Comparator
StackMap stack:
23: iload 3 /* start */
iload 2 /* hi */
if_icmplt 5
24: .line 320
return
end local 4 // java.util.Comparator c
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
0 25 4 c Ljava/util/Comparator<-TT;>;
6 22 5 pivot TT;
7 22 6 left I
8 22 7 right I
10 13 8 mid I
16 22 8 n I
Signature: <T:Ljava/lang/Object;>([TT;IIILjava/util/Comparator<-TT;>;)V
MethodParameters:
Name Flags
a
lo
hi
start
c
private static <T> int countRunAndMakeAscending(T[], int, int, java.util.Comparator<? super T>);
descriptor: ([Ljava/lang/Object;IILjava/util/Comparator;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=4
start local 0 // java.lang.Object[] a
start local 1 // int lo
start local 2 // int hi
start local 3 // java.util.Comparator c
0: .line 349
getstatic java.util.TimSort.$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 350
StackMap locals:
StackMap stack:
iload 1 /* lo */
iconst_1
iadd
istore 4 /* runHi */
start local 4 // int runHi
2: .line 351
iload 4 /* runHi */
iload 2 /* hi */
if_icmpne 4
3: .line 352
iconst_1
ireturn
4: .line 355
StackMap locals: int
StackMap stack:
aload 3 /* c */
aload 0 /* a */
iload 4 /* runHi */
iinc 4 /* runHi */ 1
aaload
aload 0 /* a */
iload 1 /* lo */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 11
5: .line 356
goto 7
6: .line 357
StackMap locals:
StackMap stack:
iinc 4 /* runHi */ 1
7: .line 356
StackMap locals:
StackMap stack:
iload 4 /* runHi */
iload 2 /* hi */
if_icmpge 8
aload 3 /* c */
aload 0 /* a */
iload 4 /* runHi */
aaload
aload 0 /* a */
iload 4 /* runHi */
iconst_1
isub
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
iflt 6
8: .line 358
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
iload 4 /* runHi */
invokestatic java.util.TimSort.reverseRange:([Ljava/lang/Object;II)V
9: .line 359
goto 12
10: .line 361
StackMap locals:
StackMap stack:
iinc 4 /* runHi */ 1
11: .line 360
StackMap locals:
StackMap stack:
iload 4 /* runHi */
iload 2 /* hi */
if_icmpge 12
aload 3 /* c */
aload 0 /* a */
iload 4 /* runHi */
aaload
aload 0 /* a */
iload 4 /* runHi */
iconst_1
isub
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 10
12: .line 364
StackMap locals:
StackMap stack:
iload 4 /* runHi */
iload 1 /* lo */
isub
ireturn
end local 4 // int runHi
end local 3 // java.util.Comparator c
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
0 13 3 c Ljava/util/Comparator<-TT;>;
2 13 4 runHi I
Signature: <T:Ljava/lang/Object;>([TT;IILjava/util/Comparator<-TT;>;)I
MethodParameters:
Name Flags
a
lo
hi
c
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 375
iinc 2 /* hi */ -1
1: .line 376
goto 5
2: .line 377
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 1 /* lo */
aaload
astore 3 /* t */
start local 3 // java.lang.Object t
3: .line 378
aload 0 /* a */
iload 1 /* lo */
iinc 1 /* lo */ 1
aload 0 /* a */
iload 2 /* hi */
aaload
aastore
4: .line 379
aload 0 /* a */
iload 2 /* hi */
iinc 2 /* hi */ -1
aload 3 /* t */
aastore
end local 3 // java.lang.Object t
5: .line 376
StackMap locals:
StackMap stack:
iload 1 /* lo */
iload 2 /* hi */
if_icmplt 2
6: .line 381
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 401
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 1
iload 0 /* n */
ifge 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 402
StackMap locals:
StackMap stack:
iconst_0
istore 1 /* r */
start local 1 // int r
2: .line 403
goto 5
3: .line 404
StackMap locals: int
StackMap stack:
iload 1 /* r */
iload 0 /* n */
iconst_1
iand
ior
istore 1 /* r */
4: .line 405
iload 0 /* n */
iconst_1
ishr
istore 0 /* n */
5: .line 403
StackMap locals:
StackMap stack:
iload 0 /* n */
bipush 32
if_icmpge 3
6: .line 407
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.TimSort this
start local 1 // int runBase
start local 2 // int runLen
0: .line 417
aload 0 /* this */
getfield java.util.TimSort.runBase:[I
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iload 1 /* runBase */
iastore
1: .line 418
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iload 2 /* runLen */
iastore
2: .line 419
aload 0 /* this */
dup
getfield java.util.TimSort.stackSize:I
iconst_1
iadd
putfield java.util.TimSort.stackSize:I
3: .line 420
return
end local 2 // int runLen
end local 1 // int runBase
end local 0 // java.util.TimSort this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/TimSort<TT;>;
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.TimSort this
0: .line 439
goto 10
1: .line 440
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iconst_2
isub
istore 1 /* n */
start local 1 // int n
2: .line 441
iload 1 /* n */
ifle 3
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iaload
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
iadd
if_icmple 4
3: .line 442
StackMap locals: int
StackMap stack:
iload 1 /* n */
iconst_1
if_icmple 7
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_2
isub
iaload
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iaload
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
iadd
if_icmpgt 7
4: .line 443
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmpge 9
5: .line 444
iinc 1 /* n */ -1
6: .line 445
goto 9
StackMap locals:
StackMap stack:
7: iload 1 /* n */
iflt 11
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iaload
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmple 9
8: .line 446
goto 11
9: .line 448
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* n */
invokevirtual java.util.TimSort.mergeAt:(I)V
end local 1 // int n
10: .line 439
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iconst_1
if_icmpgt 1
11: .line 450
StackMap locals:
StackMap stack:
return
end local 0 // java.util.TimSort this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/TimSort<TT;>;
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.TimSort this
0: .line 457
goto 5
1: .line 458
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iconst_2
isub
istore 1 /* n */
start local 1 // int n
2: .line 459
iload 1 /* n */
ifle 4
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_1
isub
iaload
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* n */
iconst_1
iadd
iaload
if_icmpge 4
3: .line 460
iinc 1 /* n */ -1
4: .line 461
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 1 /* n */
invokevirtual java.util.TimSort.mergeAt:(I)V
end local 1 // int n
5: .line 457
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iconst_1
if_icmpgt 1
6: .line 463
return
end local 0 // java.util.TimSort this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/TimSort<TT;>;
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.TimSort this
start local 1 // int i
0: .line 473
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 1
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iconst_2
if_icmpge 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 474
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 2
iload 1 /* i */
ifge 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 475
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 3
iload 1 /* i */
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iconst_2
isub
if_icmpeq 3
iload 1 /* i */
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iconst_3
isub
if_icmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: .line 477
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.runBase:[I
iload 1 /* i */
iaload
istore 2 /* base1 */
start local 2 // int base1
4: .line 478
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* i */
iaload
istore 3 /* len1 */
start local 3 // int len1
5: .line 479
aload 0 /* this */
getfield java.util.TimSort.runBase:[I
iload 1 /* i */
iconst_1
iadd
iaload
istore 4 /* base2 */
start local 4 // int base2
6: .line 480
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* i */
iconst_1
iadd
iaload
istore 5 /* len2 */
start local 5 // int len2
7: .line 481
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 9
iload 3 /* len1 */
ifle 8
iload 5 /* len2 */
ifgt 9
StackMap locals: java.util.TimSort int int int int int
StackMap stack:
8: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: .line 482
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$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 489
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* i */
iload 3 /* len1 */
iload 5 /* len2 */
iadd
iastore
11: .line 490
iload 1 /* i */
aload 0 /* this */
getfield java.util.TimSort.stackSize:I
iconst_3
isub
if_icmpne 14
12: .line 491
aload 0 /* this */
getfield java.util.TimSort.runBase:[I
iload 1 /* i */
iconst_1
iadd
aload 0 /* this */
getfield java.util.TimSort.runBase:[I
iload 1 /* i */
iconst_2
iadd
iaload
iastore
13: .line 492
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* i */
iconst_1
iadd
aload 0 /* this */
getfield java.util.TimSort.runLen:[I
iload 1 /* i */
iconst_2
iadd
iaload
iastore
14: .line 494
StackMap locals:
StackMap stack:
aload 0 /* this */
dup
getfield java.util.TimSort.stackSize:I
iconst_1
isub
putfield java.util.TimSort.stackSize:I
15: .line 500
aload 0 /* this */
getfield java.util.TimSort.a:[Ljava/lang/Object;
iload 4 /* base2 */
aaload
aload 0 /* this */
getfield java.util.TimSort.a:[Ljava/lang/Object;
iload 2 /* base1 */
iload 3 /* len1 */
iconst_0
aload 0 /* this */
getfield java.util.TimSort.c:Ljava/util/Comparator;
invokestatic java.util.TimSort.gallopRight:(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
istore 6 /* k */
start local 6 // int k
16: .line 501
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 17
iload 6 /* k */
ifge 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: .line 502
StackMap locals: int
StackMap stack:
iload 2 /* base1 */
iload 6 /* k */
iadd
istore 2 /* base1 */
18: .line 503
iload 3 /* len1 */
iload 6 /* k */
isub
istore 3 /* len1 */
19: .line 504
iload 3 /* len1 */
ifne 21
20: .line 505
return
21: .line 511
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.a:[Ljava/lang/Object;
iload 2 /* base1 */
iload 3 /* len1 */
iadd
iconst_1
isub
aaload
aload 0 /* this */
getfield java.util.TimSort.a:[Ljava/lang/Object;
iload 4 /* base2 */
iload 5 /* len2 */
iload 5 /* len2 */
iconst_1
isub
aload 0 /* this */
getfield java.util.TimSort.c:Ljava/util/Comparator;
invokestatic java.util.TimSort.gallopLeft:(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
istore 5 /* len2 */
22: .line 512
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 23
iload 5 /* len2 */
ifge 23
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
23: .line 513
StackMap locals:
StackMap stack:
iload 5 /* len2 */
ifne 25
24: .line 514
return
25: .line 517
StackMap locals:
StackMap stack:
iload 3 /* len1 */
iload 5 /* len2 */
if_icmpgt 27
26: .line 518
aload 0 /* this */
iload 2 /* base1 */
iload 3 /* len1 */
iload 4 /* base2 */
iload 5 /* len2 */
invokevirtual java.util.TimSort.mergeLo:(IIII)V
goto 28
27: .line 520
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 2 /* base1 */
iload 3 /* len1 */
iload 4 /* base2 */
iload 5 /* len2 */
invokevirtual java.util.TimSort.mergeHi:(IIII)V
28: .line 521
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.TimSort this
LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Ljava/util/TimSort<TT;>;
0 29 1 i I
4 29 2 base1 I
5 29 3 len1 I
6 29 4 base2 I
7 29 5 len2 I
16 29 6 k I
MethodParameters:
Name Flags
i
private static <T> int gallopLeft(T, T[], int, int, int, java.util.Comparator<? super T>);
descriptor: (Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=6
start local 0 // java.lang.Object key
start local 1 // java.lang.Object[] a
start local 2 // int base
start local 3 // int len
start local 4 // int hint
start local 5 // java.util.Comparator c
0: .line 543
getstatic java.util.TimSort.$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 544
StackMap locals:
StackMap stack:
iconst_0
istore 6 /* lastOfs */
start local 6 // int lastOfs
3: .line 545
iconst_1
istore 7 /* ofs */
start local 7 // int ofs
4: .line 546
aload 5 /* c */
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifle 17
5: .line 548
iload 3 /* len */
iload 4 /* hint */
isub
istore 8 /* maxOfs */
start local 8 // int maxOfs
6: .line 549
goto 11
7: .line 550
StackMap locals: int int int
StackMap stack:
iload 7 /* ofs */
istore 6 /* lastOfs */
8: .line 551
iload 7 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 7 /* ofs */
9: .line 552
iload 7 /* ofs */
ifgt 11
10: .line 553
iload 8 /* maxOfs */
istore 7 /* ofs */
11: .line 549
StackMap locals:
StackMap stack:
iload 7 /* ofs */
iload 8 /* maxOfs */
if_icmpge 12
aload 5 /* c */
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
iload 7 /* ofs */
iadd
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifgt 7
12: .line 555
StackMap locals:
StackMap stack:
iload 7 /* ofs */
iload 8 /* maxOfs */
if_icmple 14
13: .line 556
iload 8 /* maxOfs */
istore 7 /* ofs */
14: .line 559
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
iload 4 /* hint */
iadd
istore 6 /* lastOfs */
15: .line 560
iload 7 /* ofs */
iload 4 /* hint */
iadd
istore 7 /* ofs */
end local 8 // int maxOfs
16: .line 561
goto 29
17: .line 563
StackMap locals:
StackMap stack:
iload 4 /* hint */
iconst_1
iadd
istore 8 /* maxOfs */
start local 8 // int maxOfs
18: .line 564
goto 23
19: .line 565
StackMap locals: int
StackMap stack:
iload 7 /* ofs */
istore 6 /* lastOfs */
20: .line 566
iload 7 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 7 /* ofs */
21: .line 567
iload 7 /* ofs */
ifgt 23
22: .line 568
iload 8 /* maxOfs */
istore 7 /* ofs */
23: .line 564
StackMap locals:
StackMap stack:
iload 7 /* ofs */
iload 8 /* maxOfs */
if_icmpge 24
aload 5 /* c */
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
iload 7 /* ofs */
isub
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifle 19
24: .line 570
StackMap locals:
StackMap stack:
iload 7 /* ofs */
iload 8 /* maxOfs */
if_icmple 26
25: .line 571
iload 8 /* maxOfs */
istore 7 /* ofs */
26: .line 574
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
istore 9 /* tmp */
start local 9 // int tmp
27: .line 575
iload 4 /* hint */
iload 7 /* ofs */
isub
istore 6 /* lastOfs */
28: .line 576
iload 4 /* hint */
iload 9 /* tmp */
isub
istore 7 /* ofs */
end local 9 // int tmp
end local 8 // int maxOfs
29: .line 578
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 31
iconst_m1
iload 6 /* lastOfs */
if_icmpgt 30
iload 6 /* lastOfs */
iload 7 /* ofs */
if_icmpge 30
iload 7 /* 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 585
StackMap locals:
StackMap stack:
iinc 6 /* lastOfs */ 1
32: .line 586
goto 37
33: .line 587
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
iload 7 /* ofs */
iload 6 /* lastOfs */
isub
iconst_1
iushr
iadd
istore 8 /* m */
start local 8 // int m
34: .line 589
aload 5 /* c */
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 8 /* m */
iadd
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifle 36
35: .line 590
iload 8 /* m */
iconst_1
iadd
istore 6 /* lastOfs */
goto 37
36: .line 592
StackMap locals: int
StackMap stack:
iload 8 /* m */
istore 7 /* ofs */
end local 8 // int m
37: .line 586
StackMap locals:
StackMap stack:
iload 6 /* lastOfs */
iload 7 /* ofs */
if_icmplt 33
38: .line 594
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 39
iload 6 /* lastOfs */
iload 7 /* ofs */
if_icmpeq 39
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: .line 595
StackMap locals:
StackMap stack:
iload 7 /* ofs */
ireturn
end local 7 // int ofs
end local 6 // int lastOfs
end local 5 // java.util.Comparator c
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.Object key
LocalVariableTable:
Start End Slot Name Signature
0 40 0 key TT;
0 40 1 a [Ljava/lang/Object;
0 40 2 base I
0 40 3 len I
0 40 4 hint I
0 40 5 c Ljava/util/Comparator<-TT;>;
3 40 6 lastOfs I
4 40 7 ofs I
6 16 8 maxOfs I
18 29 8 maxOfs I
27 29 9 tmp I
34 37 8 m I
Signature: <T:Ljava/lang/Object;>(TT;[TT;IIILjava/util/Comparator<-TT;>;)I
MethodParameters:
Name Flags
key
a
base
len
hint
c
private static <T> int gallopRight(T, T[], int, int, int, java.util.Comparator<? super T>);
descriptor: (Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=10, args_size=6
start local 0 // java.lang.Object key
start local 1 // java.lang.Object[] a
start local 2 // int base
start local 3 // int len
start local 4 // int hint
start local 5 // java.util.Comparator c
0: .line 613
getstatic java.util.TimSort.$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 615
StackMap locals:
StackMap stack:
iconst_1
istore 6 /* ofs */
start local 6 // int ofs
3: .line 616
iconst_0
istore 7 /* lastOfs */
start local 7 // int lastOfs
4: .line 617
aload 5 /* c */
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 18
5: .line 619
iload 4 /* hint */
iconst_1
iadd
istore 8 /* maxOfs */
start local 8 // int maxOfs
6: .line 620
goto 11
7: .line 621
StackMap locals: int int int
StackMap stack:
iload 6 /* ofs */
istore 7 /* lastOfs */
8: .line 622
iload 6 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 6 /* ofs */
9: .line 623
iload 6 /* ofs */
ifgt 11
10: .line 624
iload 8 /* maxOfs */
istore 6 /* ofs */
11: .line 620
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 8 /* maxOfs */
if_icmpge 12
aload 5 /* c */
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
iload 6 /* ofs */
isub
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
iflt 7
12: .line 626
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 8 /* maxOfs */
if_icmple 14
13: .line 627
iload 8 /* maxOfs */
istore 6 /* ofs */
14: .line 630
StackMap locals:
StackMap stack:
iload 7 /* lastOfs */
istore 9 /* tmp */
start local 9 // int tmp
15: .line 631
iload 4 /* hint */
iload 6 /* ofs */
isub
istore 7 /* lastOfs */
16: .line 632
iload 4 /* hint */
iload 9 /* tmp */
isub
istore 6 /* ofs */
end local 9 // int tmp
end local 8 // int maxOfs
17: .line 633
goto 29
18: .line 635
StackMap locals:
StackMap stack:
iload 3 /* len */
iload 4 /* hint */
isub
istore 8 /* maxOfs */
start local 8 // int maxOfs
19: .line 636
goto 24
20: .line 637
StackMap locals: int
StackMap stack:
iload 6 /* ofs */
istore 7 /* lastOfs */
21: .line 638
iload 6 /* ofs */
iconst_1
ishl
iconst_1
iadd
istore 6 /* ofs */
22: .line 639
iload 6 /* ofs */
ifgt 24
23: .line 640
iload 8 /* maxOfs */
istore 6 /* ofs */
24: .line 636
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 8 /* maxOfs */
if_icmpge 25
aload 5 /* c */
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 4 /* hint */
iadd
iload 6 /* ofs */
iadd
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 20
25: .line 642
StackMap locals:
StackMap stack:
iload 6 /* ofs */
iload 8 /* maxOfs */
if_icmple 27
26: .line 643
iload 8 /* maxOfs */
istore 6 /* ofs */
27: .line 646
StackMap locals:
StackMap stack:
iload 7 /* lastOfs */
iload 4 /* hint */
iadd
istore 7 /* lastOfs */
28: .line 647
iload 6 /* ofs */
iload 4 /* hint */
iadd
istore 6 /* ofs */
end local 8 // int maxOfs
29: .line 649
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 31
iconst_m1
iload 7 /* lastOfs */
if_icmpgt 30
iload 7 /* 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 656
StackMap locals:
StackMap stack:
iinc 7 /* lastOfs */ 1
32: .line 657
goto 37
33: .line 658
StackMap locals:
StackMap stack:
iload 7 /* lastOfs */
iload 6 /* ofs */
iload 7 /* lastOfs */
isub
iconst_1
iushr
iadd
istore 8 /* m */
start local 8 // int m
34: .line 660
aload 5 /* c */
aload 0 /* key */
aload 1 /* a */
iload 2 /* base */
iload 8 /* m */
iadd
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 36
35: .line 661
iload 8 /* m */
istore 6 /* ofs */
goto 37
36: .line 663
StackMap locals: int
StackMap stack:
iload 8 /* m */
iconst_1
iadd
istore 7 /* lastOfs */
end local 8 // int m
37: .line 657
StackMap locals:
StackMap stack:
iload 7 /* lastOfs */
iload 6 /* ofs */
if_icmplt 33
38: .line 665
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 39
iload 7 /* lastOfs */
iload 6 /* ofs */
if_icmpeq 39
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
39: .line 666
StackMap locals:
StackMap stack:
iload 6 /* ofs */
ireturn
end local 7 // int lastOfs
end local 6 // int ofs
end local 5 // java.util.Comparator c
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.Object key
LocalVariableTable:
Start End Slot Name Signature
0 40 0 key TT;
0 40 1 a [Ljava/lang/Object;
0 40 2 base I
0 40 3 len I
0 40 4 hint I
0 40 5 c Ljava/util/Comparator<-TT;>;
3 40 6 ofs I
4 40 7 lastOfs I
6 17 8 maxOfs I
15 17 9 tmp I
19 29 8 maxOfs I
34 37 8 m I
Signature: <T:Ljava/lang/Object;>(TT;[TT;IIILjava/util/Comparator<-TT;>;)I
MethodParameters:
Name Flags
key
a
base
len
hint
c
private void mergeLo(int, int, int, int);
descriptor: (IIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=14, args_size=5
start local 0 // java.util.TimSort this
start local 1 // int base1
start local 2 // int len1
start local 3 // int base2
start local 4 // int len2
0: .line 686
getstatic java.util.TimSort.$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 689
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.a:[Ljava/lang/Object;
astore 5 /* a */
start local 5 // java.lang.Object[] a
3: .line 690
aload 0 /* this */
iload 2 /* len1 */
invokevirtual java.util.TimSort.ensureCapacity:(I)[Ljava/lang/Object;
astore 6 /* tmp */
start local 6 // java.lang.Object[] tmp
4: .line 691
aload 0 /* this */
getfield java.util.TimSort.tmpBase:I
istore 7 /* cursor1 */
start local 7 // int cursor1
5: .line 692
iload 3 /* base2 */
istore 8 /* cursor2 */
start local 8 // int cursor2
6: .line 693
iload 1 /* base1 */
istore 9 /* dest */
start local 9 // int dest
7: .line 694
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 697
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
aaload
aastore
9: .line 698
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 12
10: .line 699
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 700
return
12: .line 702
StackMap locals: java.util.TimSort 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 703
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 704
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iadd
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
aastore
15: .line 705
return
16: .line 708
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.c:Ljava/util/Comparator;
astore 10 /* c */
start local 10 // java.util.Comparator c
17: .line 709
aload 0 /* this */
getfield java.util.TimSort.minGallop:I
istore 11 /* minGallop */
start local 11 // int minGallop
18: .line 712
StackMap locals: java.util.Comparator int
StackMap stack:
iconst_0
istore 12 /* count1 */
start local 12 // int count1
19: .line 713
iconst_0
istore 13 /* count2 */
start local 13 // int count2
20: .line 720
StackMap locals: int int
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 22
iload 2 /* len1 */
iconst_1
if_icmple 21
iload 4 /* len2 */
ifgt 22
StackMap locals:
StackMap stack:
21: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
22: .line 721
StackMap locals:
StackMap stack:
aload 10 /* c */
aload 5 /* a */
iload 8 /* cursor2 */
aaload
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 28
23: .line 722
aload 5 /* a */
iload 9 /* dest */
iinc 9 /* dest */ 1
aload 5 /* a */
iload 8 /* cursor2 */
iinc 8 /* cursor2 */ 1
aaload
aastore
24: .line 723
iinc 13 /* count2 */ 1
25: .line 724
iconst_0
istore 12 /* count1 */
26: .line 725
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 33
27: .line 726
goto 69
28: .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
29: .line 729
iinc 12 /* count1 */ 1
30: .line 730
iconst_0
istore 13 /* count2 */
31: .line 731
iinc 2 /* len1 */ -1
iload 2 /* len1 */
iconst_1
if_icmpne 33
32: .line 732
goto 69
33: .line 734
StackMap locals:
StackMap stack:
iload 12 /* count1 */
iload 13 /* count2 */
ior
iload 11 /* minGallop */
34: .line 719
if_icmplt 20
35: .line 742
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 37
iload 2 /* len1 */
iconst_1
if_icmple 36
iload 4 /* len2 */
ifgt 37
StackMap locals:
StackMap stack:
36: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
37: .line 743
StackMap locals:
StackMap stack:
aload 5 /* a */
iload 8 /* cursor2 */
aaload
aload 6 /* tmp */
iload 7 /* cursor1 */
iload 2 /* len1 */
iconst_0
aload 10 /* c */
invokestatic java.util.TimSort.gallopRight:(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
istore 12 /* count1 */
38: .line 744
iload 12 /* count1 */
ifeq 45
39: .line 745
aload 6 /* tmp */
iload 7 /* cursor1 */
aload 5 /* a */
iload 9 /* dest */
iload 12 /* count1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
40: .line 746
iload 9 /* dest */
iload 12 /* count1 */
iadd
istore 9 /* dest */
41: .line 747
iload 7 /* cursor1 */
iload 12 /* count1 */
iadd
istore 7 /* cursor1 */
42: .line 748
iload 2 /* len1 */
iload 12 /* count1 */
isub
istore 2 /* len1 */
43: .line 749
iload 2 /* len1 */
iconst_1
if_icmpgt 45
44: .line 750
goto 69
45: .line 752
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
46: .line 753
iinc 4 /* len2 */ -1
iload 4 /* len2 */
ifne 48
47: .line 754
goto 69
48: .line 756
StackMap locals:
StackMap stack:
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
aload 5 /* a */
iload 8 /* cursor2 */
iload 4 /* len2 */
iconst_0
aload 10 /* c */
invokestatic java.util.TimSort.gallopLeft:(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
istore 13 /* count2 */
49: .line 757
iload 13 /* count2 */
ifeq 56
50: .line 758
aload 5 /* a */
iload 8 /* cursor2 */
aload 5 /* a */
iload 9 /* dest */
iload 13 /* count2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
51: .line 759
iload 9 /* dest */
iload 13 /* count2 */
iadd
istore 9 /* dest */
52: .line 760
iload 8 /* cursor2 */
iload 13 /* count2 */
iadd
istore 8 /* cursor2 */
53: .line 761
iload 4 /* len2 */
iload 13 /* count2 */
isub
istore 4 /* len2 */
54: .line 762
iload 4 /* len2 */
ifne 56
55: .line 763
goto 69
56: .line 765
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
57: .line 766
iinc 2 /* len1 */ -1
iload 2 /* len1 */
iconst_1
if_icmpne 59
58: .line 767
goto 69
59: .line 768
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ -1
60: .line 769
iload 12 /* count1 */
bipush 7
if_icmplt 61
iconst_1
goto 62
StackMap locals:
StackMap stack:
61: iconst_0
StackMap locals:
StackMap stack: int
62: iload 13 /* count2 */
bipush 7
if_icmplt 63
iconst_1
goto 64
StackMap locals:
StackMap stack: int
63: iconst_0
64: .line 741
StackMap locals: java.util.TimSort int int int int java.lang.Object[] java.lang.Object[] int int int java.util.Comparator int int int
StackMap stack: int int
ior
ifne 35
65: .line 770
iload 11 /* minGallop */
ifge 67
66: .line 771
iconst_0
istore 11 /* minGallop */
67: .line 772
StackMap locals:
StackMap stack:
iinc 11 /* minGallop */ 2
end local 13 // int count2
end local 12 // int count1
68: .line 711
goto 18
69: .line 774
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* minGallop */
iconst_1
if_icmpge 70
iconst_1
goto 71
StackMap locals:
StackMap stack: java.util.TimSort
70: iload 11 /* minGallop */
StackMap locals: java.util.TimSort int int int int java.lang.Object[] java.lang.Object[] int int int java.util.Comparator int
StackMap stack: java.util.TimSort int
71: putfield java.util.TimSort.minGallop:I
72: .line 776
iload 2 /* len1 */
iconst_1
if_icmpne 77
73: .line 777
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 74
iload 4 /* len2 */
ifgt 74
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
74: .line 778
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
75: .line 779
aload 5 /* a */
iload 9 /* dest */
iload 4 /* len2 */
iadd
aload 6 /* tmp */
iload 7 /* cursor1 */
aaload
aastore
76: .line 780
goto 84
StackMap locals:
StackMap stack:
77: iload 2 /* len1 */
ifne 81
78: .line 781
new java.lang.IllegalArgumentException
dup
79: .line 782
ldc "Comparison method violates its general contract!"
80: .line 781
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
81: .line 784
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 82
iload 4 /* len2 */
ifeq 82
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
82: .line 785
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 83
iload 2 /* len1 */
iconst_1
if_icmpgt 83
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
83: .line 786
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
84: .line 788
StackMap locals:
StackMap stack:
return
end local 11 // int minGallop
end local 10 // java.util.Comparator c
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.TimSort this
LocalVariableTable:
Start End Slot Name Signature
0 85 0 this Ljava/util/TimSort<TT;>;
0 85 1 base1 I
0 85 2 len1 I
0 85 3 base2 I
0 85 4 len2 I
3 85 5 a [Ljava/lang/Object;
4 85 6 tmp [Ljava/lang/Object;
5 85 7 cursor1 I
6 85 8 cursor2 I
7 85 9 dest I
17 85 10 c Ljava/util/Comparator<-TT;>;
18 85 11 minGallop I
19 68 12 count1 I
20 68 13 count2 I
MethodParameters:
Name Flags
base1
len1
base2
len2
private void mergeHi(int, int, int, int);
descriptor: (IIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=15, args_size=5
start local 0 // java.util.TimSort this
start local 1 // int base1
start local 2 // int len1
start local 3 // int base2
start local 4 // int len2
0: .line 802
getstatic java.util.TimSort.$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 805
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.a:[Ljava/lang/Object;
astore 5 /* a */
start local 5 // java.lang.Object[] a
3: .line 806
aload 0 /* this */
iload 4 /* len2 */
invokevirtual java.util.TimSort.ensureCapacity:(I)[Ljava/lang/Object;
astore 6 /* tmp */
start local 6 // java.lang.Object[] tmp
4: .line 807
aload 0 /* this */
getfield java.util.TimSort.tmpBase:I
istore 7 /* tmpBase */
start local 7 // int tmpBase
5: .line 808
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 810
iload 1 /* base1 */
iload 2 /* len1 */
iadd
iconst_1
isub
istore 8 /* cursor1 */
start local 8 // int cursor1
7: .line 811
iload 7 /* tmpBase */
iload 4 /* len2 */
iadd
iconst_1
isub
istore 9 /* cursor2 */
start local 9 // int cursor2
8: .line 812
iload 3 /* base2 */
iload 4 /* len2 */
iadd
iconst_1
isub
istore 10 /* dest */
start local 10 // int dest
9: .line 815
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 5 /* a */
iload 8 /* cursor1 */
iinc 8 /* cursor1 */ -1
aaload
aastore
10: .line 816
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 13
11: .line 817
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 818
return
13: .line 820
StackMap locals: java.util.TimSort 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 821
iload 10 /* dest */
iload 2 /* len1 */
isub
istore 10 /* dest */
15: .line 822
iload 8 /* cursor1 */
iload 2 /* len1 */
isub
istore 8 /* cursor1 */
16: .line 823
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 824
aload 5 /* a */
iload 10 /* dest */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
aastore
18: .line 825
return
19: .line 828
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.c:Ljava/util/Comparator;
astore 11 /* c */
start local 11 // java.util.Comparator c
20: .line 829
aload 0 /* this */
getfield java.util.TimSort.minGallop:I
istore 12 /* minGallop */
start local 12 // int minGallop
21: .line 832
StackMap locals: java.util.Comparator int
StackMap stack:
iconst_0
istore 13 /* count1 */
start local 13 // int count1
22: .line 833
iconst_0
istore 14 /* count2 */
start local 14 // int count2
23: .line 840
StackMap locals: int int
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 25
iload 2 /* len1 */
ifle 24
iload 4 /* len2 */
iconst_1
if_icmpgt 25
StackMap locals:
StackMap stack:
24: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
25: .line 841
StackMap locals:
StackMap stack:
aload 11 /* c */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
aload 5 /* a */
iload 8 /* cursor1 */
aaload
invokeinterface java.util.Comparator.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifge 31
26: .line 842
aload 5 /* a */
iload 10 /* dest */
iinc 10 /* dest */ -1
aload 5 /* a */
iload 8 /* cursor1 */
iinc 8 /* cursor1 */ -1
aaload
aastore
27: .line 843
iinc 13 /* count1 */ 1
28: .line 844
iconst_0
istore 14 /* count2 */
29: .line 845
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 36
30: .line 846
goto 72
31: .line 848
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
32: .line 849
iinc 14 /* count2 */ 1
33: .line 850
iconst_0
istore 13 /* count1 */
34: .line 851
iinc 4 /* len2 */ -1
iload 4 /* len2 */
iconst_1
if_icmpne 36
35: .line 852
goto 72
36: .line 854
StackMap locals:
StackMap stack:
iload 13 /* count1 */
iload 14 /* count2 */
ior
iload 12 /* minGallop */
37: .line 839
if_icmplt 23
38: .line 862
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 40
iload 2 /* len1 */
ifle 39
iload 4 /* len2 */
iconst_1
if_icmpgt 40
StackMap locals:
StackMap stack:
39: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
40: .line 863
StackMap locals:
StackMap stack:
iload 2 /* len1 */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
aload 5 /* a */
iload 1 /* base1 */
iload 2 /* len1 */
iload 2 /* len1 */
iconst_1
isub
aload 11 /* c */
invokestatic java.util.TimSort.gallopRight:(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
isub
istore 13 /* count1 */
41: .line 864
iload 13 /* count1 */
ifeq 48
42: .line 865
iload 10 /* dest */
iload 13 /* count1 */
isub
istore 10 /* dest */
43: .line 866
iload 8 /* cursor1 */
iload 13 /* count1 */
isub
istore 8 /* cursor1 */
44: .line 867
iload 2 /* len1 */
iload 13 /* count1 */
isub
istore 2 /* len1 */
45: .line 868
aload 5 /* a */
iload 8 /* cursor1 */
iconst_1
iadd
aload 5 /* a */
iload 10 /* dest */
iconst_1
iadd
iload 13 /* count1 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
46: .line 869
iload 2 /* len1 */
ifne 48
47: .line 870
goto 72
48: .line 872
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
49: .line 873
iinc 4 /* len2 */ -1
iload 4 /* len2 */
iconst_1
if_icmpne 51
50: .line 874
goto 72
51: .line 876
StackMap locals:
StackMap stack:
iload 4 /* len2 */
aload 5 /* a */
iload 8 /* cursor1 */
aaload
aload 6 /* tmp */
iload 7 /* tmpBase */
iload 4 /* len2 */
iload 4 /* len2 */
iconst_1
isub
aload 11 /* c */
invokestatic java.util.TimSort.gallopLeft:(Ljava/lang/Object;[Ljava/lang/Object;IIILjava/util/Comparator;)I
isub
istore 14 /* count2 */
52: .line 877
iload 14 /* count2 */
ifeq 59
53: .line 878
iload 10 /* dest */
iload 14 /* count2 */
isub
istore 10 /* dest */
54: .line 879
iload 9 /* cursor2 */
iload 14 /* count2 */
isub
istore 9 /* cursor2 */
55: .line 880
iload 4 /* len2 */
iload 14 /* count2 */
isub
istore 4 /* len2 */
56: .line 881
aload 6 /* tmp */
iload 9 /* cursor2 */
iconst_1
iadd
aload 5 /* a */
iload 10 /* dest */
iconst_1
iadd
iload 14 /* count2 */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
57: .line 882
iload 4 /* len2 */
iconst_1
if_icmpgt 59
58: .line 883
goto 72
59: .line 885
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
60: .line 886
iinc 2 /* len1 */ -1
iload 2 /* len1 */
ifne 62
61: .line 887
goto 72
62: .line 888
StackMap locals:
StackMap stack:
iinc 12 /* minGallop */ -1
63: .line 889
iload 13 /* count1 */
bipush 7
if_icmplt 64
iconst_1
goto 65
StackMap locals:
StackMap stack:
64: iconst_0
StackMap locals:
StackMap stack: int
65: iload 14 /* count2 */
bipush 7
if_icmplt 66
iconst_1
goto 67
StackMap locals:
StackMap stack: int
66: iconst_0
67: .line 861
StackMap locals: java.util.TimSort int int int int java.lang.Object[] java.lang.Object[] int int int int java.util.Comparator int int int
StackMap stack: int int
ior
ifne 38
68: .line 890
iload 12 /* minGallop */
ifge 70
69: .line 891
iconst_0
istore 12 /* minGallop */
70: .line 892
StackMap locals:
StackMap stack:
iinc 12 /* minGallop */ 2
end local 14 // int count2
end local 13 // int count1
71: .line 831
goto 21
72: .line 894
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 12 /* minGallop */
iconst_1
if_icmpge 73
iconst_1
goto 74
StackMap locals:
StackMap stack: java.util.TimSort
73: iload 12 /* minGallop */
StackMap locals: java.util.TimSort int int int int java.lang.Object[] java.lang.Object[] int int int int java.util.Comparator int
StackMap stack: java.util.TimSort int
74: putfield java.util.TimSort.minGallop:I
75: .line 896
iload 4 /* len2 */
iconst_1
if_icmpne 82
76: .line 897
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 77
iload 2 /* len1 */
ifgt 77
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
77: .line 898
StackMap locals:
StackMap stack:
iload 10 /* dest */
iload 2 /* len1 */
isub
istore 10 /* dest */
78: .line 899
iload 8 /* cursor1 */
iload 2 /* len1 */
isub
istore 8 /* cursor1 */
79: .line 900
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
80: .line 901
aload 5 /* a */
iload 10 /* dest */
aload 6 /* tmp */
iload 9 /* cursor2 */
aaload
aastore
81: .line 902
goto 89
StackMap locals:
StackMap stack:
82: iload 4 /* len2 */
ifne 86
83: .line 903
new java.lang.IllegalArgumentException
dup
84: .line 904
ldc "Comparison method violates its general contract!"
85: .line 903
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
86: .line 906
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 87
iload 2 /* len1 */
ifeq 87
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
87: .line 907
StackMap locals:
StackMap stack:
getstatic java.util.TimSort.$assertionsDisabled:Z
ifne 88
iload 4 /* len2 */
ifgt 88
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
88: .line 908
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
89: .line 910
StackMap locals:
StackMap stack:
return
end local 12 // int minGallop
end local 11 // java.util.Comparator c
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.TimSort this
LocalVariableTable:
Start End Slot Name Signature
0 90 0 this Ljava/util/TimSort<TT;>;
0 90 1 base1 I
0 90 2 len1 I
0 90 3 base2 I
0 90 4 len2 I
3 90 5 a [Ljava/lang/Object;
4 90 6 tmp [Ljava/lang/Object;
5 90 7 tmpBase I
7 90 8 cursor1 I
8 90 9 cursor2 I
9 90 10 dest I
20 90 11 c Ljava/util/Comparator<-TT;>;
21 90 12 minGallop I
22 71 13 count1 I
23 71 14 count2 I
MethodParameters:
Name Flags
base1
len1
base2
len2
private T[] ensureCapacity();
descriptor: (I)[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 // java.util.TimSort this
start local 1 // int minCapacity
0: .line 921
aload 0 /* this */
getfield java.util.TimSort.tmpLen:I
iload 1 /* minCapacity */
if_icmpge 11
1: .line 923
iconst_m1
iload 1 /* minCapacity */
invokestatic java.lang.Integer.numberOfLeadingZeros:(I)I
iushr
istore 2 /* newSize */
start local 2 // int newSize
2: .line 924
iinc 2 /* newSize */ 1
3: .line 926
iload 2 /* newSize */
ifge 5
4: .line 927
iload 1 /* minCapacity */
istore 2 /* newSize */
goto 6
5: .line 929
StackMap locals: int
StackMap stack:
iload 2 /* newSize */
aload 0 /* this */
getfield java.util.TimSort.a:[Ljava/lang/Object;
arraylength
iconst_1
iushr
invokestatic java.lang.Math.min:(II)I
istore 2 /* newSize */
6: .line 933
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.a:[Ljava/lang/Object;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
iload 2 /* newSize */
7: .line 932
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 3 /* newArray */
start local 3 // java.lang.Object[] newArray
8: .line 934
aload 0 /* this */
aload 3 /* newArray */
putfield java.util.TimSort.tmp:[Ljava/lang/Object;
9: .line 935
aload 0 /* this */
iload 2 /* newSize */
putfield java.util.TimSort.tmpLen:I
10: .line 936
aload 0 /* this */
iconst_0
putfield java.util.TimSort.tmpBase:I
end local 3 // java.lang.Object[] newArray
end local 2 // int newSize
11: .line 938
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield java.util.TimSort.tmp:[Ljava/lang/Object;
areturn
end local 1 // int minCapacity
end local 0 // java.util.TimSort this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/TimSort<TT;>;
0 12 1 minCapacity I
2 11 2 newSize I
8 11 3 newArray [Ljava/lang/Object;
Signature: (I)[TT;
MethodParameters:
Name Flags
minCapacity
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "TimSort.java"