abstract class net.sf.cglib.util.SorterTemplate
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: net.sf.cglib.util.SorterTemplate
super_class: java.lang.Object
{
private static final int MERGESORT_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final int QUICKSORT_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // net.sf.cglib.util.SorterTemplate this
0: .line 20
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/sf/cglib/util/SorterTemplate;
protected abstract void swap(int, int);
descriptor: (II)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
i
j
protected abstract int compare(int, int);
descriptor: (II)I
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
i
j
protected void quickSort(int, int);
descriptor: (II)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 // net.sf.cglib.util.SorterTemplate this
start local 1 // int lo
start local 2 // int hi
0: .line 28
aload 0 /* this */
iload 1 /* lo */
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.quickSortHelper:(II)V
1: .line 29
aload 0 /* this */
iload 1 /* lo */
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.insertionSort:(II)V
2: .line 30
return
end local 2 // int hi
end local 1 // int lo
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lnet/sf/cglib/util/SorterTemplate;
0 3 1 lo I
0 3 2 hi I
MethodParameters:
Name Flags
lo
hi
private void quickSortHelper(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 // net.sf.cglib.util.SorterTemplate this
start local 1 // int lo
start local 2 // int hi
0: .line 34
StackMap locals:
StackMap stack:
iload 2 /* hi */
iload 1 /* lo */
isub
istore 3 /* diff */
start local 3 // int diff
1: .line 35
iload 3 /* diff */
bipush 7
if_icmpgt 3
2: .line 36
goto 28
3: .line 38
StackMap locals: int
StackMap stack:
iload 2 /* hi */
iload 1 /* lo */
iadd
iconst_2
idiv
istore 4 /* i */
start local 4 // int i
4: .line 39
aload 0 /* this */
iload 1 /* lo */
iload 4 /* i */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
ifle 6
5: .line 40
aload 0 /* this */
iload 1 /* lo */
iload 4 /* i */
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
6: .line 42
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 1 /* lo */
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
ifle 8
7: .line 43
aload 0 /* this */
iload 1 /* lo */
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
8: .line 45
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* i */
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
ifle 10
9: .line 46
aload 0 /* this */
iload 4 /* i */
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
10: .line 48
StackMap locals:
StackMap stack:
iload 2 /* hi */
iconst_1
isub
istore 5 /* j */
start local 5 // int j
11: .line 49
aload 0 /* this */
iload 4 /* i */
iload 5 /* j */
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
12: .line 50
iload 1 /* lo */
istore 4 /* i */
13: .line 51
iload 5 /* j */
istore 6 /* v */
start local 6 // int v
14: .line 53
StackMap locals: int int
StackMap stack:
aload 0 /* this */
iinc 4 /* i */ 1
iload 4 /* i */
iload 6 /* v */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
iflt 14
15: .line 56
StackMap locals:
StackMap stack:
aload 0 /* this */
iinc 5 /* j */ -1
iload 5 /* j */
iload 6 /* v */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
ifgt 15
16: .line 59
iload 5 /* j */
iload 4 /* i */
if_icmpge 18
17: .line 60
goto 20
18: .line 62
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* i */
iload 5 /* j */
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
19: .line 52
goto 14
20: .line 64
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* i */
iload 2 /* hi */
iconst_1
isub
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
21: .line 65
iload 5 /* j */
iload 1 /* lo */
isub
iload 2 /* hi */
iload 4 /* i */
isub
iconst_1
iadd
if_icmpgt 25
22: .line 66
aload 0 /* this */
iload 1 /* lo */
iload 5 /* j */
invokevirtual net.sf.cglib.util.SorterTemplate.quickSortHelper:(II)V
23: .line 67
iload 4 /* i */
iconst_1
iadd
istore 1 /* lo */
24: .line 68
goto 0
25: .line 69
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* i */
iconst_1
iadd
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.quickSortHelper:(II)V
26: .line 70
iload 5 /* j */
istore 2 /* hi */
end local 6 // int v
end local 5 // int j
end local 4 // int i
end local 3 // int diff
27: .line 33
goto 0
28: .line 73
StackMap locals: net.sf.cglib.util.SorterTemplate int int
StackMap stack:
return
end local 2 // int hi
end local 1 // int lo
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Lnet/sf/cglib/util/SorterTemplate;
0 29 1 lo I
0 29 2 hi I
1 27 3 diff I
4 27 4 i I
11 27 5 j I
14 27 6 v I
MethodParameters:
Name Flags
lo
hi
private void insertionSort(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=3
start local 0 // net.sf.cglib.util.SorterTemplate this
start local 1 // int lo
start local 2 // int hi
0: .line 76
iload 1 /* lo */
iconst_1
iadd
istore 3 /* i */
start local 3 // int i
1: goto 9
2: .line 77
StackMap locals: int
StackMap stack:
iload 3 /* i */
istore 4 /* j */
start local 4 // int j
3: goto 7
4: .line 78
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 4 /* j */
iconst_1
isub
iload 4 /* j */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
ifle 8
5: .line 79
aload 0 /* this */
iload 4 /* j */
iconst_1
isub
iload 4 /* j */
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
6: .line 77
iinc 4 /* j */ -1
StackMap locals:
StackMap stack:
7: iload 4 /* j */
iload 1 /* lo */
if_icmpgt 4
end local 4 // int j
8: .line 76
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 3 /* i */
iload 2 /* hi */
if_icmple 2
end local 3 // int i
10: .line 85
return
end local 2 // int hi
end local 1 // int lo
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lnet/sf/cglib/util/SorterTemplate;
0 11 1 lo I
0 11 2 hi I
1 10 3 i I
3 8 4 j I
MethodParameters:
Name Flags
lo
hi
protected void mergeSort(int, int);
descriptor: (II)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=5, args_size=3
start local 0 // net.sf.cglib.util.SorterTemplate this
start local 1 // int lo
start local 2 // int hi
0: .line 88
iload 2 /* hi */
iload 1 /* lo */
isub
istore 3 /* diff */
start local 3 // int diff
1: .line 89
iload 3 /* diff */
bipush 12
if_icmpgt 4
2: .line 90
aload 0 /* this */
iload 1 /* lo */
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.insertionSort:(II)V
3: .line 91
return
4: .line 93
StackMap locals: int
StackMap stack:
iload 1 /* lo */
iload 3 /* diff */
iconst_2
idiv
iadd
istore 4 /* mid */
start local 4 // int mid
5: .line 94
aload 0 /* this */
iload 1 /* lo */
iload 4 /* mid */
invokevirtual net.sf.cglib.util.SorterTemplate.mergeSort:(II)V
6: .line 95
aload 0 /* this */
iload 4 /* mid */
iload 2 /* hi */
invokevirtual net.sf.cglib.util.SorterTemplate.mergeSort:(II)V
7: .line 96
aload 0 /* this */
iload 1 /* lo */
iload 4 /* mid */
iload 2 /* hi */
iload 4 /* mid */
iload 1 /* lo */
isub
iload 2 /* hi */
iload 4 /* mid */
isub
invokevirtual net.sf.cglib.util.SorterTemplate.merge:(IIIII)V
8: .line 97
return
end local 4 // int mid
end local 3 // int diff
end local 2 // int hi
end local 1 // int lo
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lnet/sf/cglib/util/SorterTemplate;
0 9 1 lo I
0 9 2 hi I
1 9 3 diff I
5 9 4 mid I
MethodParameters:
Name Flags
lo
hi
private void merge(int, int, int, int, int);
descriptor: (IIIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=6
start local 0 // net.sf.cglib.util.SorterTemplate this
start local 1 // int lo
start local 2 // int pivot
start local 3 // int hi
start local 4 // int len1
start local 5 // int len2
0: .line 100
iload 4 /* len1 */
ifeq 1
iload 5 /* len2 */
ifne 2
1: .line 101
StackMap locals:
StackMap stack:
return
2: .line 103
StackMap locals:
StackMap stack:
iload 4 /* len1 */
iload 5 /* len2 */
iadd
iconst_2
if_icmpne 6
3: .line 104
aload 0 /* this */
iload 2 /* pivot */
iload 1 /* lo */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
ifge 5
4: .line 105
aload 0 /* this */
iload 2 /* pivot */
iload 1 /* lo */
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
5: .line 107
StackMap locals:
StackMap stack:
return
6: .line 111
StackMap locals:
StackMap stack:
iload 4 /* len1 */
iload 5 /* len2 */
if_icmple 12
7: .line 112
iload 4 /* len1 */
iconst_2
idiv
istore 8 /* len11 */
start local 8 // int len11
8: .line 113
iload 1 /* lo */
iload 8 /* len11 */
iadd
istore 6 /* first_cut */
start local 6 // int first_cut
9: .line 114
aload 0 /* this */
iload 2 /* pivot */
iload 3 /* hi */
iload 6 /* first_cut */
invokevirtual net.sf.cglib.util.SorterTemplate.lower:(III)I
istore 7 /* second_cut */
start local 7 // int second_cut
10: .line 115
iload 7 /* second_cut */
iload 2 /* pivot */
isub
istore 9 /* len22 */
start local 9 // int len22
11: .line 116
goto 16
end local 9 // int len22
end local 8 // int len11
end local 7 // int second_cut
end local 6 // int first_cut
12: .line 117
StackMap locals:
StackMap stack:
iload 5 /* len2 */
iconst_2
idiv
istore 9 /* len22 */
start local 9 // int len22
13: .line 118
iload 2 /* pivot */
iload 9 /* len22 */
iadd
istore 7 /* second_cut */
start local 7 // int second_cut
14: .line 119
aload 0 /* this */
iload 1 /* lo */
iload 2 /* pivot */
iload 7 /* second_cut */
invokevirtual net.sf.cglib.util.SorterTemplate.upper:(III)I
istore 6 /* first_cut */
start local 6 // int first_cut
15: .line 120
iload 6 /* first_cut */
iload 1 /* lo */
isub
istore 8 /* len11 */
start local 8 // int len11
16: .line 122
StackMap locals: net.sf.cglib.util.SorterTemplate int int int int int int int int int
StackMap stack:
aload 0 /* this */
iload 6 /* first_cut */
iload 2 /* pivot */
iload 7 /* second_cut */
invokevirtual net.sf.cglib.util.SorterTemplate.rotate:(III)V
17: .line 123
iload 6 /* first_cut */
iload 9 /* len22 */
iadd
istore 10 /* new_mid */
start local 10 // int new_mid
18: .line 124
aload 0 /* this */
iload 1 /* lo */
iload 6 /* first_cut */
iload 10 /* new_mid */
iload 8 /* len11 */
iload 9 /* len22 */
invokevirtual net.sf.cglib.util.SorterTemplate.merge:(IIIII)V
19: .line 125
aload 0 /* this */
iload 10 /* new_mid */
iload 7 /* second_cut */
iload 3 /* hi */
iload 4 /* len1 */
iload 8 /* len11 */
isub
iload 5 /* len2 */
iload 9 /* len22 */
isub
invokevirtual net.sf.cglib.util.SorterTemplate.merge:(IIIII)V
20: .line 126
return
end local 10 // int new_mid
end local 9 // int len22
end local 8 // int len11
end local 7 // int second_cut
end local 6 // int first_cut
end local 5 // int len2
end local 4 // int len1
end local 3 // int hi
end local 2 // int pivot
end local 1 // int lo
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lnet/sf/cglib/util/SorterTemplate;
0 21 1 lo I
0 21 2 pivot I
0 21 3 hi I
0 21 4 len1 I
0 21 5 len2 I
9 12 6 first_cut I
15 21 6 first_cut I
10 12 7 second_cut I
14 21 7 second_cut I
8 12 8 len11 I
16 21 8 len11 I
11 12 9 len22 I
13 21 9 len22 I
18 21 10 new_mid I
MethodParameters:
Name Flags
lo
pivot
hi
len1
len2
private void rotate(int, int, int);
descriptor: (III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=4
start local 0 // net.sf.cglib.util.SorterTemplate this
start local 1 // int lo
start local 2 // int mid
start local 3 // int hi
0: .line 129
iload 1 /* lo */
istore 4 /* lot */
start local 4 // int lot
1: .line 130
iload 2 /* mid */
iconst_1
isub
istore 5 /* hit */
start local 5 // int hit
2: .line 131
goto 4
3: .line 132
StackMap locals: int int
StackMap stack:
aload 0 /* this */
iload 4 /* lot */
iinc 4 /* lot */ 1
iload 5 /* hit */
iinc 5 /* hit */ -1
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
4: .line 131
StackMap locals:
StackMap stack:
iload 4 /* lot */
iload 5 /* hit */
if_icmplt 3
5: .line 134
iload 2 /* mid */
istore 4 /* lot */
iload 3 /* hi */
iconst_1
isub
istore 5 /* hit */
6: .line 135
goto 8
7: .line 136
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* lot */
iinc 4 /* lot */ 1
iload 5 /* hit */
iinc 5 /* hit */ -1
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
8: .line 135
StackMap locals:
StackMap stack:
iload 4 /* lot */
iload 5 /* hit */
if_icmplt 7
9: .line 138
iload 1 /* lo */
istore 4 /* lot */
iload 3 /* hi */
iconst_1
isub
istore 5 /* hit */
10: .line 139
goto 12
11: .line 140
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* lot */
iinc 4 /* lot */ 1
iload 5 /* hit */
iinc 5 /* hit */ -1
invokevirtual net.sf.cglib.util.SorterTemplate.swap:(II)V
12: .line 139
StackMap locals:
StackMap stack:
iload 4 /* lot */
iload 5 /* hit */
if_icmplt 11
13: .line 142
return
end local 5 // int hit
end local 4 // int lot
end local 3 // int hi
end local 2 // int mid
end local 1 // int lo
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lnet/sf/cglib/util/SorterTemplate;
0 14 1 lo I
0 14 2 mid I
0 14 3 hi I
1 14 4 lot I
2 14 5 hit I
MethodParameters:
Name Flags
lo
mid
hi
private int lower(int, int, int);
descriptor: (III)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=4
start local 0 // net.sf.cglib.util.SorterTemplate this
start local 1 // int lo
start local 2 // int hi
start local 3 // int val
0: .line 145
iload 2 /* hi */
iload 1 /* lo */
isub
istore 4 /* len */
start local 4 // int len
1: .line 146
goto 9
2: .line 147
StackMap locals: int
StackMap stack:
iload 4 /* len */
iconst_2
idiv
istore 5 /* half */
start local 5 // int half
3: .line 148
iload 1 /* lo */
iload 5 /* half */
iadd
istore 6 /* mid */
start local 6 // int mid
4: .line 149
aload 0 /* this */
iload 6 /* mid */
iload 3 /* val */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
ifge 8
5: .line 150
iload 6 /* mid */
iconst_1
iadd
istore 1 /* lo */
6: .line 151
iload 4 /* len */
iload 5 /* half */
isub
iconst_1
isub
istore 4 /* len */
7: .line 152
goto 9
8: .line 153
StackMap locals: int int
StackMap stack:
iload 5 /* half */
istore 4 /* len */
end local 6 // int mid
end local 5 // int half
9: .line 146
StackMap locals:
StackMap stack:
iload 4 /* len */
ifgt 2
10: .line 156
iload 1 /* lo */
ireturn
end local 4 // int len
end local 3 // int val
end local 2 // int hi
end local 1 // int lo
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lnet/sf/cglib/util/SorterTemplate;
0 11 1 lo I
0 11 2 hi I
0 11 3 val I
1 11 4 len I
3 9 5 half I
4 9 6 mid I
MethodParameters:
Name Flags
lo
hi
val
private int upper(int, int, int);
descriptor: (III)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=4
start local 0 // net.sf.cglib.util.SorterTemplate this
start local 1 // int lo
start local 2 // int hi
start local 3 // int val
0: .line 160
iload 2 /* hi */
iload 1 /* lo */
isub
istore 4 /* len */
start local 4 // int len
1: .line 161
goto 9
2: .line 162
StackMap locals: int
StackMap stack:
iload 4 /* len */
iconst_2
idiv
istore 5 /* half */
start local 5 // int half
3: .line 163
iload 1 /* lo */
iload 5 /* half */
iadd
istore 6 /* mid */
start local 6 // int mid
4: .line 164
aload 0 /* this */
iload 3 /* val */
iload 6 /* mid */
invokevirtual net.sf.cglib.util.SorterTemplate.compare:(II)I
ifge 7
5: .line 165
iload 5 /* half */
istore 4 /* len */
6: .line 166
goto 9
7: .line 167
StackMap locals: int int
StackMap stack:
iload 6 /* mid */
iconst_1
iadd
istore 1 /* lo */
8: .line 168
iload 4 /* len */
iload 5 /* half */
isub
iconst_1
isub
istore 4 /* len */
end local 6 // int mid
end local 5 // int half
9: .line 161
StackMap locals:
StackMap stack:
iload 4 /* len */
ifgt 2
10: .line 171
iload 1 /* lo */
ireturn
end local 4 // int len
end local 3 // int val
end local 2 // int hi
end local 1 // int lo
end local 0 // net.sf.cglib.util.SorterTemplate this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lnet/sf/cglib/util/SorterTemplate;
0 11 1 lo I
0 11 2 hi I
0 11 3 val I
1 11 4 len I
3 9 5 half I
4 9 6 mid I
MethodParameters:
Name Flags
lo
hi
val
}
SourceFile: "SorterTemplate.java"