final class sun.java2d.marlin.Helpers implements sun.java2d.marlin.MarlinConst
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.java2d.marlin.Helpers
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.java2d.marlin.Helpers this
0: .line 34
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 35
new java.lang.Error
dup
ldc "This is a non instantiable class"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 // sun.java2d.marlin.Helpers this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/java2d/marlin/Helpers;
static boolean within(double, double, double);
descriptor: (DDD)Z
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=3
start local 0 // double x
start local 2 // double y
start local 4 // double err
0: .line 39
dload 2 /* y */
dload 0 /* x */
dsub
dstore 6 /* d */
start local 6 // double d
1: .line 40
dload 6 /* d */
dload 4 /* err */
dcmpg
ifgt 2
dload 6 /* d */
dload 4 /* err */
dneg
dcmpl
iflt 2
iconst_1
ireturn
StackMap locals: double
StackMap stack:
2: iconst_0
ireturn
end local 6 // double d
end local 4 // double err
end local 2 // double y
end local 0 // double x
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x D
0 3 2 y D
0 3 4 err D
1 3 6 d D
MethodParameters:
Name Flags
x final
y final
err final
static double evalCubic(double, double, double, double, double);
descriptor: (DDDDD)D
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=10, args_size=5
start local 0 // double a
start local 2 // double b
start local 4 // double c
start local 6 // double d
start local 8 // double t
0: .line 47
dload 8 /* t */
dload 8 /* t */
dload 8 /* t */
dload 0 /* a */
dmul
dload 2 /* b */
dadd
dmul
dload 4 /* c */
dadd
dmul
dload 6 /* d */
dadd
dreturn
end local 8 // double t
end local 6 // double d
end local 4 // double c
end local 2 // double b
end local 0 // double a
LocalVariableTable:
Start End Slot Name Signature
0 1 0 a D
0 1 2 b D
0 1 4 c D
0 1 6 d D
0 1 8 t D
MethodParameters:
Name Flags
a final
b final
c final
d final
t final
static double evalQuad(double, double, double, double);
descriptor: (DDDD)D
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=8, args_size=4
start local 0 // double a
start local 2 // double b
start local 4 // double c
start local 6 // double t
0: .line 53
dload 6 /* t */
dload 6 /* t */
dload 0 /* a */
dmul
dload 2 /* b */
dadd
dmul
dload 4 /* c */
dadd
dreturn
end local 6 // double t
end local 4 // double c
end local 2 // double b
end local 0 // double a
LocalVariableTable:
Start End Slot Name Signature
0 1 0 a D
0 1 2 b D
0 1 4 c D
0 1 6 t D
MethodParameters:
Name Flags
a final
b final
c final
t final
static int quadraticRoots(double, double, double, double[], int);
descriptor: (DDD[DI)I
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=13, args_size=5
start local 0 // double a
start local 2 // double b
start local 4 // double c
start local 6 // double[] zeroes
start local 7 // int off
0: .line 59
iload 7 /* off */
istore 8 /* ret */
start local 8 // int ret
1: .line 60
dload 0 /* a */
dconst_0
dcmpl
ifeq 15
2: .line 61
dload 2 /* b */
dload 2 /* b */
dmul
ldc 4.0
dload 0 /* a */
dmul
dload 4 /* c */
dmul
dsub
dstore 9 /* dis */
start local 9 // double dis
3: .line 62
dload 9 /* dis */
dconst_0
dcmpl
ifle 12
4: .line 63
dload 9 /* dis */
invokestatic java.lang.Math.sqrt:(D)D
dstore 11 /* sqrtDis */
start local 11 // double sqrtDis
5: .line 68
dload 2 /* b */
dconst_0
dcmpl
iflt 9
6: .line 69
aload 6 /* zeroes */
iload 8 /* ret */
iinc 8 /* ret */ 1
ldc 2.0
dload 4 /* c */
dmul
dload 2 /* b */
dneg
dload 11 /* sqrtDis */
dsub
ddiv
dastore
7: .line 70
aload 6 /* zeroes */
iload 8 /* ret */
iinc 8 /* ret */ 1
dload 2 /* b */
dneg
dload 11 /* sqrtDis */
dsub
ldc 2.0
dload 0 /* a */
dmul
ddiv
dastore
8: .line 71
goto 17
9: .line 72
StackMap locals: int double double
StackMap stack:
aload 6 /* zeroes */
iload 8 /* ret */
iinc 8 /* ret */ 1
dload 2 /* b */
dneg
dload 11 /* sqrtDis */
dadd
ldc 2.0
dload 0 /* a */
dmul
ddiv
dastore
10: .line 73
aload 6 /* zeroes */
iload 8 /* ret */
iinc 8 /* ret */ 1
ldc 2.0
dload 4 /* c */
dmul
dload 2 /* b */
dneg
dload 11 /* sqrtDis */
dadd
ddiv
dastore
end local 11 // double sqrtDis
11: .line 75
goto 17
StackMap locals:
StackMap stack:
12: dload 9 /* dis */
dconst_0
dcmpl
ifne 17
13: .line 76
aload 6 /* zeroes */
iload 8 /* ret */
iinc 8 /* ret */ 1
dload 2 /* b */
dneg
ldc 2.0
dload 0 /* a */
dmul
ddiv
dastore
end local 9 // double dis
14: .line 78
goto 17
StackMap locals:
StackMap stack:
15: dload 2 /* b */
dconst_0
dcmpl
ifeq 17
16: .line 79
aload 6 /* zeroes */
iload 8 /* ret */
iinc 8 /* ret */ 1
dload 4 /* c */
dneg
dload 2 /* b */
ddiv
dastore
17: .line 81
StackMap locals:
StackMap stack:
iload 8 /* ret */
iload 7 /* off */
isub
ireturn
end local 8 // int ret
end local 7 // int off
end local 6 // double[] zeroes
end local 4 // double c
end local 2 // double b
end local 0 // double a
LocalVariableTable:
Start End Slot Name Signature
0 18 0 a D
0 18 2 b D
0 18 4 c D
0 18 6 zeroes [D
0 18 7 off I
1 18 8 ret I
3 14 9 dis D
5 11 11 sqrtDis D
MethodParameters:
Name Flags
a final
b final
c final
zeroes final
off final
static int cubicRootsInAB(double, double, double, double, double[], int, double, double);
descriptor: (DDDD[DIDD)I
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=33, args_size=8
start local 0 // double d
start local 2 // double a
start local 4 // double b
start local 6 // double c
start local 8 // double[] pts
start local 9 // int off
start local 10 // double A
start local 12 // double B
0: .line 89
dload 0 /* d */
dconst_0
dcmpl
ifne 3
1: .line 90
dload 2 /* a */
dload 4 /* b */
dload 6 /* c */
aload 8 /* pts */
iload 9 /* off */
invokestatic sun.java2d.marlin.Helpers.quadraticRoots:(DDD[DI)I
istore 14 /* num */
start local 14 // int num
2: .line 91
aload 8 /* pts */
iload 9 /* off */
iload 14 /* num */
dload 10 /* A */
dload 12 /* B */
invokestatic sun.java2d.marlin.Helpers.filterOutNotInAB:([DIIDD)I
iload 9 /* off */
isub
ireturn
end local 14 // int num
3: .line 104
StackMap locals:
StackMap stack:
dload 2 /* a */
dload 0 /* d */
ddiv
dstore 2 /* a */
4: .line 105
dload 4 /* b */
dload 0 /* d */
ddiv
dstore 4 /* b */
5: .line 106
dload 6 /* c */
dload 0 /* d */
ddiv
dstore 6 /* c */
6: .line 116
ldc 0.3333333333333333
dload 2 /* a */
dmul
dstore 14 /* sub */
start local 14 // double sub
7: .line 117
dload 2 /* a */
dload 2 /* a */
dmul
dstore 16 /* sq_A */
start local 16 // double sq_A
8: .line 118
ldc 0.3333333333333333
ldc -0.3333333333333333
dload 16 /* sq_A */
dmul
dload 4 /* b */
dadd
dmul
dstore 18 /* p */
start local 18 // double p
9: .line 119
ldc 0.5
ldc 0.07407407407407407
dload 2 /* a */
dmul
dload 16 /* sq_A */
dmul
dload 14 /* sub */
dload 4 /* b */
dmul
dsub
dload 6 /* c */
dadd
dmul
dstore 20 /* q */
start local 20 // double q
10: .line 123
dload 18 /* p */
dload 18 /* p */
dmul
dload 18 /* p */
dmul
dstore 22 /* cb_p */
start local 22 // double cb_p
11: .line 124
dload 20 /* q */
dload 20 /* q */
dmul
dload 22 /* cb_p */
dadd
dstore 24 /* D */
start local 24 // double D
12: .line 127
dload 24 /* D */
dconst_0
dcmpg
ifge 20
13: .line 129
ldc 0.3333333333333333
dload 20 /* q */
dneg
dload 22 /* cb_p */
dneg
invokestatic java.lang.Math.sqrt:(D)D
ddiv
invokestatic java.lang.Math.acos:(D)D
dmul
dstore 27 /* phi */
start local 27 // double phi
14: .line 130
ldc 2.0
dload 18 /* p */
dneg
invokestatic java.lang.Math.sqrt:(D)D
dmul
dstore 29 /* t */
start local 29 // double t
15: .line 132
aload 8 /* pts */
iload 9 /* off */
dload 29 /* t */
dload 27 /* phi */
invokestatic java.lang.Math.cos:(D)D
dmul
dload 14 /* sub */
dsub
dastore
16: .line 133
aload 8 /* pts */
iload 9 /* off */
iconst_1
iadd
dload 29 /* t */
dneg
dload 27 /* phi */
ldc 1.0471975511965976
dadd
invokestatic java.lang.Math.cos:(D)D
dmul
dload 14 /* sub */
dsub
dastore
17: .line 134
aload 8 /* pts */
iload 9 /* off */
iconst_2
iadd
dload 29 /* t */
dneg
dload 27 /* phi */
ldc 1.0471975511965976
dsub
invokestatic java.lang.Math.cos:(D)D
dmul
dload 14 /* sub */
dsub
dastore
18: .line 135
iconst_3
istore 26 /* num */
end local 29 // double t
end local 27 // double phi
start local 26 // int num
19: .line 136
goto 28
end local 26 // int num
20: .line 137
StackMap locals: double double double double double[] int double double double double double double double double
StackMap stack:
dload 24 /* D */
invokestatic java.lang.Math.sqrt:(D)D
dstore 27 /* sqrt_D */
start local 27 // double sqrt_D
21: .line 138
dload 27 /* sqrt_D */
dload 20 /* q */
dsub
invokestatic java.lang.Math.cbrt:(D)D
dstore 29 /* u */
start local 29 // double u
22: .line 139
dload 27 /* sqrt_D */
dload 20 /* q */
dadd
invokestatic java.lang.Math.cbrt:(D)D
dneg
dstore 31 /* v */
start local 31 // double v
23: .line 141
aload 8 /* pts */
iload 9 /* off */
dload 29 /* u */
dload 31 /* v */
dadd
dload 14 /* sub */
dsub
dastore
24: .line 142
iconst_1
istore 26 /* num */
start local 26 // int num
25: .line 144
dload 24 /* D */
dconst_0
ldc 1.0E-8
invokestatic sun.java2d.marlin.Helpers.within:(DDD)Z
ifeq 28
26: .line 145
aload 8 /* pts */
iload 9 /* off */
iconst_1
iadd
ldc -0.5
dload 29 /* u */
dload 31 /* v */
dadd
dmul
dload 14 /* sub */
dsub
dastore
27: .line 146
iconst_2
istore 26 /* num */
end local 31 // double v
end local 29 // double u
end local 27 // double sqrt_D
28: .line 150
StackMap locals: int
StackMap stack:
aload 8 /* pts */
iload 9 /* off */
iload 26 /* num */
dload 10 /* A */
dload 12 /* B */
invokestatic sun.java2d.marlin.Helpers.filterOutNotInAB:([DIIDD)I
iload 9 /* off */
isub
ireturn
end local 26 // int num
end local 24 // double D
end local 22 // double cb_p
end local 20 // double q
end local 18 // double p
end local 16 // double sq_A
end local 14 // double sub
end local 12 // double B
end local 10 // double A
end local 9 // int off
end local 8 // double[] pts
end local 6 // double c
end local 4 // double b
end local 2 // double a
end local 0 // double d
LocalVariableTable:
Start End Slot Name Signature
0 29 0 d D
0 29 2 a D
0 29 4 b D
0 29 6 c D
0 29 8 pts [D
0 29 9 off I
0 29 10 A D
0 29 12 B D
2 3 14 num I
7 29 14 sub D
8 29 16 sq_A D
9 29 18 p D
10 29 20 q D
11 29 22 cb_p D
12 29 24 D D
19 20 26 num I
25 29 26 num I
14 19 27 phi D
15 19 29 t D
21 28 27 sqrt_D D
22 28 29 u D
23 28 31 v D
MethodParameters:
Name Flags
d final
a
b
c
pts final
off final
A final
B final
static int filterOutNotInAB(double[], int, int, double, double);
descriptor: ([DIIDD)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=10, args_size=5
start local 0 // double[] nums
start local 1 // int off
start local 2 // int len
start local 3 // double a
start local 5 // double b
0: .line 157
iload 1 /* off */
istore 7 /* ret */
start local 7 // int ret
1: .line 158
iload 1 /* off */
istore 8 /* i */
start local 8 // int i
2: iload 1 /* off */
iload 2 /* len */
iadd
istore 9 /* end */
start local 9 // int end
3: goto 7
4: .line 159
StackMap locals: int int int
StackMap stack:
aload 0 /* nums */
iload 8 /* i */
daload
dload 3 /* a */
dcmpl
iflt 6
aload 0 /* nums */
iload 8 /* i */
daload
dload 5 /* b */
dcmpg
ifge 6
5: .line 160
aload 0 /* nums */
iload 7 /* ret */
iinc 7 /* ret */ 1
aload 0 /* nums */
iload 8 /* i */
daload
dastore
6: .line 158
StackMap locals:
StackMap stack:
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 8 /* i */
iload 9 /* end */
if_icmplt 4
end local 9 // int end
end local 8 // int i
8: .line 163
iload 7 /* ret */
ireturn
end local 7 // int ret
end local 5 // double b
end local 3 // double a
end local 2 // int len
end local 1 // int off
end local 0 // double[] nums
LocalVariableTable:
Start End Slot Name Signature
0 9 0 nums [D
0 9 1 off I
0 9 2 len I
0 9 3 a D
0 9 5 b D
1 9 7 ret I
2 8 8 i I
3 8 9 end I
MethodParameters:
Name Flags
nums final
off final
len final
a final
b final
static double fastLineLen(double, double, double, double);
descriptor: (DDDD)D
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=12, args_size=4
start local 0 // double x0
start local 2 // double y0
start local 4 // double x1
start local 6 // double y1
0: .line 169
dload 4 /* x1 */
dload 0 /* x0 */
dsub
dstore 8 /* dx */
start local 8 // double dx
1: .line 170
dload 6 /* y1 */
dload 2 /* y0 */
dsub
dstore 10 /* dy */
start local 10 // double dy
2: .line 173
dload 8 /* dx */
invokestatic java.lang.Math.abs:(D)D
dload 10 /* dy */
invokestatic java.lang.Math.abs:(D)D
dadd
dreturn
end local 10 // double dy
end local 8 // double dx
end local 6 // double y1
end local 4 // double x1
end local 2 // double y0
end local 0 // double x0
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x0 D
0 3 2 y0 D
0 3 4 x1 D
0 3 6 y1 D
1 3 8 dx D
2 3 10 dy D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
static double linelen(double, double, double, double);
descriptor: (DDDD)D
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=12, args_size=4
start local 0 // double x0
start local 2 // double y0
start local 4 // double x1
start local 6 // double y1
0: .line 179
dload 4 /* x1 */
dload 0 /* x0 */
dsub
dstore 8 /* dx */
start local 8 // double dx
1: .line 180
dload 6 /* y1 */
dload 2 /* y0 */
dsub
dstore 10 /* dy */
start local 10 // double dy
2: .line 181
dload 8 /* dx */
dload 8 /* dx */
dmul
dload 10 /* dy */
dload 10 /* dy */
dmul
dadd
invokestatic java.lang.Math.sqrt:(D)D
dreturn
end local 10 // double dy
end local 8 // double dx
end local 6 // double y1
end local 4 // double x1
end local 2 // double y0
end local 0 // double x0
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x0 D
0 3 2 y0 D
0 3 4 x1 D
0 3 6 y1 D
1 3 8 dx D
2 3 10 dy D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
static double fastQuadLen(double, double, double, double, double, double);
descriptor: (DDDDDD)D
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=20, args_size=6
start local 0 // double x0
start local 2 // double y0
start local 4 // double x1
start local 6 // double y1
start local 8 // double x2
start local 10 // double y2
0: .line 188
dload 4 /* x1 */
dload 0 /* x0 */
dsub
dstore 12 /* dx1 */
start local 12 // double dx1
1: .line 189
dload 8 /* x2 */
dload 4 /* x1 */
dsub
dstore 14 /* dx2 */
start local 14 // double dx2
2: .line 190
dload 6 /* y1 */
dload 2 /* y0 */
dsub
dstore 16 /* dy1 */
start local 16 // double dy1
3: .line 191
dload 10 /* y2 */
dload 6 /* y1 */
dsub
dstore 18 /* dy2 */
start local 18 // double dy2
4: .line 194
dload 12 /* dx1 */
invokestatic java.lang.Math.abs:(D)D
dload 14 /* dx2 */
invokestatic java.lang.Math.abs:(D)D
dadd
5: .line 195
dload 16 /* dy1 */
invokestatic java.lang.Math.abs:(D)D
6: .line 194
dadd
7: .line 195
dload 18 /* dy2 */
invokestatic java.lang.Math.abs:(D)D
8: .line 194
dadd
dreturn
end local 18 // double dy2
end local 16 // double dy1
end local 14 // double dx2
end local 12 // double dx1
end local 10 // double y2
end local 8 // double x2
end local 6 // double y1
end local 4 // double x1
end local 2 // double y0
end local 0 // double x0
LocalVariableTable:
Start End Slot Name Signature
0 9 0 x0 D
0 9 2 y0 D
0 9 4 x1 D
0 9 6 y1 D
0 9 8 x2 D
0 9 10 y2 D
1 9 12 dx1 D
2 9 14 dx2 D
3 9 16 dy1 D
4 9 18 dy2 D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
static double quadlen(double, double, double, double, double, double);
descriptor: (DDDDDD)D
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=12, args_size=6
start local 0 // double x0
start local 2 // double y0
start local 4 // double x1
start local 6 // double y1
start local 8 // double x2
start local 10 // double y2
0: .line 202
dload 0 /* x0 */
dload 2 /* y0 */
dload 4 /* x1 */
dload 6 /* y1 */
invokestatic sun.java2d.marlin.Helpers.linelen:(DDDD)D
1: .line 203
dload 4 /* x1 */
dload 6 /* y1 */
dload 8 /* x2 */
dload 10 /* y2 */
invokestatic sun.java2d.marlin.Helpers.linelen:(DDDD)D
2: .line 202
dadd
3: .line 204
dload 0 /* x0 */
dload 2 /* y0 */
dload 8 /* x2 */
dload 10 /* y2 */
invokestatic sun.java2d.marlin.Helpers.linelen:(DDDD)D
4: .line 202
dadd
5: .line 204
ldc 2.0
6: .line 202
ddiv
dreturn
end local 10 // double y2
end local 8 // double x2
end local 6 // double y1
end local 4 // double x1
end local 2 // double y0
end local 0 // double x0
LocalVariableTable:
Start End Slot Name Signature
0 7 0 x0 D
0 7 2 y0 D
0 7 4 x1 D
0 7 6 y1 D
0 7 8 x2 D
0 7 10 y2 D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
static double fastCurvelen(double, double, double, double, double, double, double, double);
descriptor: (DDDDDDDD)D
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=28, args_size=8
start local 0 // double x0
start local 2 // double y0
start local 4 // double x1
start local 6 // double y1
start local 8 // double x2
start local 10 // double y2
start local 12 // double x3
start local 14 // double y3
0: .line 212
dload 4 /* x1 */
dload 0 /* x0 */
dsub
dstore 16 /* dx1 */
start local 16 // double dx1
1: .line 213
dload 8 /* x2 */
dload 4 /* x1 */
dsub
dstore 18 /* dx2 */
start local 18 // double dx2
2: .line 214
dload 12 /* x3 */
dload 8 /* x2 */
dsub
dstore 20 /* dx3 */
start local 20 // double dx3
3: .line 215
dload 6 /* y1 */
dload 2 /* y0 */
dsub
dstore 22 /* dy1 */
start local 22 // double dy1
4: .line 216
dload 10 /* y2 */
dload 6 /* y1 */
dsub
dstore 24 /* dy2 */
start local 24 // double dy2
5: .line 217
dload 14 /* y3 */
dload 10 /* y2 */
dsub
dstore 26 /* dy3 */
start local 26 // double dy3
6: .line 220
dload 16 /* dx1 */
invokestatic java.lang.Math.abs:(D)D
dload 18 /* dx2 */
invokestatic java.lang.Math.abs:(D)D
dadd
dload 20 /* dx3 */
invokestatic java.lang.Math.abs:(D)D
dadd
7: .line 221
dload 22 /* dy1 */
invokestatic java.lang.Math.abs:(D)D
8: .line 220
dadd
9: .line 221
dload 24 /* dy2 */
invokestatic java.lang.Math.abs:(D)D
10: .line 220
dadd
11: .line 221
dload 26 /* dy3 */
invokestatic java.lang.Math.abs:(D)D
12: .line 220
dadd
dreturn
end local 26 // double dy3
end local 24 // double dy2
end local 22 // double dy1
end local 20 // double dx3
end local 18 // double dx2
end local 16 // double dx1
end local 14 // double y3
end local 12 // double x3
end local 10 // double y2
end local 8 // double x2
end local 6 // double y1
end local 4 // double x1
end local 2 // double y0
end local 0 // double x0
LocalVariableTable:
Start End Slot Name Signature
0 13 0 x0 D
0 13 2 y0 D
0 13 4 x1 D
0 13 6 y1 D
0 13 8 x2 D
0 13 10 y2 D
0 13 12 x3 D
0 13 14 y3 D
1 13 16 dx1 D
2 13 18 dx2 D
3 13 20 dx3 D
4 13 22 dy1 D
5 13 24 dy2 D
6 13 26 dy3 D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
static double curvelen(double, double, double, double, double, double, double, double);
descriptor: (DDDDDDDD)D
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=16, args_size=8
start local 0 // double x0
start local 2 // double y0
start local 4 // double x1
start local 6 // double y1
start local 8 // double x2
start local 10 // double y2
start local 12 // double x3
start local 14 // double y3
0: .line 229
dload 0 /* x0 */
dload 2 /* y0 */
dload 4 /* x1 */
dload 6 /* y1 */
invokestatic sun.java2d.marlin.Helpers.linelen:(DDDD)D
1: .line 230
dload 4 /* x1 */
dload 6 /* y1 */
dload 8 /* x2 */
dload 10 /* y2 */
invokestatic sun.java2d.marlin.Helpers.linelen:(DDDD)D
2: .line 229
dadd
3: .line 231
dload 8 /* x2 */
dload 10 /* y2 */
dload 12 /* x3 */
dload 14 /* y3 */
invokestatic sun.java2d.marlin.Helpers.linelen:(DDDD)D
4: .line 229
dadd
5: .line 232
dload 0 /* x0 */
dload 2 /* y0 */
dload 12 /* x3 */
dload 14 /* y3 */
invokestatic sun.java2d.marlin.Helpers.linelen:(DDDD)D
6: .line 229
dadd
7: .line 232
ldc 2.0
8: .line 229
ddiv
dreturn
end local 14 // double y3
end local 12 // double x3
end local 10 // double y2
end local 8 // double x2
end local 6 // double y1
end local 4 // double x1
end local 2 // double y0
end local 0 // double x0
LocalVariableTable:
Start End Slot Name Signature
0 9 0 x0 D
0 9 2 y0 D
0 9 4 x1 D
0 9 6 y1 D
0 9 8 x2 D
0 9 10 y2 D
0 9 12 x3 D
0 9 14 y3 D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
static int findSubdivPoints(sun.java2d.marlin.Curve, double[], double[], int, double);
descriptor: (Lsun/java2d/marlin/Curve;[D[DID)I
flags: (0x0008) ACC_STATIC
Code:
stack=17, locals=32, args_size=5
start local 0 // sun.java2d.marlin.Curve c
start local 1 // double[] pts
start local 2 // double[] ts
start local 3 // int type
start local 4 // double w2
0: .line 242
aload 1 /* pts */
iconst_2
daload
aload 1 /* pts */
iconst_0
daload
dsub
dstore 6 /* x12 */
start local 6 // double x12
1: .line 243
aload 1 /* pts */
iconst_3
daload
aload 1 /* pts */
iconst_1
daload
dsub
dstore 8 /* y12 */
start local 8 // double y12
2: .line 246
dload 8 /* y12 */
dconst_0
dcmpl
ifeq 19
dload 6 /* x12 */
dconst_0
dcmpl
ifeq 19
3: .line 250
dload 6 /* x12 */
dload 6 /* x12 */
dmul
dload 8 /* y12 */
dload 8 /* y12 */
dmul
dadd
invokestatic java.lang.Math.sqrt:(D)D
dstore 10 /* hypot */
start local 10 // double hypot
4: .line 251
dload 6 /* x12 */
dload 10 /* hypot */
ddiv
dstore 12 /* cos */
start local 12 // double cos
5: .line 252
dload 8 /* y12 */
dload 10 /* hypot */
ddiv
dstore 14 /* sin */
start local 14 // double sin
6: .line 253
dload 12 /* cos */
aload 1 /* pts */
iconst_0
daload
dmul
dload 14 /* sin */
aload 1 /* pts */
iconst_1
daload
dmul
dadd
dstore 16 /* x1 */
start local 16 // double x1
7: .line 254
dload 12 /* cos */
aload 1 /* pts */
iconst_1
daload
dmul
dload 14 /* sin */
aload 1 /* pts */
iconst_0
daload
dmul
dsub
dstore 18 /* y1 */
start local 18 // double y1
8: .line 255
dload 12 /* cos */
aload 1 /* pts */
iconst_2
daload
dmul
dload 14 /* sin */
aload 1 /* pts */
iconst_3
daload
dmul
dadd
dstore 20 /* x2 */
start local 20 // double x2
9: .line 256
dload 12 /* cos */
aload 1 /* pts */
iconst_3
daload
dmul
dload 14 /* sin */
aload 1 /* pts */
iconst_2
daload
dmul
dsub
dstore 22 /* y2 */
start local 22 // double y2
10: .line 257
dload 12 /* cos */
aload 1 /* pts */
iconst_4
daload
dmul
dload 14 /* sin */
aload 1 /* pts */
iconst_5
daload
dmul
dadd
dstore 24 /* x3 */
start local 24 // double x3
11: .line 258
dload 12 /* cos */
aload 1 /* pts */
iconst_5
daload
dmul
dload 14 /* sin */
aload 1 /* pts */
iconst_4
daload
dmul
dsub
dstore 26 /* y3 */
start local 26 // double y3
12: .line 260
iload 3 /* type */
tableswitch { // 6 - 8
6: 17
7: 18
8: 13
default: 18
}
13: .line 262
StackMap locals: sun.java2d.marlin.Curve double[] double[] int double double double double double double double double double double double double
StackMap stack:
dload 12 /* cos */
aload 1 /* pts */
bipush 6
daload
dmul
dload 14 /* sin */
aload 1 /* pts */
bipush 7
daload
dmul
dadd
dstore 28 /* x4 */
start local 28 // double x4
14: .line 263
dload 12 /* cos */
aload 1 /* pts */
bipush 7
daload
dmul
dload 14 /* sin */
aload 1 /* pts */
bipush 6
daload
dmul
dsub
dstore 30 /* y4 */
start local 30 // double y4
15: .line 264
aload 0 /* c */
dload 16 /* x1 */
dload 18 /* y1 */
dload 20 /* x2 */
dload 22 /* y2 */
dload 24 /* x3 */
dload 26 /* y3 */
dload 28 /* x4 */
dload 30 /* y4 */
invokevirtual sun.java2d.marlin.Curve.set:(DDDDDDDD)V
16: .line 265
goto 20
end local 30 // double y4
end local 28 // double x4
17: .line 267
StackMap locals:
StackMap stack:
aload 0 /* c */
dload 16 /* x1 */
dload 18 /* y1 */
dload 20 /* x2 */
dload 22 /* y2 */
dload 24 /* x3 */
dload 26 /* y3 */
invokevirtual sun.java2d.marlin.Curve.set:(DDDDDD)V
end local 26 // double y3
end local 24 // double x3
end local 22 // double y2
end local 20 // double x2
end local 18 // double y1
end local 16 // double x1
end local 14 // double sin
end local 12 // double cos
end local 10 // double hypot
18: .line 271
StackMap locals: sun.java2d.marlin.Curve double[] double[] int double double double
StackMap stack:
goto 20
19: .line 272
StackMap locals:
StackMap stack:
aload 0 /* c */
aload 1 /* pts */
iload 3 /* type */
invokevirtual sun.java2d.marlin.Curve.set:([DI)V
20: .line 275
StackMap locals:
StackMap stack:
iconst_0
istore 10 /* ret */
start local 10 // int ret
21: .line 278
iload 10 /* ret */
aload 0 /* c */
aload 2 /* ts */
iload 10 /* ret */
invokevirtual sun.java2d.marlin.Curve.dxRoots:([DI)I
iadd
istore 10 /* ret */
22: .line 279
iload 10 /* ret */
aload 0 /* c */
aload 2 /* ts */
iload 10 /* ret */
invokevirtual sun.java2d.marlin.Curve.dyRoots:([DI)I
iadd
istore 10 /* ret */
23: .line 282
iload 3 /* type */
bipush 8
if_icmpne 25
24: .line 284
iload 10 /* ret */
aload 0 /* c */
aload 2 /* ts */
iload 10 /* ret */
invokevirtual sun.java2d.marlin.Curve.infPoints:([DI)I
iadd
istore 10 /* ret */
25: .line 289
StackMap locals: int
StackMap stack:
iload 10 /* ret */
aload 0 /* c */
aload 2 /* ts */
iload 10 /* ret */
dload 4 /* w2 */
ldc 1.0E-4
invokevirtual sun.java2d.marlin.Curve.rootsOfROCMinusW:([DIDD)I
iadd
istore 10 /* ret */
26: .line 291
aload 2 /* ts */
iconst_0
iload 10 /* ret */
ldc 1.0E-4
ldc 0.9999
invokestatic sun.java2d.marlin.Helpers.filterOutNotInAB:([DIIDD)I
istore 10 /* ret */
27: .line 292
aload 2 /* ts */
iload 10 /* ret */
invokestatic sun.java2d.marlin.Helpers.isort:([DI)V
28: .line 293
iload 10 /* ret */
ireturn
end local 10 // int ret
end local 8 // double y12
end local 6 // double x12
end local 4 // double w2
end local 3 // int type
end local 2 // double[] ts
end local 1 // double[] pts
end local 0 // sun.java2d.marlin.Curve c
LocalVariableTable:
Start End Slot Name Signature
0 29 0 c Lsun/java2d/marlin/Curve;
0 29 1 pts [D
0 29 2 ts [D
0 29 3 type I
0 29 4 w2 D
1 29 6 x12 D
2 29 8 y12 D
4 18 10 hypot D
5 18 12 cos D
6 18 14 sin D
7 18 16 x1 D
8 18 18 y1 D
9 18 20 x2 D
10 18 22 y2 D
11 18 24 x3 D
12 18 26 y3 D
14 17 28 x4 D
15 17 30 y4 D
21 29 10 ret I
MethodParameters:
Name Flags
c final
pts final
ts final
type final
w2 final
static int findClipPoints(sun.java2d.marlin.Curve, double[], double[], int, int, double[]);
descriptor: (Lsun/java2d/marlin/Curve;[D[DII[D)I
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=7, args_size=6
start local 0 // sun.java2d.marlin.Curve curve
start local 1 // double[] pts
start local 2 // double[] ts
start local 3 // int type
start local 4 // int outCodeOR
start local 5 // double[] clipRect
0: .line 304
aload 0 /* curve */
aload 1 /* pts */
iload 3 /* type */
invokevirtual sun.java2d.marlin.Curve.set:([DI)V
1: .line 307
iconst_0
istore 6 /* ret */
start local 6 // int ret
2: .line 309
iload 4 /* outCodeOR */
iconst_4
iand
ifeq 4
3: .line 310
iload 6 /* ret */
aload 0 /* curve */
aload 2 /* ts */
iload 6 /* ret */
aload 5 /* clipRect */
iconst_2
daload
invokevirtual sun.java2d.marlin.Curve.xPoints:([DID)I
iadd
istore 6 /* ret */
4: .line 312
StackMap locals: int
StackMap stack:
iload 4 /* outCodeOR */
bipush 8
iand
ifeq 6
5: .line 313
iload 6 /* ret */
aload 0 /* curve */
aload 2 /* ts */
iload 6 /* ret */
aload 5 /* clipRect */
iconst_3
daload
invokevirtual sun.java2d.marlin.Curve.xPoints:([DID)I
iadd
istore 6 /* ret */
6: .line 315
StackMap locals:
StackMap stack:
iload 4 /* outCodeOR */
iconst_1
iand
ifeq 8
7: .line 316
iload 6 /* ret */
aload 0 /* curve */
aload 2 /* ts */
iload 6 /* ret */
aload 5 /* clipRect */
iconst_0
daload
invokevirtual sun.java2d.marlin.Curve.yPoints:([DID)I
iadd
istore 6 /* ret */
8: .line 318
StackMap locals:
StackMap stack:
iload 4 /* outCodeOR */
iconst_2
iand
ifeq 10
9: .line 319
iload 6 /* ret */
aload 0 /* curve */
aload 2 /* ts */
iload 6 /* ret */
aload 5 /* clipRect */
iconst_1
daload
invokevirtual sun.java2d.marlin.Curve.yPoints:([DID)I
iadd
istore 6 /* ret */
10: .line 321
StackMap locals:
StackMap stack:
aload 2 /* ts */
iload 6 /* ret */
invokestatic sun.java2d.marlin.Helpers.isort:([DI)V
11: .line 322
iload 6 /* ret */
ireturn
end local 6 // int ret
end local 5 // double[] clipRect
end local 4 // int outCodeOR
end local 3 // int type
end local 2 // double[] ts
end local 1 // double[] pts
end local 0 // sun.java2d.marlin.Curve curve
LocalVariableTable:
Start End Slot Name Signature
0 12 0 curve Lsun/java2d/marlin/Curve;
0 12 1 pts [D
0 12 2 ts [D
0 12 3 type I
0 12 4 outCodeOR I
0 12 5 clipRect [D
2 12 6 ret I
MethodParameters:
Name Flags
curve final
pts final
ts final
type final
outCodeOR final
clipRect final
static void subdivide(double[], double[], double[], int);
descriptor: ([D[D[DI)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 // double[] src
start local 1 // double[] left
start local 2 // double[] right
start local 3 // int type
0: .line 329
iload 3 /* type */
tableswitch { // 6 - 8
6: 3
7: 5
8: 1
default: 5
}
1: .line 331
StackMap locals:
StackMap stack:
aload 0 /* src */
aload 1 /* left */
aload 2 /* right */
invokestatic sun.java2d.marlin.Helpers.subdivideCubic:([D[D[D)V
2: .line 332
return
3: .line 334
StackMap locals:
StackMap stack:
aload 0 /* src */
aload 1 /* left */
aload 2 /* right */
invokestatic sun.java2d.marlin.Helpers.subdivideQuad:([D[D[D)V
4: .line 335
return
5: .line 337
StackMap locals:
StackMap stack:
new java.lang.InternalError
dup
ldc "Unsupported curve type"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 3 // int type
end local 2 // double[] right
end local 1 // double[] left
end local 0 // double[] src
LocalVariableTable:
Start End Slot Name Signature
0 6 0 src [D
0 6 1 left [D
0 6 2 right [D
0 6 3 type I
MethodParameters:
Name Flags
src final
left final
right final
type final
static void isort(double[], int);
descriptor: ([DI)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 // double[] a
start local 1 // int len
0: .line 342
iconst_1
istore 2 /* i */
start local 2 // int i
1: goto 10
2: .line 343
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 2 /* i */
daload
dstore 4 /* ai */
start local 4 // double ai
3: .line 344
iload 2 /* i */
iconst_1
isub
istore 3 /* j */
start local 3 // int j
4: .line 345
goto 7
5: .line 346
StackMap locals: int double
StackMap stack:
aload 0 /* a */
iload 3 /* j */
iconst_1
iadd
aload 0 /* a */
iload 3 /* j */
daload
dastore
6: .line 345
iinc 3 /* j */ -1
StackMap locals:
StackMap stack:
7: iload 3 /* j */
iflt 8
aload 0 /* a */
iload 3 /* j */
daload
dload 4 /* ai */
dcmpl
ifgt 5
8: .line 348
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 3 /* j */
iconst_1
iadd
dload 4 /* ai */
dastore
end local 4 // double ai
9: .line 342
iinc 2 /* i */ 1
end local 3 // int j
StackMap locals:
StackMap stack:
10: iload 2 /* i */
iload 1 /* len */
if_icmplt 2
end local 2 // int i
11: .line 350
return
end local 1 // int len
end local 0 // double[] a
LocalVariableTable:
Start End Slot Name Signature
0 12 0 a [D
0 12 1 len I
1 11 2 i I
4 10 3 j I
3 9 4 ai D
MethodParameters:
Name Flags
a final
len final
static void subdivideCubic(double[], double[], double[]);
descriptor: ([D[D[D)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=23, args_size=3
start local 0 // double[] src
start local 1 // double[] left
start local 2 // double[] right
0: .line 381
aload 0 /* src */
iconst_0
daload
dstore 3 /* x1 */
start local 3 // double x1
1: .line 382
aload 0 /* src */
iconst_1
daload
dstore 5 /* y1 */
start local 5 // double y1
2: .line 383
aload 0 /* src */
iconst_2
daload
dstore 7 /* cx1 */
start local 7 // double cx1
3: .line 384
aload 0 /* src */
iconst_3
daload
dstore 9 /* cy1 */
start local 9 // double cy1
4: .line 385
aload 0 /* src */
iconst_4
daload
dstore 11 /* cx2 */
start local 11 // double cx2
5: .line 386
aload 0 /* src */
iconst_5
daload
dstore 13 /* cy2 */
start local 13 // double cy2
6: .line 387
aload 0 /* src */
bipush 6
daload
dstore 15 /* x2 */
start local 15 // double x2
7: .line 388
aload 0 /* src */
bipush 7
daload
dstore 17 /* y2 */
start local 17 // double y2
8: .line 390
aload 1 /* left */
iconst_0
dload 3 /* x1 */
dastore
9: .line 391
aload 1 /* left */
iconst_1
dload 5 /* y1 */
dastore
10: .line 393
aload 2 /* right */
bipush 6
dload 15 /* x2 */
dastore
11: .line 394
aload 2 /* right */
bipush 7
dload 17 /* y2 */
dastore
12: .line 396
dload 3 /* x1 */
dload 7 /* cx1 */
dadd
ldc 2.0
ddiv
dstore 3 /* x1 */
13: .line 397
dload 5 /* y1 */
dload 9 /* cy1 */
dadd
ldc 2.0
ddiv
dstore 5 /* y1 */
14: .line 398
dload 15 /* x2 */
dload 11 /* cx2 */
dadd
ldc 2.0
ddiv
dstore 15 /* x2 */
15: .line 399
dload 17 /* y2 */
dload 13 /* cy2 */
dadd
ldc 2.0
ddiv
dstore 17 /* y2 */
16: .line 401
dload 7 /* cx1 */
dload 11 /* cx2 */
dadd
ldc 2.0
ddiv
dstore 19 /* cx */
start local 19 // double cx
17: .line 402
dload 9 /* cy1 */
dload 13 /* cy2 */
dadd
ldc 2.0
ddiv
dstore 21 /* cy */
start local 21 // double cy
18: .line 404
dload 3 /* x1 */
dload 19 /* cx */
dadd
ldc 2.0
ddiv
dstore 7 /* cx1 */
19: .line 405
dload 5 /* y1 */
dload 21 /* cy */
dadd
ldc 2.0
ddiv
dstore 9 /* cy1 */
20: .line 406
dload 15 /* x2 */
dload 19 /* cx */
dadd
ldc 2.0
ddiv
dstore 11 /* cx2 */
21: .line 407
dload 17 /* y2 */
dload 21 /* cy */
dadd
ldc 2.0
ddiv
dstore 13 /* cy2 */
22: .line 408
dload 7 /* cx1 */
dload 11 /* cx2 */
dadd
ldc 2.0
ddiv
dstore 19 /* cx */
23: .line 409
dload 9 /* cy1 */
dload 13 /* cy2 */
dadd
ldc 2.0
ddiv
dstore 21 /* cy */
24: .line 411
aload 1 /* left */
iconst_2
dload 3 /* x1 */
dastore
25: .line 412
aload 1 /* left */
iconst_3
dload 5 /* y1 */
dastore
26: .line 413
aload 1 /* left */
iconst_4
dload 7 /* cx1 */
dastore
27: .line 414
aload 1 /* left */
iconst_5
dload 9 /* cy1 */
dastore
28: .line 415
aload 1 /* left */
bipush 6
dload 19 /* cx */
dastore
29: .line 416
aload 1 /* left */
bipush 7
dload 21 /* cy */
dastore
30: .line 418
aload 2 /* right */
iconst_0
dload 19 /* cx */
dastore
31: .line 419
aload 2 /* right */
iconst_1
dload 21 /* cy */
dastore
32: .line 420
aload 2 /* right */
iconst_2
dload 11 /* cx2 */
dastore
33: .line 421
aload 2 /* right */
iconst_3
dload 13 /* cy2 */
dastore
34: .line 422
aload 2 /* right */
iconst_4
dload 15 /* x2 */
dastore
35: .line 423
aload 2 /* right */
iconst_5
dload 17 /* y2 */
dastore
36: .line 424
return
end local 21 // double cy
end local 19 // double cx
end local 17 // double y2
end local 15 // double x2
end local 13 // double cy2
end local 11 // double cx2
end local 9 // double cy1
end local 7 // double cx1
end local 5 // double y1
end local 3 // double x1
end local 2 // double[] right
end local 1 // double[] left
end local 0 // double[] src
LocalVariableTable:
Start End Slot Name Signature
0 37 0 src [D
0 37 1 left [D
0 37 2 right [D
1 37 3 x1 D
2 37 5 y1 D
3 37 7 cx1 D
4 37 9 cy1 D
5 37 11 cx2 D
6 37 13 cy2 D
7 37 15 x2 D
8 37 17 y2 D
17 37 19 cx D
18 37 21 cy D
MethodParameters:
Name Flags
src final
left final
right final
static void subdivideCubicAt(double, double[], int, double[], int, int);
descriptor: (D[DI[DII)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=27, args_size=6
start local 0 // double t
start local 2 // double[] src
start local 3 // int offS
start local 4 // double[] pts
start local 5 // int offL
start local 6 // int offR
0: .line 430
aload 2 /* src */
iload 3 /* offS */
daload
dstore 7 /* x1 */
start local 7 // double x1
1: .line 431
aload 2 /* src */
iload 3 /* offS */
iconst_1
iadd
daload
dstore 9 /* y1 */
start local 9 // double y1
2: .line 432
aload 2 /* src */
iload 3 /* offS */
iconst_2
iadd
daload
dstore 11 /* cx1 */
start local 11 // double cx1
3: .line 433
aload 2 /* src */
iload 3 /* offS */
iconst_3
iadd
daload
dstore 13 /* cy1 */
start local 13 // double cy1
4: .line 434
aload 2 /* src */
iload 3 /* offS */
iconst_4
iadd
daload
dstore 15 /* cx2 */
start local 15 // double cx2
5: .line 435
aload 2 /* src */
iload 3 /* offS */
iconst_5
iadd
daload
dstore 17 /* cy2 */
start local 17 // double cy2
6: .line 436
aload 2 /* src */
iload 3 /* offS */
bipush 6
iadd
daload
dstore 19 /* x2 */
start local 19 // double x2
7: .line 437
aload 2 /* src */
iload 3 /* offS */
bipush 7
iadd
daload
dstore 21 /* y2 */
start local 21 // double y2
8: .line 439
aload 4 /* pts */
iload 5 /* offL */
dload 7 /* x1 */
dastore
9: .line 440
aload 4 /* pts */
iload 5 /* offL */
iconst_1
iadd
dload 9 /* y1 */
dastore
10: .line 442
aload 4 /* pts */
iload 6 /* offR */
bipush 6
iadd
dload 19 /* x2 */
dastore
11: .line 443
aload 4 /* pts */
iload 6 /* offR */
bipush 7
iadd
dload 21 /* y2 */
dastore
12: .line 445
dload 7 /* x1 */
dload 0 /* t */
dload 11 /* cx1 */
dload 7 /* x1 */
dsub
dmul
dadd
dstore 7 /* x1 */
13: .line 446
dload 9 /* y1 */
dload 0 /* t */
dload 13 /* cy1 */
dload 9 /* y1 */
dsub
dmul
dadd
dstore 9 /* y1 */
14: .line 447
dload 15 /* cx2 */
dload 0 /* t */
dload 19 /* x2 */
dload 15 /* cx2 */
dsub
dmul
dadd
dstore 19 /* x2 */
15: .line 448
dload 17 /* cy2 */
dload 0 /* t */
dload 21 /* y2 */
dload 17 /* cy2 */
dsub
dmul
dadd
dstore 21 /* y2 */
16: .line 450
dload 11 /* cx1 */
dload 0 /* t */
dload 15 /* cx2 */
dload 11 /* cx1 */
dsub
dmul
dadd
dstore 23 /* cx */
start local 23 // double cx
17: .line 451
dload 13 /* cy1 */
dload 0 /* t */
dload 17 /* cy2 */
dload 13 /* cy1 */
dsub
dmul
dadd
dstore 25 /* cy */
start local 25 // double cy
18: .line 453
dload 7 /* x1 */
dload 0 /* t */
dload 23 /* cx */
dload 7 /* x1 */
dsub
dmul
dadd
dstore 11 /* cx1 */
19: .line 454
dload 9 /* y1 */
dload 0 /* t */
dload 25 /* cy */
dload 9 /* y1 */
dsub
dmul
dadd
dstore 13 /* cy1 */
20: .line 455
dload 23 /* cx */
dload 0 /* t */
dload 19 /* x2 */
dload 23 /* cx */
dsub
dmul
dadd
dstore 15 /* cx2 */
21: .line 456
dload 25 /* cy */
dload 0 /* t */
dload 21 /* y2 */
dload 25 /* cy */
dsub
dmul
dadd
dstore 17 /* cy2 */
22: .line 457
dload 11 /* cx1 */
dload 0 /* t */
dload 15 /* cx2 */
dload 11 /* cx1 */
dsub
dmul
dadd
dstore 23 /* cx */
23: .line 458
dload 13 /* cy1 */
dload 0 /* t */
dload 17 /* cy2 */
dload 13 /* cy1 */
dsub
dmul
dadd
dstore 25 /* cy */
24: .line 460
aload 4 /* pts */
iload 5 /* offL */
iconst_2
iadd
dload 7 /* x1 */
dastore
25: .line 461
aload 4 /* pts */
iload 5 /* offL */
iconst_3
iadd
dload 9 /* y1 */
dastore
26: .line 462
aload 4 /* pts */
iload 5 /* offL */
iconst_4
iadd
dload 11 /* cx1 */
dastore
27: .line 463
aload 4 /* pts */
iload 5 /* offL */
iconst_5
iadd
dload 13 /* cy1 */
dastore
28: .line 464
aload 4 /* pts */
iload 5 /* offL */
bipush 6
iadd
dload 23 /* cx */
dastore
29: .line 465
aload 4 /* pts */
iload 5 /* offL */
bipush 7
iadd
dload 25 /* cy */
dastore
30: .line 467
aload 4 /* pts */
iload 6 /* offR */
dload 23 /* cx */
dastore
31: .line 468
aload 4 /* pts */
iload 6 /* offR */
iconst_1
iadd
dload 25 /* cy */
dastore
32: .line 469
aload 4 /* pts */
iload 6 /* offR */
iconst_2
iadd
dload 15 /* cx2 */
dastore
33: .line 470
aload 4 /* pts */
iload 6 /* offR */
iconst_3
iadd
dload 17 /* cy2 */
dastore
34: .line 471
aload 4 /* pts */
iload 6 /* offR */
iconst_4
iadd
dload 19 /* x2 */
dastore
35: .line 472
aload 4 /* pts */
iload 6 /* offR */
iconst_5
iadd
dload 21 /* y2 */
dastore
36: .line 473
return
end local 25 // double cy
end local 23 // double cx
end local 21 // double y2
end local 19 // double x2
end local 17 // double cy2
end local 15 // double cx2
end local 13 // double cy1
end local 11 // double cx1
end local 9 // double y1
end local 7 // double x1
end local 6 // int offR
end local 5 // int offL
end local 4 // double[] pts
end local 3 // int offS
end local 2 // double[] src
end local 0 // double t
LocalVariableTable:
Start End Slot Name Signature
0 37 0 t D
0 37 2 src [D
0 37 3 offS I
0 37 4 pts [D
0 37 5 offL I
0 37 6 offR I
1 37 7 x1 D
2 37 9 y1 D
3 37 11 cx1 D
4 37 13 cy1 D
5 37 15 cx2 D
6 37 17 cy2 D
7 37 19 x2 D
8 37 21 y2 D
17 37 23 cx D
18 37 25 cy D
MethodParameters:
Name Flags
t final
src final
offS final
pts final
offL final
offR final
static void subdivideQuad(double[], double[], double[]);
descriptor: ([D[D[D)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=15, args_size=3
start local 0 // double[] src
start local 1 // double[] left
start local 2 // double[] right
0: .line 479
aload 0 /* src */
iconst_0
daload
dstore 3 /* x1 */
start local 3 // double x1
1: .line 480
aload 0 /* src */
iconst_1
daload
dstore 5 /* y1 */
start local 5 // double y1
2: .line 481
aload 0 /* src */
iconst_2
daload
dstore 7 /* cx */
start local 7 // double cx
3: .line 482
aload 0 /* src */
iconst_3
daload
dstore 9 /* cy */
start local 9 // double cy
4: .line 483
aload 0 /* src */
iconst_4
daload
dstore 11 /* x2 */
start local 11 // double x2
5: .line 484
aload 0 /* src */
iconst_5
daload
dstore 13 /* y2 */
start local 13 // double y2
6: .line 486
aload 1 /* left */
iconst_0
dload 3 /* x1 */
dastore
7: .line 487
aload 1 /* left */
iconst_1
dload 5 /* y1 */
dastore
8: .line 489
aload 2 /* right */
iconst_4
dload 11 /* x2 */
dastore
9: .line 490
aload 2 /* right */
iconst_5
dload 13 /* y2 */
dastore
10: .line 492
dload 3 /* x1 */
dload 7 /* cx */
dadd
ldc 2.0
ddiv
dstore 3 /* x1 */
11: .line 493
dload 5 /* y1 */
dload 9 /* cy */
dadd
ldc 2.0
ddiv
dstore 5 /* y1 */
12: .line 494
dload 11 /* x2 */
dload 7 /* cx */
dadd
ldc 2.0
ddiv
dstore 11 /* x2 */
13: .line 495
dload 13 /* y2 */
dload 9 /* cy */
dadd
ldc 2.0
ddiv
dstore 13 /* y2 */
14: .line 496
dload 3 /* x1 */
dload 11 /* x2 */
dadd
ldc 2.0
ddiv
dstore 7 /* cx */
15: .line 497
dload 5 /* y1 */
dload 13 /* y2 */
dadd
ldc 2.0
ddiv
dstore 9 /* cy */
16: .line 499
aload 1 /* left */
iconst_2
dload 3 /* x1 */
dastore
17: .line 500
aload 1 /* left */
iconst_3
dload 5 /* y1 */
dastore
18: .line 501
aload 1 /* left */
iconst_4
dload 7 /* cx */
dastore
19: .line 502
aload 1 /* left */
iconst_5
dload 9 /* cy */
dastore
20: .line 504
aload 2 /* right */
iconst_0
dload 7 /* cx */
dastore
21: .line 505
aload 2 /* right */
iconst_1
dload 9 /* cy */
dastore
22: .line 506
aload 2 /* right */
iconst_2
dload 11 /* x2 */
dastore
23: .line 507
aload 2 /* right */
iconst_3
dload 13 /* y2 */
dastore
24: .line 508
return
end local 13 // double y2
end local 11 // double x2
end local 9 // double cy
end local 7 // double cx
end local 5 // double y1
end local 3 // double x1
end local 2 // double[] right
end local 1 // double[] left
end local 0 // double[] src
LocalVariableTable:
Start End Slot Name Signature
0 25 0 src [D
0 25 1 left [D
0 25 2 right [D
1 25 3 x1 D
2 25 5 y1 D
3 25 7 cx D
4 25 9 cy D
5 25 11 x2 D
6 25 13 y2 D
MethodParameters:
Name Flags
src final
left final
right final
static void subdivideQuadAt(double, double[], int, double[], int, int);
descriptor: (D[DI[DII)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=19, args_size=6
start local 0 // double t
start local 2 // double[] src
start local 3 // int offS
start local 4 // double[] pts
start local 5 // int offL
start local 6 // int offR
0: .line 514
aload 2 /* src */
iload 3 /* offS */
daload
dstore 7 /* x1 */
start local 7 // double x1
1: .line 515
aload 2 /* src */
iload 3 /* offS */
iconst_1
iadd
daload
dstore 9 /* y1 */
start local 9 // double y1
2: .line 516
aload 2 /* src */
iload 3 /* offS */
iconst_2
iadd
daload
dstore 11 /* cx */
start local 11 // double cx
3: .line 517
aload 2 /* src */
iload 3 /* offS */
iconst_3
iadd
daload
dstore 13 /* cy */
start local 13 // double cy
4: .line 518
aload 2 /* src */
iload 3 /* offS */
iconst_4
iadd
daload
dstore 15 /* x2 */
start local 15 // double x2
5: .line 519
aload 2 /* src */
iload 3 /* offS */
iconst_5
iadd
daload
dstore 17 /* y2 */
start local 17 // double y2
6: .line 521
aload 4 /* pts */
iload 5 /* offL */
dload 7 /* x1 */
dastore
7: .line 522
aload 4 /* pts */
iload 5 /* offL */
iconst_1
iadd
dload 9 /* y1 */
dastore
8: .line 524
aload 4 /* pts */
iload 6 /* offR */
iconst_4
iadd
dload 15 /* x2 */
dastore
9: .line 525
aload 4 /* pts */
iload 6 /* offR */
iconst_5
iadd
dload 17 /* y2 */
dastore
10: .line 527
dload 7 /* x1 */
dload 0 /* t */
dload 11 /* cx */
dload 7 /* x1 */
dsub
dmul
dadd
dstore 7 /* x1 */
11: .line 528
dload 9 /* y1 */
dload 0 /* t */
dload 13 /* cy */
dload 9 /* y1 */
dsub
dmul
dadd
dstore 9 /* y1 */
12: .line 529
dload 11 /* cx */
dload 0 /* t */
dload 15 /* x2 */
dload 11 /* cx */
dsub
dmul
dadd
dstore 15 /* x2 */
13: .line 530
dload 13 /* cy */
dload 0 /* t */
dload 17 /* y2 */
dload 13 /* cy */
dsub
dmul
dadd
dstore 17 /* y2 */
14: .line 531
dload 7 /* x1 */
dload 0 /* t */
dload 15 /* x2 */
dload 7 /* x1 */
dsub
dmul
dadd
dstore 11 /* cx */
15: .line 532
dload 9 /* y1 */
dload 0 /* t */
dload 17 /* y2 */
dload 9 /* y1 */
dsub
dmul
dadd
dstore 13 /* cy */
16: .line 534
aload 4 /* pts */
iload 5 /* offL */
iconst_2
iadd
dload 7 /* x1 */
dastore
17: .line 535
aload 4 /* pts */
iload 5 /* offL */
iconst_3
iadd
dload 9 /* y1 */
dastore
18: .line 536
aload 4 /* pts */
iload 5 /* offL */
iconst_4
iadd
dload 11 /* cx */
dastore
19: .line 537
aload 4 /* pts */
iload 5 /* offL */
iconst_5
iadd
dload 13 /* cy */
dastore
20: .line 539
aload 4 /* pts */
iload 6 /* offR */
dload 11 /* cx */
dastore
21: .line 540
aload 4 /* pts */
iload 6 /* offR */
iconst_1
iadd
dload 13 /* cy */
dastore
22: .line 541
aload 4 /* pts */
iload 6 /* offR */
iconst_2
iadd
dload 15 /* x2 */
dastore
23: .line 542
aload 4 /* pts */
iload 6 /* offR */
iconst_3
iadd
dload 17 /* y2 */
dastore
24: .line 543
return
end local 17 // double y2
end local 15 // double x2
end local 13 // double cy
end local 11 // double cx
end local 9 // double y1
end local 7 // double x1
end local 6 // int offR
end local 5 // int offL
end local 4 // double[] pts
end local 3 // int offS
end local 2 // double[] src
end local 0 // double t
LocalVariableTable:
Start End Slot Name Signature
0 25 0 t D
0 25 2 src [D
0 25 3 offS I
0 25 4 pts [D
0 25 5 offL I
0 25 6 offR I
1 25 7 x1 D
2 25 9 y1 D
3 25 11 cx D
4 25 13 cy D
5 25 15 x2 D
6 25 17 y2 D
MethodParameters:
Name Flags
t final
src final
offS final
pts final
offL final
offR final
static void subdivideLineAt(double, double[], int, double[], int, int);
descriptor: (D[DI[DII)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=15, args_size=6
start local 0 // double t
start local 2 // double[] src
start local 3 // int offS
start local 4 // double[] pts
start local 5 // int offL
start local 6 // int offR
0: .line 549
aload 2 /* src */
iload 3 /* offS */
daload
dstore 7 /* x1 */
start local 7 // double x1
1: .line 550
aload 2 /* src */
iload 3 /* offS */
iconst_1
iadd
daload
dstore 9 /* y1 */
start local 9 // double y1
2: .line 551
aload 2 /* src */
iload 3 /* offS */
iconst_2
iadd
daload
dstore 11 /* x2 */
start local 11 // double x2
3: .line 552
aload 2 /* src */
iload 3 /* offS */
iconst_3
iadd
daload
dstore 13 /* y2 */
start local 13 // double y2
4: .line 554
aload 4 /* pts */
iload 5 /* offL */
dload 7 /* x1 */
dastore
5: .line 555
aload 4 /* pts */
iload 5 /* offL */
iconst_1
iadd
dload 9 /* y1 */
dastore
6: .line 557
aload 4 /* pts */
iload 6 /* offR */
iconst_2
iadd
dload 11 /* x2 */
dastore
7: .line 558
aload 4 /* pts */
iload 6 /* offR */
iconst_3
iadd
dload 13 /* y2 */
dastore
8: .line 560
dload 7 /* x1 */
dload 0 /* t */
dload 11 /* x2 */
dload 7 /* x1 */
dsub
dmul
dadd
dstore 7 /* x1 */
9: .line 561
dload 9 /* y1 */
dload 0 /* t */
dload 13 /* y2 */
dload 9 /* y1 */
dsub
dmul
dadd
dstore 9 /* y1 */
10: .line 563
aload 4 /* pts */
iload 5 /* offL */
iconst_2
iadd
dload 7 /* x1 */
dastore
11: .line 564
aload 4 /* pts */
iload 5 /* offL */
iconst_3
iadd
dload 9 /* y1 */
dastore
12: .line 566
aload 4 /* pts */
iload 6 /* offR */
dload 7 /* x1 */
dastore
13: .line 567
aload 4 /* pts */
iload 6 /* offR */
iconst_1
iadd
dload 9 /* y1 */
dastore
14: .line 568
return
end local 13 // double y2
end local 11 // double x2
end local 9 // double y1
end local 7 // double x1
end local 6 // int offR
end local 5 // int offL
end local 4 // double[] pts
end local 3 // int offS
end local 2 // double[] src
end local 0 // double t
LocalVariableTable:
Start End Slot Name Signature
0 15 0 t D
0 15 2 src [D
0 15 3 offS I
0 15 4 pts [D
0 15 5 offL I
0 15 6 offR I
1 15 7 x1 D
2 15 9 y1 D
3 15 11 x2 D
4 15 13 y2 D
MethodParameters:
Name Flags
t final
src final
offS final
pts final
offL final
offR final
static void subdivideAt(double, double[], int, double[], int, int);
descriptor: (D[DI[DII)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=7, args_size=6
start local 0 // double t
start local 2 // double[] src
start local 3 // int offS
start local 4 // double[] pts
start local 5 // int offL
start local 6 // int type
0: .line 575
iload 6 /* type */
bipush 8
if_icmpne 3
1: .line 576
dload 0 /* t */
aload 2 /* src */
iload 3 /* offS */
aload 4 /* pts */
iload 5 /* offL */
iload 5 /* offL */
iload 6 /* type */
iadd
invokestatic sun.java2d.marlin.Helpers.subdivideCubicAt:(D[DI[DII)V
2: .line 577
goto 7
StackMap locals:
StackMap stack:
3: iload 6 /* type */
iconst_4
if_icmpne 6
4: .line 578
dload 0 /* t */
aload 2 /* src */
iload 3 /* offS */
aload 4 /* pts */
iload 5 /* offL */
iload 5 /* offL */
iload 6 /* type */
iadd
invokestatic sun.java2d.marlin.Helpers.subdivideLineAt:(D[DI[DII)V
5: .line 579
goto 7
6: .line 580
StackMap locals:
StackMap stack:
dload 0 /* t */
aload 2 /* src */
iload 3 /* offS */
aload 4 /* pts */
iload 5 /* offL */
iload 5 /* offL */
iload 6 /* type */
iadd
invokestatic sun.java2d.marlin.Helpers.subdivideQuadAt:(D[DI[DII)V
7: .line 582
StackMap locals:
StackMap stack:
return
end local 6 // int type
end local 5 // int offL
end local 4 // double[] pts
end local 3 // int offS
end local 2 // double[] src
end local 0 // double t
LocalVariableTable:
Start End Slot Name Signature
0 8 0 t D
0 8 2 src [D
0 8 3 offS I
0 8 4 pts [D
0 8 5 offL I
0 8 6 type I
MethodParameters:
Name Flags
t final
src final
offS final
pts final
offL final
type final
static int outcode(double, double, double[]);
descriptor: (DD[D)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 // double x
start local 2 // double y
start local 4 // double[] clipRect
0: .line 590
dload 2 /* y */
aload 4 /* clipRect */
iconst_0
daload
dcmpg
ifge 3
1: .line 591
iconst_1
istore 5 /* code */
start local 5 // int code
2: .line 592
goto 7
end local 5 // int code
StackMap locals:
StackMap stack:
3: dload 2 /* y */
aload 4 /* clipRect */
iconst_1
daload
dcmpl
iflt 6
4: .line 593
iconst_2
istore 5 /* code */
start local 5 // int code
5: .line 594
goto 7
end local 5 // int code
6: .line 595
StackMap locals:
StackMap stack:
iconst_0
istore 5 /* code */
start local 5 // int code
7: .line 597
StackMap locals: int
StackMap stack:
dload 0 /* x */
aload 4 /* clipRect */
iconst_2
daload
dcmpg
ifge 10
8: .line 598
iload 5 /* code */
iconst_4
ior
istore 5 /* code */
9: .line 599
goto 12
StackMap locals:
StackMap stack:
10: dload 0 /* x */
aload 4 /* clipRect */
iconst_3
daload
dcmpl
iflt 12
11: .line 600
iload 5 /* code */
bipush 8
ior
istore 5 /* code */
12: .line 602
StackMap locals:
StackMap stack:
iload 5 /* code */
ireturn
end local 5 // int code
end local 4 // double[] clipRect
end local 2 // double y
end local 0 // double x
LocalVariableTable:
Start End Slot Name Signature
0 13 0 x D
0 13 2 y D
0 13 4 clipRect [D
2 3 5 code I
5 6 5 code I
7 13 5 code I
MethodParameters:
Name Flags
x final
y final
clipRect final
}
SourceFile: "Helpers.java"
NestMembers:
sun.java2d.marlin.Helpers$IndexStack sun.java2d.marlin.Helpers$PolyStack
InnerClasses:
final IndexStack = sun.java2d.marlin.Helpers$IndexStack of sun.java2d.marlin.Helpers
final PolyStack = sun.java2d.marlin.Helpers$PolyStack of sun.java2d.marlin.Helpers