final class sun.java2d.marlin.MergeSort
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.java2d.marlin.MergeSort
super_class: java.lang.Object
{
public static final int INSERTION_SORT_THRESHOLD;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 14
static void mergeSortNoCopy(int[], int[], int[], int[], int, int);
descriptor: ([I[I[I[III)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=9, args_size=6
start local 0 // int[] x
start local 1 // int[] y
start local 2 // int[] auxX
start local 3 // int[] auxY
start local 4 // int toIndex
start local 5 // int insertionSortIndex
0: .line 49
iload 4 /* toIndex */
aload 0 /* x */
arraylength
if_icmpgt 2
iload 4 /* toIndex */
aload 1 /* y */
arraylength
if_icmpgt 2
1: .line 50
iload 4 /* toIndex */
aload 2 /* auxX */
arraylength
if_icmpgt 2
iload 4 /* toIndex */
aload 3 /* auxY */
arraylength
if_icmple 5
2: .line 52
StackMap locals:
StackMap stack:
new java.lang.ArrayIndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "bad arguments: toIndex="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
3: .line 53
iload 4 /* toIndex */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: .line 52
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
5: .line 58
StackMap locals:
StackMap stack:
aload 0 /* x */
aload 1 /* y */
aload 0 /* x */
aload 2 /* auxX */
aload 1 /* y */
aload 3 /* auxY */
iload 5 /* insertionSortIndex */
iload 4 /* toIndex */
invokestatic sun.java2d.marlin.MergeSort.mergeSort:([I[I[I[I[I[III)V
6: .line 62
iload 5 /* insertionSortIndex */
ifeq 8
7: .line 63
aload 2 /* auxX */
iload 5 /* insertionSortIndex */
iconst_1
isub
iaload
aload 2 /* auxX */
iload 5 /* insertionSortIndex */
iaload
if_icmpgt 11
8: .line 67
StackMap locals:
StackMap stack:
aload 2 /* auxX */
iconst_0
aload 0 /* x */
iconst_0
iload 4 /* toIndex */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: .line 68
aload 3 /* auxY */
iconst_0
aload 1 /* y */
iconst_0
iload 4 /* toIndex */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: .line 69
return
11: .line 72
StackMap locals:
StackMap stack:
iconst_0
istore 6 /* i */
start local 6 // int i
12: iconst_0
istore 7 /* p */
start local 7 // int p
13: iload 5 /* insertionSortIndex */
istore 8 /* q */
start local 8 // int q
14: goto 25
15: .line 73
StackMap locals: int int int
StackMap stack:
iload 8 /* q */
iload 4 /* toIndex */
if_icmpge 17
iload 7 /* p */
iload 5 /* insertionSortIndex */
if_icmpge 21
16: .line 74
aload 2 /* auxX */
iload 7 /* p */
iaload
aload 2 /* auxX */
iload 8 /* q */
iaload
if_icmpgt 21
17: .line 75
StackMap locals:
StackMap stack:
aload 0 /* x */
iload 6 /* i */
aload 2 /* auxX */
iload 7 /* p */
iaload
iastore
18: .line 76
aload 1 /* y */
iload 6 /* i */
aload 3 /* auxY */
iload 7 /* p */
iaload
iastore
19: .line 77
iinc 7 /* p */ 1
20: .line 78
goto 24
21: .line 79
StackMap locals:
StackMap stack:
aload 0 /* x */
iload 6 /* i */
aload 2 /* auxX */
iload 8 /* q */
iaload
iastore
22: .line 80
aload 1 /* y */
iload 6 /* i */
aload 3 /* auxY */
iload 8 /* q */
iaload
iastore
23: .line 81
iinc 8 /* q */ 1
24: .line 72
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
25: iload 6 /* i */
iload 4 /* toIndex */
if_icmplt 15
end local 8 // int q
end local 7 // int p
end local 6 // int i
26: .line 84
return
end local 5 // int insertionSortIndex
end local 4 // int toIndex
end local 3 // int[] auxY
end local 2 // int[] auxX
end local 1 // int[] y
end local 0 // int[] x
LocalVariableTable:
Start End Slot Name Signature
0 27 0 x [I
0 27 1 y [I
0 27 2 auxX [I
0 27 3 auxY [I
0 27 4 toIndex I
0 27 5 insertionSortIndex I
12 26 6 i I
13 26 7 p I
14 26 8 q I
MethodParameters:
Name Flags
x final
y final
auxX final
auxY final
toIndex final
insertionSortIndex final
private static void mergeSort(int[], int[], int[], int[], int[], int[], int, int);
descriptor: ([I[I[I[I[I[III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=13, args_size=8
start local 0 // int[] refX
start local 1 // int[] refY
start local 2 // int[] srcX
start local 3 // int[] dstX
start local 4 // int[] srcY
start local 5 // int[] dstY
start local 6 // int low
start local 7 // int high
0: .line 97
iload 7 /* high */
iload 6 /* low */
isub
istore 8 /* length */
start local 8 // int length
1: .line 103
iload 8 /* length */
bipush 14
if_icmpgt 20
2: .line 105
aload 3 /* dstX */
iload 6 /* low */
aload 0 /* refX */
iload 6 /* low */
iaload
iastore
3: .line 106
aload 5 /* dstY */
iload 6 /* low */
aload 1 /* refY */
iload 6 /* low */
iaload
iastore
4: .line 108
iload 6 /* low */
iconst_1
iadd
istore 9 /* i */
start local 9 // int i
5: iload 6 /* low */
istore 10 /* j */
start local 10 // int j
6: goto 18
7: .line 109
StackMap locals: int int int
StackMap stack:
aload 0 /* refX */
iload 9 /* i */
iaload
istore 11 /* x */
start local 11 // int x
8: .line 110
aload 1 /* refY */
iload 9 /* i */
iaload
istore 12 /* y */
start local 12 // int y
9: .line 112
goto 14
10: .line 114
StackMap locals: int int
StackMap stack:
aload 3 /* dstX */
iload 10 /* j */
iconst_1
iadd
aload 3 /* dstX */
iload 10 /* j */
iaload
iastore
11: .line 115
aload 5 /* dstY */
iload 10 /* j */
iconst_1
iadd
aload 5 /* dstY */
iload 10 /* j */
iaload
iastore
12: .line 116
iload 10 /* j */
iinc 10 /* j */ -1
iload 6 /* low */
if_icmpne 14
13: .line 117
goto 15
14: .line 112
StackMap locals:
StackMap stack:
aload 3 /* dstX */
iload 10 /* j */
iaload
iload 11 /* x */
if_icmpgt 10
15: .line 120
StackMap locals:
StackMap stack:
aload 3 /* dstX */
iload 10 /* j */
iconst_1
iadd
iload 11 /* x */
iastore
16: .line 121
aload 5 /* dstY */
iload 10 /* j */
iconst_1
iadd
iload 12 /* y */
iastore
17: .line 108
iload 9 /* i */
iinc 9 /* i */ 1
istore 10 /* j */
end local 12 // int y
end local 11 // int x
StackMap locals:
StackMap stack:
18: iload 9 /* i */
iload 7 /* high */
if_icmplt 7
end local 10 // int j
end local 9 // int i
19: .line 123
return
20: .line 130
StackMap locals:
StackMap stack:
iload 6 /* low */
iload 7 /* high */
iadd
iconst_1
ishr
istore 9 /* mid */
start local 9 // int mid
21: .line 132
aload 0 /* refX */
aload 1 /* refY */
aload 3 /* dstX */
aload 2 /* srcX */
aload 5 /* dstY */
aload 4 /* srcY */
iload 6 /* low */
iload 9 /* mid */
invokestatic sun.java2d.marlin.MergeSort.mergeSort:([I[I[I[I[I[III)V
22: .line 133
aload 0 /* refX */
aload 1 /* refY */
aload 3 /* dstX */
aload 2 /* srcX */
aload 5 /* dstY */
aload 4 /* srcY */
iload 9 /* mid */
iload 7 /* high */
invokestatic sun.java2d.marlin.MergeSort.mergeSort:([I[I[I[I[I[III)V
23: .line 136
aload 2 /* srcX */
iload 7 /* high */
iconst_1
isub
iaload
aload 2 /* srcX */
iload 6 /* low */
iaload
if_icmpgt 34
24: .line 138
iload 9 /* mid */
iload 6 /* low */
isub
istore 10 /* left */
start local 10 // int left
25: .line 139
iload 7 /* high */
iload 9 /* mid */
isub
istore 11 /* right */
start local 11 // int right
26: .line 140
iload 10 /* left */
iload 11 /* right */
if_icmpeq 27
iconst_1
goto 28
StackMap locals: int int int
StackMap stack:
27: iconst_0
StackMap locals:
StackMap stack: int
28: istore 12 /* off */
start local 12 // int off
29: .line 142
aload 2 /* srcX */
iload 6 /* low */
aload 3 /* dstX */
iload 9 /* mid */
iload 12 /* off */
iadd
iload 10 /* left */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: .line 143
aload 2 /* srcX */
iload 9 /* mid */
aload 3 /* dstX */
iload 6 /* low */
iload 11 /* right */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
31: .line 144
aload 4 /* srcY */
iload 6 /* low */
aload 5 /* dstY */
iload 9 /* mid */
iload 12 /* off */
iadd
iload 10 /* left */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
32: .line 145
aload 4 /* srcY */
iload 9 /* mid */
aload 5 /* dstY */
iload 6 /* low */
iload 11 /* right */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: .line 146
return
end local 12 // int off
end local 11 // int right
end local 10 // int left
34: .line 151
StackMap locals:
StackMap stack:
aload 2 /* srcX */
iload 9 /* mid */
iconst_1
isub
iaload
aload 2 /* srcX */
iload 9 /* mid */
iaload
if_icmpgt 38
35: .line 153
aload 2 /* srcX */
iload 6 /* low */
aload 3 /* dstX */
iload 6 /* low */
iload 8 /* length */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
36: .line 154
aload 4 /* srcY */
iload 6 /* low */
aload 5 /* dstY */
iload 6 /* low */
iload 8 /* length */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
37: .line 155
return
38: .line 159
StackMap locals:
StackMap stack:
iload 6 /* low */
istore 10 /* i */
start local 10 // int i
39: iload 6 /* low */
istore 11 /* p */
start local 11 // int p
40: iload 9 /* mid */
istore 12 /* q */
start local 12 // int q
41: goto 51
42: .line 160
StackMap locals: int int int
StackMap stack:
iload 12 /* q */
iload 7 /* high */
if_icmpge 43
iload 11 /* p */
iload 9 /* mid */
if_icmpge 47
aload 2 /* srcX */
iload 11 /* p */
iaload
aload 2 /* srcX */
iload 12 /* q */
iaload
if_icmpgt 47
43: .line 161
StackMap locals:
StackMap stack:
aload 3 /* dstX */
iload 10 /* i */
aload 2 /* srcX */
iload 11 /* p */
iaload
iastore
44: .line 162
aload 5 /* dstY */
iload 10 /* i */
aload 4 /* srcY */
iload 11 /* p */
iaload
iastore
45: .line 163
iinc 11 /* p */ 1
46: .line 164
goto 50
47: .line 165
StackMap locals:
StackMap stack:
aload 3 /* dstX */
iload 10 /* i */
aload 2 /* srcX */
iload 12 /* q */
iaload
iastore
48: .line 166
aload 5 /* dstY */
iload 10 /* i */
aload 4 /* srcY */
iload 12 /* q */
iaload
iastore
49: .line 167
iinc 12 /* q */ 1
50: .line 159
StackMap locals:
StackMap stack:
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
51: iload 10 /* i */
iload 7 /* high */
if_icmplt 42
end local 12 // int q
end local 11 // int p
end local 10 // int i
52: .line 170
return
end local 9 // int mid
end local 8 // int length
end local 7 // int high
end local 6 // int low
end local 5 // int[] dstY
end local 4 // int[] srcY
end local 3 // int[] dstX
end local 2 // int[] srcX
end local 1 // int[] refY
end local 0 // int[] refX
LocalVariableTable:
Start End Slot Name Signature
0 53 0 refX [I
0 53 1 refY [I
0 53 2 srcX [I
0 53 3 dstX [I
0 53 4 srcY [I
0 53 5 dstY [I
0 53 6 low I
0 53 7 high I
1 53 8 length I
5 19 9 i I
6 19 10 j I
8 18 11 x I
9 18 12 y I
21 53 9 mid I
25 34 10 left I
26 34 11 right I
29 34 12 off I
39 52 10 i I
40 52 11 p I
41 52 12 q I
MethodParameters:
Name Flags
refX final
refY final
srcX final
dstX final
srcY final
dstY final
low final
high final
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.java2d.marlin.MergeSort this
0: .line 172
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 173
return
end local 0 // sun.java2d.marlin.MergeSort this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/java2d/marlin/MergeSort;
}
SourceFile: "MergeSort.java"