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 35
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 36
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(float, float, float);
descriptor: (FFF)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 // float x
start local 1 // float y
start local 2 // float err
0: .line 40
fload 1 /* y */
fload 0 /* x */
fsub
fstore 3 /* d */
start local 3 // float d
1: .line 41
fload 3 /* d */
fload 2 /* err */
fcmpg
ifgt 2
fload 3 /* d */
fload 2 /* err */
fneg
fcmpl
iflt 2
iconst_1
ireturn
StackMap locals: float
StackMap stack:
2: iconst_0
ireturn
end local 3 // float d
end local 2 // float err
end local 1 // float y
end local 0 // float x
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x F
0 3 1 y F
0 3 2 err F
1 3 3 d F
MethodParameters:
Name Flags
x final
y final
err final
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 45
dload 2 /* y */
dload 0 /* x */
dsub
dstore 6 /* d */
start local 6 // double d
1: .line 46
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 float evalCubic(float, float, float, float, float);
descriptor: (FFFFF)F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=5
start local 0 // float a
start local 1 // float b
start local 2 // float c
start local 3 // float d
start local 4 // float t
0: .line 53
fload 4 /* t */
fload 4 /* t */
fload 4 /* t */
fload 0 /* a */
fmul
fload 1 /* b */
fadd
fmul
fload 2 /* c */
fadd
fmul
fload 3 /* d */
fadd
freturn
end local 4 // float t
end local 3 // float d
end local 2 // float c
end local 1 // float b
end local 0 // float a
LocalVariableTable:
Start End Slot Name Signature
0 1 0 a F
0 1 1 b F
0 1 2 c F
0 1 3 d F
0 1 4 t F
MethodParameters:
Name Flags
a final
b final
c final
d final
t final
static float evalQuad(float, float, float, float);
descriptor: (FFFF)F
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 // float a
start local 1 // float b
start local 2 // float c
start local 3 // float t
0: .line 59
fload 3 /* t */
fload 3 /* t */
fload 0 /* a */
fmul
fload 1 /* b */
fadd
fmul
fload 2 /* c */
fadd
freturn
end local 3 // float t
end local 2 // float c
end local 1 // float b
end local 0 // float a
LocalVariableTable:
Start End Slot Name Signature
0 1 0 a F
0 1 1 b F
0 1 2 c F
0 1 3 t F
MethodParameters:
Name Flags
a final
b final
c final
t final
static int quadraticRoots(float, float, float, float[], int);
descriptor: (FFF[FI)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=8, args_size=5
start local 0 // float a
start local 1 // float b
start local 2 // float c
start local 3 // float[] zeroes
start local 4 // int off
0: .line 65
iload 4 /* off */
istore 5 /* ret */
start local 5 // int ret
1: .line 66
fload 0 /* a */
fconst_0
fcmpl
ifeq 15
2: .line 67
fload 1 /* b */
fload 1 /* b */
fmul
ldc 4.0
fload 0 /* a */
fmul
fload 2 /* c */
fmul
fsub
fstore 6 /* dis */
start local 6 // float dis
3: .line 68
fload 6 /* dis */
fconst_0
fcmpl
ifle 12
4: .line 69
fload 6 /* dis */
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 7 /* sqrtDis */
start local 7 // float sqrtDis
5: .line 74
fload 1 /* b */
fconst_0
fcmpl
iflt 9
6: .line 75
aload 3 /* zeroes */
iload 5 /* ret */
iinc 5 /* ret */ 1
fconst_2
fload 2 /* c */
fmul
fload 1 /* b */
fneg
fload 7 /* sqrtDis */
fsub
fdiv
fastore
7: .line 76
aload 3 /* zeroes */
iload 5 /* ret */
iinc 5 /* ret */ 1
fload 1 /* b */
fneg
fload 7 /* sqrtDis */
fsub
fconst_2
fload 0 /* a */
fmul
fdiv
fastore
8: .line 77
goto 17
9: .line 78
StackMap locals: int float float
StackMap stack:
aload 3 /* zeroes */
iload 5 /* ret */
iinc 5 /* ret */ 1
fload 1 /* b */
fneg
fload 7 /* sqrtDis */
fadd
fconst_2
fload 0 /* a */
fmul
fdiv
fastore
10: .line 79
aload 3 /* zeroes */
iload 5 /* ret */
iinc 5 /* ret */ 1
fconst_2
fload 2 /* c */
fmul
fload 1 /* b */
fneg
fload 7 /* sqrtDis */
fadd
fdiv
fastore
end local 7 // float sqrtDis
11: .line 81
goto 17
StackMap locals:
StackMap stack:
12: fload 6 /* dis */
fconst_0
fcmpl
ifne 17
13: .line 82
aload 3 /* zeroes */
iload 5 /* ret */
iinc 5 /* ret */ 1
fload 1 /* b */
fneg
fconst_2
fload 0 /* a */
fmul
fdiv
fastore
end local 6 // float dis
14: .line 84
goto 17
StackMap locals:
StackMap stack:
15: fload 1 /* b */
fconst_0
fcmpl
ifeq 17
16: .line 85
aload 3 /* zeroes */
iload 5 /* ret */
iinc 5 /* ret */ 1
fload 2 /* c */
fneg
fload 1 /* b */
fdiv
fastore
17: .line 87
StackMap locals:
StackMap stack:
iload 5 /* ret */
iload 4 /* off */
isub
ireturn
end local 5 // int ret
end local 4 // int off
end local 3 // float[] zeroes
end local 2 // float c
end local 1 // float b
end local 0 // float a
LocalVariableTable:
Start End Slot Name Signature
0 18 0 a F
0 18 1 b F
0 18 2 c F
0 18 3 zeroes [F
0 18 4 off I
1 18 5 ret I
3 14 6 dis F
5 11 7 sqrtDis F
MethodParameters:
Name Flags
a final
b final
c final
zeroes final
off final
static int cubicRootsInAB(float, float, float, float, float[], int, float, float);
descriptor: (FFFF[FIFF)I
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=33, args_size=8
start local 0 // float d0
start local 1 // float a0
start local 2 // float b0
start local 3 // float c0
start local 4 // float[] pts
start local 5 // int off
start local 6 // float A
start local 7 // float B
0: .line 95
fload 0 /* d0 */
fconst_0
fcmpl
ifne 3
1: .line 96
fload 1 /* a0 */
fload 2 /* b0 */
fload 3 /* c0 */
aload 4 /* pts */
iload 5 /* off */
invokestatic sun.java2d.marlin.Helpers.quadraticRoots:(FFF[FI)I
istore 8 /* num */
start local 8 // int num
2: .line 97
aload 4 /* pts */
iload 5 /* off */
iload 8 /* num */
fload 6 /* A */
fload 7 /* B */
invokestatic sun.java2d.marlin.Helpers.filterOutNotInAB:([FIIFF)I
iload 5 /* off */
isub
ireturn
end local 8 // int num
3: .line 111
StackMap locals:
StackMap stack:
fload 1 /* a0 */
f2d
fload 0 /* d0 */
f2d
ddiv
dstore 8 /* a */
start local 8 // double a
4: .line 112
fload 2 /* b0 */
f2d
fload 0 /* d0 */
f2d
ddiv
dstore 10 /* b */
start local 10 // double b
5: .line 113
fload 3 /* c0 */
f2d
fload 0 /* d0 */
f2d
ddiv
dstore 12 /* c */
start local 12 // double c
6: .line 123
ldc 0.3333333333333333
dload 8 /* a */
dmul
dstore 14 /* sub */
start local 14 // double sub
7: .line 124
dload 8 /* a */
dload 8 /* a */
dmul
dstore 16 /* sq_A */
start local 16 // double sq_A
8: .line 125
ldc 0.3333333333333333
ldc -0.3333333333333333
dload 16 /* sq_A */
dmul
dload 10 /* b */
dadd
dmul
dstore 18 /* p */
start local 18 // double p
9: .line 126
ldc 0.5
ldc 0.07407407407407407
dload 8 /* a */
dmul
dload 16 /* sq_A */
dmul
dload 14 /* sub */
dload 10 /* b */
dmul
dsub
dload 12 /* c */
dadd
dmul
dstore 20 /* q */
start local 20 // double q
10: .line 130
dload 18 /* p */
dload 18 /* p */
dmul
dload 18 /* p */
dmul
dstore 22 /* cb_p */
start local 22 // double cb_p
11: .line 131
dload 20 /* q */
dload 20 /* q */
dmul
dload 22 /* cb_p */
dadd
dstore 24 /* D */
start local 24 // double D
12: .line 134
dload 24 /* D */
dconst_0
dcmpg
ifge 20
13: .line 136
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 137
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 139
aload 4 /* pts */
iload 5 /* off */
dload 29 /* t */
dload 27 /* phi */
invokestatic java.lang.Math.cos:(D)D
dmul
dload 14 /* sub */
dsub
d2f
fastore
16: .line 140
aload 4 /* pts */
iload 5 /* 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
d2f
fastore
17: .line 141
aload 4 /* pts */
iload 5 /* 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
d2f
fastore
18: .line 142
iconst_3
istore 26 /* num */
end local 29 // double t
end local 27 // double phi
start local 26 // int num
19: .line 143
goto 28
end local 26 // int num
20: .line 144
StackMap locals: float float float float float[] int float float double 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 145
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 146
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 148
aload 4 /* pts */
iload 5 /* off */
dload 29 /* u */
dload 31 /* v */
dadd
dload 14 /* sub */
dsub
d2f
fastore
24: .line 149
iconst_1
istore 26 /* num */
start local 26 // int num
25: .line 151
dload 24 /* D */
dconst_0
ldc 1.0E-8
invokestatic sun.java2d.marlin.Helpers.within:(DDD)Z
ifeq 28
26: .line 152
aload 4 /* pts */
iload 5 /* off */
iconst_1
iadd
ldc -0.5
dload 29 /* u */
dload 31 /* v */
dadd
dmul
dload 14 /* sub */
dsub
d2f
fastore
27: .line 153
iconst_2
istore 26 /* num */
end local 31 // double v
end local 29 // double u
end local 27 // double sqrt_D
28: .line 157
StackMap locals: int
StackMap stack:
aload 4 /* pts */
iload 5 /* off */
iload 26 /* num */
fload 6 /* A */
fload 7 /* B */
invokestatic sun.java2d.marlin.Helpers.filterOutNotInAB:([FIIFF)I
iload 5 /* 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 c
end local 10 // double b
end local 8 // double a
end local 7 // float B
end local 6 // float A
end local 5 // int off
end local 4 // float[] pts
end local 3 // float c0
end local 2 // float b0
end local 1 // float a0
end local 0 // float d0
LocalVariableTable:
Start End Slot Name Signature
0 29 0 d0 F
0 29 1 a0 F
0 29 2 b0 F
0 29 3 c0 F
0 29 4 pts [F
0 29 5 off I
0 29 6 A F
0 29 7 B F
2 3 8 num I
4 29 8 a D
5 29 10 b D
6 29 12 c D
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
d0 final
a0
b0
c0
pts final
off final
A final
B final
static int filterOutNotInAB(float[], int, int, float, float);
descriptor: ([FIIFF)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=8, args_size=5
start local 0 // float[] nums
start local 1 // int off
start local 2 // int len
start local 3 // float a
start local 4 // float b
0: .line 164
iload 1 /* off */
istore 5 /* ret */
start local 5 // int ret
1: .line 165
iload 1 /* off */
istore 6 /* i */
start local 6 // int i
2: iload 1 /* off */
iload 2 /* len */
iadd
istore 7 /* end */
start local 7 // int end
3: goto 7
4: .line 166
StackMap locals: int int int
StackMap stack:
aload 0 /* nums */
iload 6 /* i */
faload
fload 3 /* a */
fcmpl
iflt 6
aload 0 /* nums */
iload 6 /* i */
faload
fload 4 /* b */
fcmpg
ifge 6
5: .line 167
aload 0 /* nums */
iload 5 /* ret */
iinc 5 /* ret */ 1
aload 0 /* nums */
iload 6 /* i */
faload
fastore
6: .line 165
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 6 /* i */
iload 7 /* end */
if_icmplt 4
end local 7 // int end
end local 6 // int i
8: .line 170
iload 5 /* ret */
ireturn
end local 5 // int ret
end local 4 // float b
end local 3 // float a
end local 2 // int len
end local 1 // int off
end local 0 // float[] nums
LocalVariableTable:
Start End Slot Name Signature
0 9 0 nums [F
0 9 1 off I
0 9 2 len I
0 9 3 a F
0 9 4 b F
1 9 5 ret I
2 8 6 i I
3 8 7 end I
MethodParameters:
Name Flags
nums final
off final
len final
a final
b final
static float fastLineLen(float, float, float, float);
descriptor: (FFFF)F
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=6, args_size=4
start local 0 // float x0
start local 1 // float y0
start local 2 // float x1
start local 3 // float y1
0: .line 176
fload 2 /* x1 */
fload 0 /* x0 */
fsub
fstore 4 /* dx */
start local 4 // float dx
1: .line 177
fload 3 /* y1 */
fload 1 /* y0 */
fsub
fstore 5 /* dy */
start local 5 // float dy
2: .line 180
fload 4 /* dx */
invokestatic java.lang.Math.abs:(F)F
fload 5 /* dy */
invokestatic java.lang.Math.abs:(F)F
fadd
freturn
end local 5 // float dy
end local 4 // float dx
end local 3 // float y1
end local 2 // float x1
end local 1 // float y0
end local 0 // float x0
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x0 F
0 3 1 y0 F
0 3 2 x1 F
0 3 3 y1 F
1 3 4 dx F
2 3 5 dy F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
static float linelen(float, float, float, float);
descriptor: (FFFF)F
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=4
start local 0 // float x0
start local 1 // float y0
start local 2 // float x1
start local 3 // float y1
0: .line 186
fload 2 /* x1 */
fload 0 /* x0 */
fsub
fstore 4 /* dx */
start local 4 // float dx
1: .line 187
fload 3 /* y1 */
fload 1 /* y0 */
fsub
fstore 5 /* dy */
start local 5 // float dy
2: .line 188
fload 4 /* dx */
fload 4 /* dx */
fmul
fload 5 /* dy */
fload 5 /* dy */
fmul
fadd
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
freturn
end local 5 // float dy
end local 4 // float dx
end local 3 // float y1
end local 2 // float x1
end local 1 // float y0
end local 0 // float x0
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x0 F
0 3 1 y0 F
0 3 2 x1 F
0 3 3 y1 F
1 3 4 dx F
2 3 5 dy F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
static float fastQuadLen(float, float, float, float, float, float);
descriptor: (FFFFFF)F
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=10, args_size=6
start local 0 // float x0
start local 1 // float y0
start local 2 // float x1
start local 3 // float y1
start local 4 // float x2
start local 5 // float y2
0: .line 195
fload 2 /* x1 */
fload 0 /* x0 */
fsub
fstore 6 /* dx1 */
start local 6 // float dx1
1: .line 196
fload 4 /* x2 */
fload 2 /* x1 */
fsub
fstore 7 /* dx2 */
start local 7 // float dx2
2: .line 197
fload 3 /* y1 */
fload 1 /* y0 */
fsub
fstore 8 /* dy1 */
start local 8 // float dy1
3: .line 198
fload 5 /* y2 */
fload 3 /* y1 */
fsub
fstore 9 /* dy2 */
start local 9 // float dy2
4: .line 201
fload 6 /* dx1 */
invokestatic java.lang.Math.abs:(F)F
fload 7 /* dx2 */
invokestatic java.lang.Math.abs:(F)F
fadd
5: .line 202
fload 8 /* dy1 */
invokestatic java.lang.Math.abs:(F)F
6: .line 201
fadd
7: .line 202
fload 9 /* dy2 */
invokestatic java.lang.Math.abs:(F)F
8: .line 201
fadd
freturn
end local 9 // float dy2
end local 8 // float dy1
end local 7 // float dx2
end local 6 // float dx1
end local 5 // float y2
end local 4 // float x2
end local 3 // float y1
end local 2 // float x1
end local 1 // float y0
end local 0 // float x0
LocalVariableTable:
Start End Slot Name Signature
0 9 0 x0 F
0 9 1 y0 F
0 9 2 x1 F
0 9 3 y1 F
0 9 4 x2 F
0 9 5 y2 F
1 9 6 dx1 F
2 9 7 dx2 F
3 9 8 dy1 F
4 9 9 dy2 F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
static float quadlen(float, float, float, float, float, float);
descriptor: (FFFFFF)F
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=6
start local 0 // float x0
start local 1 // float y0
start local 2 // float x1
start local 3 // float y1
start local 4 // float x2
start local 5 // float y2
0: .line 209
fload 0 /* x0 */
fload 1 /* y0 */
fload 2 /* x1 */
fload 3 /* y1 */
invokestatic sun.java2d.marlin.Helpers.linelen:(FFFF)F
1: .line 210
fload 2 /* x1 */
fload 3 /* y1 */
fload 4 /* x2 */
fload 5 /* y2 */
invokestatic sun.java2d.marlin.Helpers.linelen:(FFFF)F
2: .line 209
fadd
3: .line 211
fload 0 /* x0 */
fload 1 /* y0 */
fload 4 /* x2 */
fload 5 /* y2 */
invokestatic sun.java2d.marlin.Helpers.linelen:(FFFF)F
4: .line 209
fadd
5: .line 211
fconst_2
6: .line 209
fdiv
freturn
end local 5 // float y2
end local 4 // float x2
end local 3 // float y1
end local 2 // float x1
end local 1 // float y0
end local 0 // float x0
LocalVariableTable:
Start End Slot Name Signature
0 7 0 x0 F
0 7 1 y0 F
0 7 2 x1 F
0 7 3 y1 F
0 7 4 x2 F
0 7 5 y2 F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
static float fastCurvelen(float, float, float, float, float, float, float, float);
descriptor: (FFFFFFFF)F
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=14, args_size=8
start local 0 // float x0
start local 1 // float y0
start local 2 // float x1
start local 3 // float y1
start local 4 // float x2
start local 5 // float y2
start local 6 // float x3
start local 7 // float y3
0: .line 220
fload 2 /* x1 */
fload 0 /* x0 */
fsub
fstore 8 /* dx1 */
start local 8 // float dx1
1: .line 221
fload 4 /* x2 */
fload 2 /* x1 */
fsub
fstore 9 /* dx2 */
start local 9 // float dx2
2: .line 222
fload 6 /* x3 */
fload 4 /* x2 */
fsub
fstore 10 /* dx3 */
start local 10 // float dx3
3: .line 223
fload 3 /* y1 */
fload 1 /* y0 */
fsub
fstore 11 /* dy1 */
start local 11 // float dy1
4: .line 224
fload 5 /* y2 */
fload 3 /* y1 */
fsub
fstore 12 /* dy2 */
start local 12 // float dy2
5: .line 225
fload 7 /* y3 */
fload 5 /* y2 */
fsub
fstore 13 /* dy3 */
start local 13 // float dy3
6: .line 228
fload 8 /* dx1 */
invokestatic java.lang.Math.abs:(F)F
fload 9 /* dx2 */
invokestatic java.lang.Math.abs:(F)F
fadd
fload 10 /* dx3 */
invokestatic java.lang.Math.abs:(F)F
fadd
7: .line 229
fload 11 /* dy1 */
invokestatic java.lang.Math.abs:(F)F
8: .line 228
fadd
9: .line 229
fload 12 /* dy2 */
invokestatic java.lang.Math.abs:(F)F
10: .line 228
fadd
11: .line 229
fload 13 /* dy3 */
invokestatic java.lang.Math.abs:(F)F
12: .line 228
fadd
freturn
end local 13 // float dy3
end local 12 // float dy2
end local 11 // float dy1
end local 10 // float dx3
end local 9 // float dx2
end local 8 // float dx1
end local 7 // float y3
end local 6 // float x3
end local 5 // float y2
end local 4 // float x2
end local 3 // float y1
end local 2 // float x1
end local 1 // float y0
end local 0 // float x0
LocalVariableTable:
Start End Slot Name Signature
0 13 0 x0 F
0 13 1 y0 F
0 13 2 x1 F
0 13 3 y1 F
0 13 4 x2 F
0 13 5 y2 F
0 13 6 x3 F
0 13 7 y3 F
1 13 8 dx1 F
2 13 9 dx2 F
3 13 10 dx3 F
4 13 11 dy1 F
5 13 12 dy2 F
6 13 13 dy3 F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
static float curvelen(float, float, float, float, float, float, float, float);
descriptor: (FFFFFFFF)F
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=8, args_size=8
start local 0 // float x0
start local 1 // float y0
start local 2 // float x1
start local 3 // float y1
start local 4 // float x2
start local 5 // float y2
start local 6 // float x3
start local 7 // float y3
0: .line 237
fload 0 /* x0 */
fload 1 /* y0 */
fload 2 /* x1 */
fload 3 /* y1 */
invokestatic sun.java2d.marlin.Helpers.linelen:(FFFF)F
1: .line 238
fload 2 /* x1 */
fload 3 /* y1 */
fload 4 /* x2 */
fload 5 /* y2 */
invokestatic sun.java2d.marlin.Helpers.linelen:(FFFF)F
2: .line 237
fadd
3: .line 239
fload 4 /* x2 */
fload 5 /* y2 */
fload 6 /* x3 */
fload 7 /* y3 */
invokestatic sun.java2d.marlin.Helpers.linelen:(FFFF)F
4: .line 237
fadd
5: .line 240
fload 0 /* x0 */
fload 1 /* y0 */
fload 6 /* x3 */
fload 7 /* y3 */
invokestatic sun.java2d.marlin.Helpers.linelen:(FFFF)F
6: .line 237
fadd
7: .line 240
fconst_2
8: .line 237
fdiv
freturn
end local 7 // float y3
end local 6 // float x3
end local 5 // float y2
end local 4 // float x2
end local 3 // float y1
end local 2 // float x1
end local 1 // float y0
end local 0 // float x0
LocalVariableTable:
Start End Slot Name Signature
0 9 0 x0 F
0 9 1 y0 F
0 9 2 x1 F
0 9 3 y1 F
0 9 4 x2 F
0 9 5 y2 F
0 9 6 x3 F
0 9 7 y3 F
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, float[], float[], int, float);
descriptor: (Lsun/java2d/marlin/Curve;[F[FIF)I
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=18, args_size=5
start local 0 // sun.java2d.marlin.Curve c
start local 1 // float[] pts
start local 2 // float[] ts
start local 3 // int type
start local 4 // float w2
0: .line 250
aload 1 /* pts */
iconst_2
faload
aload 1 /* pts */
iconst_0
faload
fsub
fstore 5 /* x12 */
start local 5 // float x12
1: .line 251
aload 1 /* pts */
iconst_3
faload
aload 1 /* pts */
iconst_1
faload
fsub
fstore 6 /* y12 */
start local 6 // float y12
2: .line 254
fload 6 /* y12 */
fconst_0
fcmpl
ifeq 19
fload 5 /* x12 */
fconst_0
fcmpl
ifeq 19
3: .line 258
fload 5 /* x12 */
fload 5 /* x12 */
fmul
fload 6 /* y12 */
fload 6 /* y12 */
fmul
fadd
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 7 /* hypot */
start local 7 // float hypot
4: .line 259
fload 5 /* x12 */
fload 7 /* hypot */
fdiv
fstore 8 /* cos */
start local 8 // float cos
5: .line 260
fload 6 /* y12 */
fload 7 /* hypot */
fdiv
fstore 9 /* sin */
start local 9 // float sin
6: .line 261
fload 8 /* cos */
aload 1 /* pts */
iconst_0
faload
fmul
fload 9 /* sin */
aload 1 /* pts */
iconst_1
faload
fmul
fadd
fstore 10 /* x1 */
start local 10 // float x1
7: .line 262
fload 8 /* cos */
aload 1 /* pts */
iconst_1
faload
fmul
fload 9 /* sin */
aload 1 /* pts */
iconst_0
faload
fmul
fsub
fstore 11 /* y1 */
start local 11 // float y1
8: .line 263
fload 8 /* cos */
aload 1 /* pts */
iconst_2
faload
fmul
fload 9 /* sin */
aload 1 /* pts */
iconst_3
faload
fmul
fadd
fstore 12 /* x2 */
start local 12 // float x2
9: .line 264
fload 8 /* cos */
aload 1 /* pts */
iconst_3
faload
fmul
fload 9 /* sin */
aload 1 /* pts */
iconst_2
faload
fmul
fsub
fstore 13 /* y2 */
start local 13 // float y2
10: .line 265
fload 8 /* cos */
aload 1 /* pts */
iconst_4
faload
fmul
fload 9 /* sin */
aload 1 /* pts */
iconst_5
faload
fmul
fadd
fstore 14 /* x3 */
start local 14 // float x3
11: .line 266
fload 8 /* cos */
aload 1 /* pts */
iconst_5
faload
fmul
fload 9 /* sin */
aload 1 /* pts */
iconst_4
faload
fmul
fsub
fstore 15 /* y3 */
start local 15 // float y3
12: .line 268
iload 3 /* type */
tableswitch { // 6 - 8
6: 17
7: 18
8: 13
default: 18
}
13: .line 270
StackMap locals: sun.java2d.marlin.Curve float[] float[] int float float float float float float float float float float float float
StackMap stack:
fload 8 /* cos */
aload 1 /* pts */
bipush 6
faload
fmul
fload 9 /* sin */
aload 1 /* pts */
bipush 7
faload
fmul
fadd
fstore 16 /* x4 */
start local 16 // float x4
14: .line 271
fload 8 /* cos */
aload 1 /* pts */
bipush 7
faload
fmul
fload 9 /* sin */
aload 1 /* pts */
bipush 6
faload
fmul
fsub
fstore 17 /* y4 */
start local 17 // float y4
15: .line 272
aload 0 /* c */
fload 10 /* x1 */
fload 11 /* y1 */
fload 12 /* x2 */
fload 13 /* y2 */
fload 14 /* x3 */
fload 15 /* y3 */
fload 16 /* x4 */
fload 17 /* y4 */
invokevirtual sun.java2d.marlin.Curve.set:(FFFFFFFF)V
16: .line 273
goto 20
end local 17 // float y4
end local 16 // float x4
17: .line 275
StackMap locals:
StackMap stack:
aload 0 /* c */
fload 10 /* x1 */
fload 11 /* y1 */
fload 12 /* x2 */
fload 13 /* y2 */
fload 14 /* x3 */
fload 15 /* y3 */
invokevirtual sun.java2d.marlin.Curve.set:(FFFFFF)V
end local 15 // float y3
end local 14 // float x3
end local 13 // float y2
end local 12 // float x2
end local 11 // float y1
end local 10 // float x1
end local 9 // float sin
end local 8 // float cos
end local 7 // float hypot
18: .line 279
StackMap locals: sun.java2d.marlin.Curve float[] float[] int float float float
StackMap stack:
goto 20
19: .line 280
StackMap locals:
StackMap stack:
aload 0 /* c */
aload 1 /* pts */
iload 3 /* type */
invokevirtual sun.java2d.marlin.Curve.set:([FI)V
20: .line 283
StackMap locals:
StackMap stack:
iconst_0
istore 7 /* ret */
start local 7 // int ret
21: .line 286
iload 7 /* ret */
aload 0 /* c */
aload 2 /* ts */
iload 7 /* ret */
invokevirtual sun.java2d.marlin.Curve.dxRoots:([FI)I
iadd
istore 7 /* ret */
22: .line 287
iload 7 /* ret */
aload 0 /* c */
aload 2 /* ts */
iload 7 /* ret */
invokevirtual sun.java2d.marlin.Curve.dyRoots:([FI)I
iadd
istore 7 /* ret */
23: .line 290
iload 3 /* type */
bipush 8
if_icmpne 25
24: .line 292
iload 7 /* ret */
aload 0 /* c */
aload 2 /* ts */
iload 7 /* ret */
invokevirtual sun.java2d.marlin.Curve.infPoints:([FI)I
iadd
istore 7 /* ret */
25: .line 297
StackMap locals: int
StackMap stack:
iload 7 /* ret */
aload 0 /* c */
aload 2 /* ts */
iload 7 /* ret */
fload 4 /* w2 */
ldc 1.0E-4
invokevirtual sun.java2d.marlin.Curve.rootsOfROCMinusW:([FIFF)I
iadd
istore 7 /* ret */
26: .line 299
aload 2 /* ts */
iconst_0
iload 7 /* ret */
ldc 1.0E-4
ldc 0.9999
invokestatic sun.java2d.marlin.Helpers.filterOutNotInAB:([FIIFF)I
istore 7 /* ret */
27: .line 300
aload 2 /* ts */
iload 7 /* ret */
invokestatic sun.java2d.marlin.Helpers.isort:([FI)V
28: .line 301
iload 7 /* ret */
ireturn
end local 7 // int ret
end local 6 // float y12
end local 5 // float x12
end local 4 // float w2
end local 3 // int type
end local 2 // float[] ts
end local 1 // float[] 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 [F
0 29 2 ts [F
0 29 3 type I
0 29 4 w2 F
1 29 5 x12 F
2 29 6 y12 F
4 18 7 hypot F
5 18 8 cos F
6 18 9 sin F
7 18 10 x1 F
8 18 11 y1 F
9 18 12 x2 F
10 18 13 y2 F
11 18 14 x3 F
12 18 15 y3 F
14 17 16 x4 F
15 17 17 y4 F
21 29 7 ret I
MethodParameters:
Name Flags
c final
pts final
ts final
type final
w2 final
static int findClipPoints(sun.java2d.marlin.Curve, float[], float[], int, int, float[]);
descriptor: (Lsun/java2d/marlin/Curve;[F[FII[F)I
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=7, args_size=6
start local 0 // sun.java2d.marlin.Curve curve
start local 1 // float[] pts
start local 2 // float[] ts
start local 3 // int type
start local 4 // int outCodeOR
start local 5 // float[] clipRect
0: .line 312
aload 0 /* curve */
aload 1 /* pts */
iload 3 /* type */
invokevirtual sun.java2d.marlin.Curve.set:([FI)V
1: .line 315
iconst_0
istore 6 /* ret */
start local 6 // int ret
2: .line 317
iload 4 /* outCodeOR */
iconst_4
iand
ifeq 4
3: .line 318
iload 6 /* ret */
aload 0 /* curve */
aload 2 /* ts */
iload 6 /* ret */
aload 5 /* clipRect */
iconst_2
faload
invokevirtual sun.java2d.marlin.Curve.xPoints:([FIF)I
iadd
istore 6 /* ret */
4: .line 320
StackMap locals: int
StackMap stack:
iload 4 /* outCodeOR */
bipush 8
iand
ifeq 6
5: .line 321
iload 6 /* ret */
aload 0 /* curve */
aload 2 /* ts */
iload 6 /* ret */
aload 5 /* clipRect */
iconst_3
faload
invokevirtual sun.java2d.marlin.Curve.xPoints:([FIF)I
iadd
istore 6 /* ret */
6: .line 323
StackMap locals:
StackMap stack:
iload 4 /* outCodeOR */
iconst_1
iand
ifeq 8
7: .line 324
iload 6 /* ret */
aload 0 /* curve */
aload 2 /* ts */
iload 6 /* ret */
aload 5 /* clipRect */
iconst_0
faload
invokevirtual sun.java2d.marlin.Curve.yPoints:([FIF)I
iadd
istore 6 /* ret */
8: .line 326
StackMap locals:
StackMap stack:
iload 4 /* outCodeOR */
iconst_2
iand
ifeq 10
9: .line 327
iload 6 /* ret */
aload 0 /* curve */
aload 2 /* ts */
iload 6 /* ret */
aload 5 /* clipRect */
iconst_1
faload
invokevirtual sun.java2d.marlin.Curve.yPoints:([FIF)I
iadd
istore 6 /* ret */
10: .line 329
StackMap locals:
StackMap stack:
aload 2 /* ts */
iload 6 /* ret */
invokestatic sun.java2d.marlin.Helpers.isort:([FI)V
11: .line 330
iload 6 /* ret */
ireturn
end local 6 // int ret
end local 5 // float[] clipRect
end local 4 // int outCodeOR
end local 3 // int type
end local 2 // float[] ts
end local 1 // float[] 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 [F
0 12 2 ts [F
0 12 3 type I
0 12 4 outCodeOR I
0 12 5 clipRect [F
2 12 6 ret I
MethodParameters:
Name Flags
curve final
pts final
ts final
type final
outCodeOR final
clipRect final
static void subdivide(float[], float[], float[], int);
descriptor: ([F[F[FI)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 // float[] src
start local 1 // float[] left
start local 2 // float[] right
start local 3 // int type
0: .line 337
iload 3 /* type */
tableswitch { // 6 - 8
6: 3
7: 5
8: 1
default: 5
}
1: .line 339
StackMap locals:
StackMap stack:
aload 0 /* src */
aload 1 /* left */
aload 2 /* right */
invokestatic sun.java2d.marlin.Helpers.subdivideCubic:([F[F[F)V
2: .line 340
return
3: .line 342
StackMap locals:
StackMap stack:
aload 0 /* src */
aload 1 /* left */
aload 2 /* right */
invokestatic sun.java2d.marlin.Helpers.subdivideQuad:([F[F[F)V
4: .line 343
return
5: .line 345
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 // float[] right
end local 1 // float[] left
end local 0 // float[] src
LocalVariableTable:
Start End Slot Name Signature
0 6 0 src [F
0 6 1 left [F
0 6 2 right [F
0 6 3 type I
MethodParameters:
Name Flags
src final
left final
right final
type final
static void isort(float[], int);
descriptor: ([FI)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 // float[] a
start local 1 // int len
0: .line 350
iconst_1
istore 2 /* i */
start local 2 // int i
1: goto 10
2: .line 351
StackMap locals: int
StackMap stack:
aload 0 /* a */
iload 2 /* i */
faload
fstore 4 /* ai */
start local 4 // float ai
3: .line 352
iload 2 /* i */
iconst_1
isub
istore 3 /* j */
start local 3 // int j
4: .line 353
goto 7
5: .line 354
StackMap locals: int float
StackMap stack:
aload 0 /* a */
iload 3 /* j */
iconst_1
iadd
aload 0 /* a */
iload 3 /* j */
faload
fastore
6: .line 353
iinc 3 /* j */ -1
StackMap locals:
StackMap stack:
7: iload 3 /* j */
iflt 8
aload 0 /* a */
iload 3 /* j */
faload
fload 4 /* ai */
fcmpl
ifgt 5
8: .line 356
StackMap locals:
StackMap stack:
aload 0 /* a */
iload 3 /* j */
iconst_1
iadd
fload 4 /* ai */
fastore
end local 4 // float ai
9: .line 350
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 358
return
end local 1 // int len
end local 0 // float[] a
LocalVariableTable:
Start End Slot Name Signature
0 12 0 a [F
0 12 1 len I
1 11 2 i I
4 10 3 j I
3 9 4 ai F
MethodParameters:
Name Flags
a final
len final
static void subdivideCubic(float[], float[], float[]);
descriptor: ([F[F[F)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=13, args_size=3
start local 0 // float[] src
start local 1 // float[] left
start local 2 // float[] right
0: .line 389
aload 0 /* src */
iconst_0
faload
fstore 3 /* x1 */
start local 3 // float x1
1: .line 390
aload 0 /* src */
iconst_1
faload
fstore 4 /* y1 */
start local 4 // float y1
2: .line 391
aload 0 /* src */
iconst_2
faload
fstore 5 /* cx1 */
start local 5 // float cx1
3: .line 392
aload 0 /* src */
iconst_3
faload
fstore 6 /* cy1 */
start local 6 // float cy1
4: .line 393
aload 0 /* src */
iconst_4
faload
fstore 7 /* cx2 */
start local 7 // float cx2
5: .line 394
aload 0 /* src */
iconst_5
faload
fstore 8 /* cy2 */
start local 8 // float cy2
6: .line 395
aload 0 /* src */
bipush 6
faload
fstore 9 /* x2 */
start local 9 // float x2
7: .line 396
aload 0 /* src */
bipush 7
faload
fstore 10 /* y2 */
start local 10 // float y2
8: .line 398
aload 1 /* left */
iconst_0
fload 3 /* x1 */
fastore
9: .line 399
aload 1 /* left */
iconst_1
fload 4 /* y1 */
fastore
10: .line 401
aload 2 /* right */
bipush 6
fload 9 /* x2 */
fastore
11: .line 402
aload 2 /* right */
bipush 7
fload 10 /* y2 */
fastore
12: .line 404
fload 3 /* x1 */
fload 5 /* cx1 */
fadd
fconst_2
fdiv
fstore 3 /* x1 */
13: .line 405
fload 4 /* y1 */
fload 6 /* cy1 */
fadd
fconst_2
fdiv
fstore 4 /* y1 */
14: .line 406
fload 9 /* x2 */
fload 7 /* cx2 */
fadd
fconst_2
fdiv
fstore 9 /* x2 */
15: .line 407
fload 10 /* y2 */
fload 8 /* cy2 */
fadd
fconst_2
fdiv
fstore 10 /* y2 */
16: .line 409
fload 5 /* cx1 */
fload 7 /* cx2 */
fadd
fconst_2
fdiv
fstore 11 /* cx */
start local 11 // float cx
17: .line 410
fload 6 /* cy1 */
fload 8 /* cy2 */
fadd
fconst_2
fdiv
fstore 12 /* cy */
start local 12 // float cy
18: .line 412
fload 3 /* x1 */
fload 11 /* cx */
fadd
fconst_2
fdiv
fstore 5 /* cx1 */
19: .line 413
fload 4 /* y1 */
fload 12 /* cy */
fadd
fconst_2
fdiv
fstore 6 /* cy1 */
20: .line 414
fload 9 /* x2 */
fload 11 /* cx */
fadd
fconst_2
fdiv
fstore 7 /* cx2 */
21: .line 415
fload 10 /* y2 */
fload 12 /* cy */
fadd
fconst_2
fdiv
fstore 8 /* cy2 */
22: .line 416
fload 5 /* cx1 */
fload 7 /* cx2 */
fadd
fconst_2
fdiv
fstore 11 /* cx */
23: .line 417
fload 6 /* cy1 */
fload 8 /* cy2 */
fadd
fconst_2
fdiv
fstore 12 /* cy */
24: .line 419
aload 1 /* left */
iconst_2
fload 3 /* x1 */
fastore
25: .line 420
aload 1 /* left */
iconst_3
fload 4 /* y1 */
fastore
26: .line 421
aload 1 /* left */
iconst_4
fload 5 /* cx1 */
fastore
27: .line 422
aload 1 /* left */
iconst_5
fload 6 /* cy1 */
fastore
28: .line 423
aload 1 /* left */
bipush 6
fload 11 /* cx */
fastore
29: .line 424
aload 1 /* left */
bipush 7
fload 12 /* cy */
fastore
30: .line 426
aload 2 /* right */
iconst_0
fload 11 /* cx */
fastore
31: .line 427
aload 2 /* right */
iconst_1
fload 12 /* cy */
fastore
32: .line 428
aload 2 /* right */
iconst_2
fload 7 /* cx2 */
fastore
33: .line 429
aload 2 /* right */
iconst_3
fload 8 /* cy2 */
fastore
34: .line 430
aload 2 /* right */
iconst_4
fload 9 /* x2 */
fastore
35: .line 431
aload 2 /* right */
iconst_5
fload 10 /* y2 */
fastore
36: .line 432
return
end local 12 // float cy
end local 11 // float cx
end local 10 // float y2
end local 9 // float x2
end local 8 // float cy2
end local 7 // float cx2
end local 6 // float cy1
end local 5 // float cx1
end local 4 // float y1
end local 3 // float x1
end local 2 // float[] right
end local 1 // float[] left
end local 0 // float[] src
LocalVariableTable:
Start End Slot Name Signature
0 37 0 src [F
0 37 1 left [F
0 37 2 right [F
1 37 3 x1 F
2 37 4 y1 F
3 37 5 cx1 F
4 37 6 cy1 F
5 37 7 cx2 F
6 37 8 cy2 F
7 37 9 x2 F
8 37 10 y2 F
17 37 11 cx F
18 37 12 cy F
MethodParameters:
Name Flags
src final
left final
right final
static void subdivideCubicAt(float, float[], int, float[], int, int);
descriptor: (F[FI[FII)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=16, args_size=6
start local 0 // float t
start local 1 // float[] src
start local 2 // int offS
start local 3 // float[] pts
start local 4 // int offL
start local 5 // int offR
0: .line 438
aload 1 /* src */
iload 2 /* offS */
faload
fstore 6 /* x1 */
start local 6 // float x1
1: .line 439
aload 1 /* src */
iload 2 /* offS */
iconst_1
iadd
faload
fstore 7 /* y1 */
start local 7 // float y1
2: .line 440
aload 1 /* src */
iload 2 /* offS */
iconst_2
iadd
faload
fstore 8 /* cx1 */
start local 8 // float cx1
3: .line 441
aload 1 /* src */
iload 2 /* offS */
iconst_3
iadd
faload
fstore 9 /* cy1 */
start local 9 // float cy1
4: .line 442
aload 1 /* src */
iload 2 /* offS */
iconst_4
iadd
faload
fstore 10 /* cx2 */
start local 10 // float cx2
5: .line 443
aload 1 /* src */
iload 2 /* offS */
iconst_5
iadd
faload
fstore 11 /* cy2 */
start local 11 // float cy2
6: .line 444
aload 1 /* src */
iload 2 /* offS */
bipush 6
iadd
faload
fstore 12 /* x2 */
start local 12 // float x2
7: .line 445
aload 1 /* src */
iload 2 /* offS */
bipush 7
iadd
faload
fstore 13 /* y2 */
start local 13 // float y2
8: .line 447
aload 3 /* pts */
iload 4 /* offL */
fload 6 /* x1 */
fastore
9: .line 448
aload 3 /* pts */
iload 4 /* offL */
iconst_1
iadd
fload 7 /* y1 */
fastore
10: .line 450
aload 3 /* pts */
iload 5 /* offR */
bipush 6
iadd
fload 12 /* x2 */
fastore
11: .line 451
aload 3 /* pts */
iload 5 /* offR */
bipush 7
iadd
fload 13 /* y2 */
fastore
12: .line 453
fload 6 /* x1 */
fload 0 /* t */
fload 8 /* cx1 */
fload 6 /* x1 */
fsub
fmul
fadd
fstore 6 /* x1 */
13: .line 454
fload 7 /* y1 */
fload 0 /* t */
fload 9 /* cy1 */
fload 7 /* y1 */
fsub
fmul
fadd
fstore 7 /* y1 */
14: .line 455
fload 10 /* cx2 */
fload 0 /* t */
fload 12 /* x2 */
fload 10 /* cx2 */
fsub
fmul
fadd
fstore 12 /* x2 */
15: .line 456
fload 11 /* cy2 */
fload 0 /* t */
fload 13 /* y2 */
fload 11 /* cy2 */
fsub
fmul
fadd
fstore 13 /* y2 */
16: .line 458
fload 8 /* cx1 */
fload 0 /* t */
fload 10 /* cx2 */
fload 8 /* cx1 */
fsub
fmul
fadd
fstore 14 /* cx */
start local 14 // float cx
17: .line 459
fload 9 /* cy1 */
fload 0 /* t */
fload 11 /* cy2 */
fload 9 /* cy1 */
fsub
fmul
fadd
fstore 15 /* cy */
start local 15 // float cy
18: .line 461
fload 6 /* x1 */
fload 0 /* t */
fload 14 /* cx */
fload 6 /* x1 */
fsub
fmul
fadd
fstore 8 /* cx1 */
19: .line 462
fload 7 /* y1 */
fload 0 /* t */
fload 15 /* cy */
fload 7 /* y1 */
fsub
fmul
fadd
fstore 9 /* cy1 */
20: .line 463
fload 14 /* cx */
fload 0 /* t */
fload 12 /* x2 */
fload 14 /* cx */
fsub
fmul
fadd
fstore 10 /* cx2 */
21: .line 464
fload 15 /* cy */
fload 0 /* t */
fload 13 /* y2 */
fload 15 /* cy */
fsub
fmul
fadd
fstore 11 /* cy2 */
22: .line 465
fload 8 /* cx1 */
fload 0 /* t */
fload 10 /* cx2 */
fload 8 /* cx1 */
fsub
fmul
fadd
fstore 14 /* cx */
23: .line 466
fload 9 /* cy1 */
fload 0 /* t */
fload 11 /* cy2 */
fload 9 /* cy1 */
fsub
fmul
fadd
fstore 15 /* cy */
24: .line 468
aload 3 /* pts */
iload 4 /* offL */
iconst_2
iadd
fload 6 /* x1 */
fastore
25: .line 469
aload 3 /* pts */
iload 4 /* offL */
iconst_3
iadd
fload 7 /* y1 */
fastore
26: .line 470
aload 3 /* pts */
iload 4 /* offL */
iconst_4
iadd
fload 8 /* cx1 */
fastore
27: .line 471
aload 3 /* pts */
iload 4 /* offL */
iconst_5
iadd
fload 9 /* cy1 */
fastore
28: .line 472
aload 3 /* pts */
iload 4 /* offL */
bipush 6
iadd
fload 14 /* cx */
fastore
29: .line 473
aload 3 /* pts */
iload 4 /* offL */
bipush 7
iadd
fload 15 /* cy */
fastore
30: .line 475
aload 3 /* pts */
iload 5 /* offR */
fload 14 /* cx */
fastore
31: .line 476
aload 3 /* pts */
iload 5 /* offR */
iconst_1
iadd
fload 15 /* cy */
fastore
32: .line 477
aload 3 /* pts */
iload 5 /* offR */
iconst_2
iadd
fload 10 /* cx2 */
fastore
33: .line 478
aload 3 /* pts */
iload 5 /* offR */
iconst_3
iadd
fload 11 /* cy2 */
fastore
34: .line 479
aload 3 /* pts */
iload 5 /* offR */
iconst_4
iadd
fload 12 /* x2 */
fastore
35: .line 480
aload 3 /* pts */
iload 5 /* offR */
iconst_5
iadd
fload 13 /* y2 */
fastore
36: .line 481
return
end local 15 // float cy
end local 14 // float cx
end local 13 // float y2
end local 12 // float x2
end local 11 // float cy2
end local 10 // float cx2
end local 9 // float cy1
end local 8 // float cx1
end local 7 // float y1
end local 6 // float x1
end local 5 // int offR
end local 4 // int offL
end local 3 // float[] pts
end local 2 // int offS
end local 1 // float[] src
end local 0 // float t
LocalVariableTable:
Start End Slot Name Signature
0 37 0 t F
0 37 1 src [F
0 37 2 offS I
0 37 3 pts [F
0 37 4 offL I
0 37 5 offR I
1 37 6 x1 F
2 37 7 y1 F
3 37 8 cx1 F
4 37 9 cy1 F
5 37 10 cx2 F
6 37 11 cy2 F
7 37 12 x2 F
8 37 13 y2 F
17 37 14 cx F
18 37 15 cy F
MethodParameters:
Name Flags
t final
src final
offS final
pts final
offL final
offR final
static void subdivideQuad(float[], float[], float[]);
descriptor: ([F[F[F)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=9, args_size=3
start local 0 // float[] src
start local 1 // float[] left
start local 2 // float[] right
0: .line 487
aload 0 /* src */
iconst_0
faload
fstore 3 /* x1 */
start local 3 // float x1
1: .line 488
aload 0 /* src */
iconst_1
faload
fstore 4 /* y1 */
start local 4 // float y1
2: .line 489
aload 0 /* src */
iconst_2
faload
fstore 5 /* cx */
start local 5 // float cx
3: .line 490
aload 0 /* src */
iconst_3
faload
fstore 6 /* cy */
start local 6 // float cy
4: .line 491
aload 0 /* src */
iconst_4
faload
fstore 7 /* x2 */
start local 7 // float x2
5: .line 492
aload 0 /* src */
iconst_5
faload
fstore 8 /* y2 */
start local 8 // float y2
6: .line 494
aload 1 /* left */
iconst_0
fload 3 /* x1 */
fastore
7: .line 495
aload 1 /* left */
iconst_1
fload 4 /* y1 */
fastore
8: .line 497
aload 2 /* right */
iconst_4
fload 7 /* x2 */
fastore
9: .line 498
aload 2 /* right */
iconst_5
fload 8 /* y2 */
fastore
10: .line 500
fload 3 /* x1 */
fload 5 /* cx */
fadd
fconst_2
fdiv
fstore 3 /* x1 */
11: .line 501
fload 4 /* y1 */
fload 6 /* cy */
fadd
fconst_2
fdiv
fstore 4 /* y1 */
12: .line 502
fload 7 /* x2 */
fload 5 /* cx */
fadd
fconst_2
fdiv
fstore 7 /* x2 */
13: .line 503
fload 8 /* y2 */
fload 6 /* cy */
fadd
fconst_2
fdiv
fstore 8 /* y2 */
14: .line 504
fload 3 /* x1 */
fload 7 /* x2 */
fadd
fconst_2
fdiv
fstore 5 /* cx */
15: .line 505
fload 4 /* y1 */
fload 8 /* y2 */
fadd
fconst_2
fdiv
fstore 6 /* cy */
16: .line 507
aload 1 /* left */
iconst_2
fload 3 /* x1 */
fastore
17: .line 508
aload 1 /* left */
iconst_3
fload 4 /* y1 */
fastore
18: .line 509
aload 1 /* left */
iconst_4
fload 5 /* cx */
fastore
19: .line 510
aload 1 /* left */
iconst_5
fload 6 /* cy */
fastore
20: .line 512
aload 2 /* right */
iconst_0
fload 5 /* cx */
fastore
21: .line 513
aload 2 /* right */
iconst_1
fload 6 /* cy */
fastore
22: .line 514
aload 2 /* right */
iconst_2
fload 7 /* x2 */
fastore
23: .line 515
aload 2 /* right */
iconst_3
fload 8 /* y2 */
fastore
24: .line 516
return
end local 8 // float y2
end local 7 // float x2
end local 6 // float cy
end local 5 // float cx
end local 4 // float y1
end local 3 // float x1
end local 2 // float[] right
end local 1 // float[] left
end local 0 // float[] src
LocalVariableTable:
Start End Slot Name Signature
0 25 0 src [F
0 25 1 left [F
0 25 2 right [F
1 25 3 x1 F
2 25 4 y1 F
3 25 5 cx F
4 25 6 cy F
5 25 7 x2 F
6 25 8 y2 F
MethodParameters:
Name Flags
src final
left final
right final
static void subdivideQuadAt(float, float[], int, float[], int, int);
descriptor: (F[FI[FII)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=12, args_size=6
start local 0 // float t
start local 1 // float[] src
start local 2 // int offS
start local 3 // float[] pts
start local 4 // int offL
start local 5 // int offR
0: .line 522
aload 1 /* src */
iload 2 /* offS */
faload
fstore 6 /* x1 */
start local 6 // float x1
1: .line 523
aload 1 /* src */
iload 2 /* offS */
iconst_1
iadd
faload
fstore 7 /* y1 */
start local 7 // float y1
2: .line 524
aload 1 /* src */
iload 2 /* offS */
iconst_2
iadd
faload
fstore 8 /* cx */
start local 8 // float cx
3: .line 525
aload 1 /* src */
iload 2 /* offS */
iconst_3
iadd
faload
fstore 9 /* cy */
start local 9 // float cy
4: .line 526
aload 1 /* src */
iload 2 /* offS */
iconst_4
iadd
faload
fstore 10 /* x2 */
start local 10 // float x2
5: .line 527
aload 1 /* src */
iload 2 /* offS */
iconst_5
iadd
faload
fstore 11 /* y2 */
start local 11 // float y2
6: .line 529
aload 3 /* pts */
iload 4 /* offL */
fload 6 /* x1 */
fastore
7: .line 530
aload 3 /* pts */
iload 4 /* offL */
iconst_1
iadd
fload 7 /* y1 */
fastore
8: .line 532
aload 3 /* pts */
iload 5 /* offR */
iconst_4
iadd
fload 10 /* x2 */
fastore
9: .line 533
aload 3 /* pts */
iload 5 /* offR */
iconst_5
iadd
fload 11 /* y2 */
fastore
10: .line 535
fload 6 /* x1 */
fload 0 /* t */
fload 8 /* cx */
fload 6 /* x1 */
fsub
fmul
fadd
fstore 6 /* x1 */
11: .line 536
fload 7 /* y1 */
fload 0 /* t */
fload 9 /* cy */
fload 7 /* y1 */
fsub
fmul
fadd
fstore 7 /* y1 */
12: .line 537
fload 8 /* cx */
fload 0 /* t */
fload 10 /* x2 */
fload 8 /* cx */
fsub
fmul
fadd
fstore 10 /* x2 */
13: .line 538
fload 9 /* cy */
fload 0 /* t */
fload 11 /* y2 */
fload 9 /* cy */
fsub
fmul
fadd
fstore 11 /* y2 */
14: .line 539
fload 6 /* x1 */
fload 0 /* t */
fload 10 /* x2 */
fload 6 /* x1 */
fsub
fmul
fadd
fstore 8 /* cx */
15: .line 540
fload 7 /* y1 */
fload 0 /* t */
fload 11 /* y2 */
fload 7 /* y1 */
fsub
fmul
fadd
fstore 9 /* cy */
16: .line 542
aload 3 /* pts */
iload 4 /* offL */
iconst_2
iadd
fload 6 /* x1 */
fastore
17: .line 543
aload 3 /* pts */
iload 4 /* offL */
iconst_3
iadd
fload 7 /* y1 */
fastore
18: .line 544
aload 3 /* pts */
iload 4 /* offL */
iconst_4
iadd
fload 8 /* cx */
fastore
19: .line 545
aload 3 /* pts */
iload 4 /* offL */
iconst_5
iadd
fload 9 /* cy */
fastore
20: .line 547
aload 3 /* pts */
iload 5 /* offR */
fload 8 /* cx */
fastore
21: .line 548
aload 3 /* pts */
iload 5 /* offR */
iconst_1
iadd
fload 9 /* cy */
fastore
22: .line 549
aload 3 /* pts */
iload 5 /* offR */
iconst_2
iadd
fload 10 /* x2 */
fastore
23: .line 550
aload 3 /* pts */
iload 5 /* offR */
iconst_3
iadd
fload 11 /* y2 */
fastore
24: .line 551
return
end local 11 // float y2
end local 10 // float x2
end local 9 // float cy
end local 8 // float cx
end local 7 // float y1
end local 6 // float x1
end local 5 // int offR
end local 4 // int offL
end local 3 // float[] pts
end local 2 // int offS
end local 1 // float[] src
end local 0 // float t
LocalVariableTable:
Start End Slot Name Signature
0 25 0 t F
0 25 1 src [F
0 25 2 offS I
0 25 3 pts [F
0 25 4 offL I
0 25 5 offR I
1 25 6 x1 F
2 25 7 y1 F
3 25 8 cx F
4 25 9 cy F
5 25 10 x2 F
6 25 11 y2 F
MethodParameters:
Name Flags
t final
src final
offS final
pts final
offL final
offR final
static void subdivideLineAt(float, float[], int, float[], int, int);
descriptor: (F[FI[FII)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=10, args_size=6
start local 0 // float t
start local 1 // float[] src
start local 2 // int offS
start local 3 // float[] pts
start local 4 // int offL
start local 5 // int offR
0: .line 557
aload 1 /* src */
iload 2 /* offS */
faload
fstore 6 /* x1 */
start local 6 // float x1
1: .line 558
aload 1 /* src */
iload 2 /* offS */
iconst_1
iadd
faload
fstore 7 /* y1 */
start local 7 // float y1
2: .line 559
aload 1 /* src */
iload 2 /* offS */
iconst_2
iadd
faload
fstore 8 /* x2 */
start local 8 // float x2
3: .line 560
aload 1 /* src */
iload 2 /* offS */
iconst_3
iadd
faload
fstore 9 /* y2 */
start local 9 // float y2
4: .line 562
aload 3 /* pts */
iload 4 /* offL */
fload 6 /* x1 */
fastore
5: .line 563
aload 3 /* pts */
iload 4 /* offL */
iconst_1
iadd
fload 7 /* y1 */
fastore
6: .line 565
aload 3 /* pts */
iload 5 /* offR */
iconst_2
iadd
fload 8 /* x2 */
fastore
7: .line 566
aload 3 /* pts */
iload 5 /* offR */
iconst_3
iadd
fload 9 /* y2 */
fastore
8: .line 568
fload 6 /* x1 */
fload 0 /* t */
fload 8 /* x2 */
fload 6 /* x1 */
fsub
fmul
fadd
fstore 6 /* x1 */
9: .line 569
fload 7 /* y1 */
fload 0 /* t */
fload 9 /* y2 */
fload 7 /* y1 */
fsub
fmul
fadd
fstore 7 /* y1 */
10: .line 571
aload 3 /* pts */
iload 4 /* offL */
iconst_2
iadd
fload 6 /* x1 */
fastore
11: .line 572
aload 3 /* pts */
iload 4 /* offL */
iconst_3
iadd
fload 7 /* y1 */
fastore
12: .line 574
aload 3 /* pts */
iload 5 /* offR */
fload 6 /* x1 */
fastore
13: .line 575
aload 3 /* pts */
iload 5 /* offR */
iconst_1
iadd
fload 7 /* y1 */
fastore
14: .line 576
return
end local 9 // float y2
end local 8 // float x2
end local 7 // float y1
end local 6 // float x1
end local 5 // int offR
end local 4 // int offL
end local 3 // float[] pts
end local 2 // int offS
end local 1 // float[] src
end local 0 // float t
LocalVariableTable:
Start End Slot Name Signature
0 15 0 t F
0 15 1 src [F
0 15 2 offS I
0 15 3 pts [F
0 15 4 offL I
0 15 5 offR I
1 15 6 x1 F
2 15 7 y1 F
3 15 8 x2 F
4 15 9 y2 F
MethodParameters:
Name Flags
t final
src final
offS final
pts final
offL final
offR final
static void subdivideAt(float, float[], int, float[], int, int);
descriptor: (F[FI[FII)V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=6, args_size=6
start local 0 // float t
start local 1 // float[] src
start local 2 // int offS
start local 3 // float[] pts
start local 4 // int offL
start local 5 // int type
0: .line 583
iload 5 /* type */
bipush 8
if_icmpne 3
1: .line 584
fload 0 /* t */
aload 1 /* src */
iload 2 /* offS */
aload 3 /* pts */
iload 4 /* offL */
iload 4 /* offL */
iload 5 /* type */
iadd
invokestatic sun.java2d.marlin.Helpers.subdivideCubicAt:(F[FI[FII)V
2: .line 585
goto 7
StackMap locals:
StackMap stack:
3: iload 5 /* type */
iconst_4
if_icmpne 6
4: .line 586
fload 0 /* t */
aload 1 /* src */
iload 2 /* offS */
aload 3 /* pts */
iload 4 /* offL */
iload 4 /* offL */
iload 5 /* type */
iadd
invokestatic sun.java2d.marlin.Helpers.subdivideLineAt:(F[FI[FII)V
5: .line 587
goto 7
6: .line 588
StackMap locals:
StackMap stack:
fload 0 /* t */
aload 1 /* src */
iload 2 /* offS */
aload 3 /* pts */
iload 4 /* offL */
iload 4 /* offL */
iload 5 /* type */
iadd
invokestatic sun.java2d.marlin.Helpers.subdivideQuadAt:(F[FI[FII)V
7: .line 590
StackMap locals:
StackMap stack:
return
end local 5 // int type
end local 4 // int offL
end local 3 // float[] pts
end local 2 // int offS
end local 1 // float[] src
end local 0 // float t
LocalVariableTable:
Start End Slot Name Signature
0 8 0 t F
0 8 1 src [F
0 8 2 offS I
0 8 3 pts [F
0 8 4 offL I
0 8 5 type I
MethodParameters:
Name Flags
t final
src final
offS final
pts final
offL final
type final
static int outcode(float, float, float[]);
descriptor: (FF[F)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 // float x
start local 1 // float y
start local 2 // float[] clipRect
0: .line 598
fload 1 /* y */
aload 2 /* clipRect */
iconst_0
faload
fcmpg
ifge 3
1: .line 599
iconst_1
istore 3 /* code */
start local 3 // int code
2: .line 600
goto 7
end local 3 // int code
StackMap locals:
StackMap stack:
3: fload 1 /* y */
aload 2 /* clipRect */
iconst_1
faload
fcmpl
iflt 6
4: .line 601
iconst_2
istore 3 /* code */
start local 3 // int code
5: .line 602
goto 7
end local 3 // int code
6: .line 603
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* code */
start local 3 // int code
7: .line 605
StackMap locals: int
StackMap stack:
fload 0 /* x */
aload 2 /* clipRect */
iconst_2
faload
fcmpg
ifge 10
8: .line 606
iload 3 /* code */
iconst_4
ior
istore 3 /* code */
9: .line 607
goto 12
StackMap locals:
StackMap stack:
10: fload 0 /* x */
aload 2 /* clipRect */
iconst_3
faload
fcmpl
iflt 12
11: .line 608
iload 3 /* code */
bipush 8
ior
istore 3 /* code */
12: .line 610
StackMap locals:
StackMap stack:
iload 3 /* code */
ireturn
end local 3 // int code
end local 2 // float[] clipRect
end local 1 // float y
end local 0 // float x
LocalVariableTable:
Start End Slot Name Signature
0 13 0 x F
0 13 1 y F
0 13 2 clipRect [F
2 3 3 code I
5 6 3 code I
7 13 3 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