public final class com.sun.marlin.Stroker implements com.sun.javafx.geom.PathConsumer2D, com.sun.marlin.MarlinConst
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.marlin.Stroker
super_class: java.lang.Object
{
private static final int MOVE_TO;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int DRAWING_OP_TO;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int CLOSE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final float ERR_JOIN;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final float ROUND_JOIN_THRESHOLD;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final float C;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final float SQRT_2;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private com.sun.javafx.geom.PathConsumer2D out;
descriptor: Lcom/sun/javafx/geom/PathConsumer2D;
flags: (0x0002) ACC_PRIVATE
private int capStyle;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int joinStyle;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float lineWidth2;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float invHalfLineWidth2Sq;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private final float[] offset0;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float[] offset1;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float[] offset2;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float[] miter;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private float miterLimitSq;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private int prev;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float sx0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float sy0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float sdx;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float sdy;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float cx0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float cy0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float cdx;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float cdy;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float smx;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float smy;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float cmx;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float cmy;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private final com.sun.marlin.Helpers$PolyStack reverse;
descriptor: Lcom/sun/marlin/Helpers$PolyStack;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float[] lp;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float[] rp;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.sun.marlin.RendererContext rdrCtx;
descriptor: Lcom/sun/marlin/RendererContext;
flags: (0x0010) ACC_FINAL
final com.sun.marlin.Curve curve;
descriptor: Lcom/sun/marlin/Curve;
flags: (0x0010) ACC_FINAL
private float[] clipRect;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private int cOutCode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int sOutCode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean opened;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean capStart;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean monotonize;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean subdivide;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final com.sun.marlin.TransformingPathConsumer2D$CurveClipSplitter curveSplitter;
descriptor: Lcom/sun/marlin/TransformingPathConsumer2D$CurveClipSplitter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: .line 38
ldc Lcom/sun/marlin/Stroker;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.sun.marlin.Stroker.$assertionsDisabled:Z
3: .line 45
fconst_1
getstatic com.sun.marlin.Stroker.MIN_SUBPIXELS:F
fdiv
putstatic com.sun.marlin.Stroker.ERR_JOIN:F
4: .line 46
getstatic com.sun.marlin.Stroker.ERR_JOIN:F
getstatic com.sun.marlin.Stroker.ERR_JOIN:F
fmul
putstatic com.sun.marlin.Stroker.ROUND_JOIN_THRESHOLD:F
5: .line 49
ldc 4.0
ldc 2.0
invokestatic java.lang.Math.sqrt:(D)D
dconst_1
dsub
dmul
ldc 3.0
ddiv
d2f
putstatic com.sun.marlin.Stroker.C:F
6: .line 52
ldc 2.0
invokestatic java.lang.Math.sqrt:(D)D
d2f
putstatic com.sun.marlin.Stroker.SQRT_2:F
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.sun.marlin.RendererContext);
descriptor: (Lcom/sun/marlin/RendererContext;)V
flags: (0x0000)
Code:
stack=9, locals=2, args_size=2
start local 0 // com.sun.marlin.Stroker this
start local 1 // com.sun.marlin.RendererContext rdrCtx
0: .line 116
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 62
aload 0 /* this */
iconst_2
newarray 6
putfield com.sun.marlin.Stroker.offset0:[F
2: .line 63
aload 0 /* this */
iconst_2
newarray 6
putfield com.sun.marlin.Stroker.offset1:[F
3: .line 64
aload 0 /* this */
iconst_2
newarray 6
putfield com.sun.marlin.Stroker.offset2:[F
4: .line 65
aload 0 /* this */
iconst_2
newarray 6
putfield com.sun.marlin.Stroker.miter:[F
5: .line 84
aload 0 /* this */
bipush 8
newarray 6
putfield com.sun.marlin.Stroker.lp:[F
6: .line 85
aload 0 /* this */
bipush 8
newarray 6
putfield com.sun.marlin.Stroker.rp:[F
7: .line 97
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.cOutCode:I
8: .line 100
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.sOutCode:I
9: .line 103
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.opened:Z
10: .line 105
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.capStart:Z
11: .line 109
aload 0 /* this */
getstatic com.sun.marlin.Stroker.DO_CLIP_SUBDIVIDER:Z
putfield com.sun.marlin.Stroker.subdivide:Z
12: .line 117
aload 0 /* this */
aload 1 /* rdrCtx */
putfield com.sun.marlin.Stroker.rdrCtx:Lcom/sun/marlin/RendererContext;
13: .line 119
aload 0 /* this */
aload 1 /* rdrCtx */
getfield com.sun.marlin.RendererContext.stats:Lcom/sun/marlin/RendererStats;
ifnull 22
14: .line 120
new com.sun.marlin.Helpers$PolyStack
dup
aload 1 /* rdrCtx */
15: .line 121
aload 1 /* rdrCtx */
getfield com.sun.marlin.RendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.stat_str_polystack_types:Lcom/sun/marlin/stats/StatLong;
16: .line 122
aload 1 /* rdrCtx */
getfield com.sun.marlin.RendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.stat_str_polystack_curves:Lcom/sun/marlin/stats/StatLong;
17: .line 123
aload 1 /* rdrCtx */
getfield com.sun.marlin.RendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.hist_str_polystack_curves:Lcom/sun/marlin/stats/Histogram;
18: .line 124
aload 1 /* rdrCtx */
getfield com.sun.marlin.RendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.stat_array_str_polystack_curves:Lcom/sun/marlin/stats/StatLong;
19: .line 125
aload 1 /* rdrCtx */
getfield com.sun.marlin.RendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.stat_array_str_polystack_types:Lcom/sun/marlin/stats/StatLong;
20: .line 120
invokespecial com.sun.marlin.Helpers$PolyStack.<init>:(Lcom/sun/marlin/RendererContext;Lcom/sun/marlin/stats/StatLong;Lcom/sun/marlin/stats/StatLong;Lcom/sun/marlin/stats/Histogram;Lcom/sun/marlin/stats/StatLong;Lcom/sun/marlin/stats/StatLong;)V
21: .line 125
goto 23
22: .line 126
StackMap locals: com.sun.marlin.Stroker com.sun.marlin.RendererContext
StackMap stack: com.sun.marlin.Stroker
new com.sun.marlin.Helpers$PolyStack
dup
aload 1 /* rdrCtx */
invokespecial com.sun.marlin.Helpers$PolyStack.<init>:(Lcom/sun/marlin/RendererContext;)V
23: .line 119
StackMap locals: com.sun.marlin.Stroker com.sun.marlin.RendererContext
StackMap stack: com.sun.marlin.Stroker com.sun.marlin.Helpers$PolyStack
putfield com.sun.marlin.Stroker.reverse:Lcom/sun/marlin/Helpers$PolyStack;
24: .line 128
aload 0 /* this */
aload 1 /* rdrCtx */
getfield com.sun.marlin.RendererContext.curve:Lcom/sun/marlin/Curve;
putfield com.sun.marlin.Stroker.curve:Lcom/sun/marlin/Curve;
25: .line 129
aload 0 /* this */
aload 1 /* rdrCtx */
getfield com.sun.marlin.RendererContext.curveClipSplitter:Lcom/sun/marlin/TransformingPathConsumer2D$CurveClipSplitter;
putfield com.sun.marlin.Stroker.curveSplitter:Lcom/sun/marlin/TransformingPathConsumer2D$CurveClipSplitter;
26: .line 130
return
end local 1 // com.sun.marlin.RendererContext rdrCtx
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/sun/marlin/Stroker;
0 27 1 rdrCtx Lcom/sun/marlin/RendererContext;
MethodParameters:
Name Flags
rdrCtx final
public com.sun.marlin.Stroker init(com.sun.javafx.geom.PathConsumer2D, float, int, int, float, float, double, double, boolean);
descriptor: (Lcom/sun/javafx/geom/PathConsumer2D;FIIFFDDZ)Lcom/sun/marlin/Stroker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=15, args_size=10
start local 0 // com.sun.marlin.Stroker this
start local 1 // com.sun.javafx.geom.PathConsumer2D pc2d
start local 2 // float lineWidth
start local 3 // int capStyle
start local 4 // int joinStyle
start local 5 // float miterLimit
start local 6 // float scale
start local 7 // double rdrOffX
start local 9 // double rdrOffY
start local 11 // boolean subdivideCurves
0: .line 160
aload 0 /* this */
aload 1 /* pc2d */
putfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
1: .line 162
aload 0 /* this */
fload 2 /* lineWidth */
fconst_2
fdiv
putfield com.sun.marlin.Stroker.lineWidth2:F
2: .line 163
aload 0 /* this */
fconst_1
fconst_2
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
fmul
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
fmul
fdiv
putfield com.sun.marlin.Stroker.invHalfLineWidth2Sq:F
3: .line 164
aload 0 /* this */
iload 11 /* subdivideCurves */
putfield com.sun.marlin.Stroker.monotonize:Z
4: .line 166
aload 0 /* this */
iload 3 /* capStyle */
putfield com.sun.marlin.Stroker.capStyle:I
5: .line 167
aload 0 /* this */
iload 4 /* joinStyle */
putfield com.sun.marlin.Stroker.joinStyle:I
6: .line 169
fload 5 /* miterLimit */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
fmul
fstore 12 /* limit */
start local 12 // float limit
7: .line 170
aload 0 /* this */
fload 12 /* limit */
fload 12 /* limit */
fmul
putfield com.sun.marlin.Stroker.miterLimitSq:F
8: .line 172
aload 0 /* this */
iconst_2
putfield com.sun.marlin.Stroker.prev:I
9: .line 174
aload 0 /* this */
getfield com.sun.marlin.Stroker.rdrCtx:Lcom/sun/marlin/RendererContext;
iconst_1
putfield com.sun.marlin.RendererContext.stroking:I
10: .line 176
aload 0 /* this */
getfield com.sun.marlin.Stroker.rdrCtx:Lcom/sun/marlin/RendererContext;
getfield com.sun.marlin.RendererContext.doClip:Z
ifeq 33
11: .line 178
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
fstore 13 /* margin */
start local 13 // float margin
12: .line 180
iload 3 /* capStyle */
iconst_2
if_icmpne 14
13: .line 181
fload 13 /* margin */
getstatic com.sun.marlin.Stroker.SQRT_2:F
fmul
fstore 13 /* margin */
14: .line 183
StackMap locals: float float
StackMap stack:
iload 4 /* joinStyle */
ifne 16
fload 13 /* margin */
fload 12 /* limit */
fcmpg
ifge 16
15: .line 184
fload 12 /* limit */
fstore 13 /* margin */
16: .line 186
StackMap locals:
StackMap stack:
fload 6 /* scale */
fconst_1
fcmpl
ifeq 20
17: .line 187
fload 13 /* margin */
fload 6 /* scale */
fmul
fstore 13 /* margin */
18: .line 188
dload 7 /* rdrOffX */
fload 6 /* scale */
f2d
dmul
dstore 7 /* rdrOffX */
19: .line 189
dload 9 /* rdrOffY */
fload 6 /* scale */
f2d
dmul
dstore 9 /* rdrOffY */
20: .line 192
StackMap locals:
StackMap stack:
fload 13 /* margin */
ldc 0.001
fadd
fstore 13 /* margin */
21: .line 196
aload 0 /* this */
getfield com.sun.marlin.Stroker.rdrCtx:Lcom/sun/marlin/RendererContext;
getfield com.sun.marlin.RendererContext.clipRect:[F
astore 14 /* _clipRect */
start local 14 // float[] _clipRect
22: .line 197
aload 14 /* _clipRect */
iconst_0
dup2
faload
f2d
fload 13 /* margin */
f2d
dload 9 /* rdrOffY */
dsub
dsub
d2f
fastore
23: .line 198
aload 14 /* _clipRect */
iconst_1
dup2
faload
f2d
fload 13 /* margin */
f2d
dload 9 /* rdrOffY */
dadd
dadd
d2f
fastore
24: .line 199
aload 14 /* _clipRect */
iconst_2
dup2
faload
f2d
fload 13 /* margin */
f2d
dload 7 /* rdrOffX */
dsub
dsub
d2f
fastore
25: .line 200
aload 14 /* _clipRect */
iconst_3
dup2
faload
f2d
fload 13 /* margin */
f2d
dload 7 /* rdrOffX */
dadd
dadd
d2f
fastore
26: .line 201
aload 0 /* this */
aload 14 /* _clipRect */
putfield com.sun.marlin.Stroker.clipRect:[F
27: .line 204
getstatic com.sun.marlin.Stroker.DO_CLIP_SUBDIVIDER:Z
ifeq 31
28: .line 205
aload 0 /* this */
iload 11 /* subdivideCurves */
putfield com.sun.marlin.Stroker.subdivide:Z
29: .line 207
aload 0 /* this */
getfield com.sun.marlin.Stroker.curveSplitter:Lcom/sun/marlin/TransformingPathConsumer2D$CurveClipSplitter;
invokevirtual com.sun.marlin.TransformingPathConsumer2D$CurveClipSplitter.init:()V
30: .line 208
goto 36
31: .line 209
StackMap locals: float[]
StackMap stack:
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.subdivide:Z
end local 14 // float[] _clipRect
end local 13 // float margin
32: .line 211
goto 36
33: .line 212
StackMap locals:
StackMap stack:
aload 0 /* this */
aconst_null
putfield com.sun.marlin.Stroker.clipRect:[F
34: .line 213
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.cOutCode:I
35: .line 214
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.sOutCode:I
36: .line 216
StackMap locals:
StackMap stack:
aload 0 /* this */
areturn
end local 12 // float limit
end local 11 // boolean subdivideCurves
end local 9 // double rdrOffY
end local 7 // double rdrOffX
end local 6 // float scale
end local 5 // float miterLimit
end local 4 // int joinStyle
end local 3 // int capStyle
end local 2 // float lineWidth
end local 1 // com.sun.javafx.geom.PathConsumer2D pc2d
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/marlin/Stroker;
0 37 1 pc2d Lcom/sun/javafx/geom/PathConsumer2D;
0 37 2 lineWidth F
0 37 3 capStyle I
0 37 4 joinStyle I
0 37 5 miterLimit F
0 37 6 scale F
0 37 7 rdrOffX D
0 37 9 rdrOffY D
0 37 11 subdivideCurves Z
7 37 12 limit F
12 32 13 margin F
22 32 14 _clipRect [F
MethodParameters:
Name Flags
pc2d final
lineWidth final
capStyle final
joinStyle final
miterLimit final
scale final
rdrOffX
rdrOffY
subdivideCurves final
public void disableClipping();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.marlin.Stroker this
0: .line 220
aload 0 /* this */
aconst_null
putfield com.sun.marlin.Stroker.clipRect:[F
1: .line 221
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.cOutCode:I
2: .line 222
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.sOutCode:I
3: .line 223
return
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/marlin/Stroker;
void dispose();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.marlin.Stroker this
0: .line 230
aload 0 /* this */
getfield com.sun.marlin.Stroker.reverse:Lcom/sun/marlin/Helpers$PolyStack;
invokevirtual com.sun.marlin.Helpers$PolyStack.dispose:()V
1: .line 232
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.opened:Z
2: .line 233
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.capStart:Z
3: .line 244
return
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/marlin/Stroker;
private static void computeOffset(float, float, float, float[]);
descriptor: (FFF[F)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 // float lx
start local 1 // float ly
start local 2 // float w
start local 3 // float[] m
0: .line 249
fload 0 /* lx */
fload 0 /* lx */
fmul
fload 1 /* ly */
fload 1 /* ly */
fmul
fadd
fstore 4 /* len */
start local 4 // float len
1: .line 250
fload 4 /* len */
fconst_0
fcmpl
ifne 5
2: .line 251
aload 3 /* m */
iconst_0
fconst_0
fastore
3: .line 252
aload 3 /* m */
iconst_1
fconst_0
fastore
4: .line 253
goto 8
5: .line 254
StackMap locals: float
StackMap stack:
fload 4 /* len */
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 4 /* len */
6: .line 255
aload 3 /* m */
iconst_0
fload 1 /* ly */
fload 2 /* w */
fmul
fload 4 /* len */
fdiv
fastore
7: .line 256
aload 3 /* m */
iconst_1
fload 0 /* lx */
fload 2 /* w */
fmul
fneg
fload 4 /* len */
fdiv
fastore
8: .line 258
StackMap locals:
StackMap stack:
return
end local 4 // float len
end local 3 // float[] m
end local 2 // float w
end local 1 // float ly
end local 0 // float lx
LocalVariableTable:
Start End Slot Name Signature
0 9 0 lx F
0 9 1 ly F
0 9 2 w F
0 9 3 m [F
1 9 4 len F
MethodParameters:
Name Flags
lx final
ly final
w final
m final
private static boolean isCW(float, float, float, float);
descriptor: (FFFF)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 // float dx1
start local 1 // float dy1
start local 2 // float dx2
start local 3 // float dy2
0: .line 271
fload 0 /* dx1 */
fload 3 /* dy2 */
fmul
fload 1 /* dy1 */
fload 2 /* dx2 */
fmul
fcmpg
ifgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 3 // float dy2
end local 2 // float dx2
end local 1 // float dy1
end local 0 // float dx1
LocalVariableTable:
Start End Slot Name Signature
0 2 0 dx1 F
0 2 1 dy1 F
0 2 2 dx2 F
0 2 3 dy2 F
MethodParameters:
Name Flags
dx1 final
dy1 final
dx2 final
dy2 final
private void mayDrawRoundJoin(float, float, float, float, float, float, boolean);
descriptor: (FFFFFFZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=11, args_size=8
start local 0 // com.sun.marlin.Stroker this
start local 1 // float cx
start local 2 // float cy
start local 3 // float omx
start local 4 // float omy
start local 5 // float mx
start local 6 // float my
start local 7 // boolean rev
0: .line 279
fload 3 /* omx */
fconst_0
fcmpl
ifne 1
fload 4 /* omy */
fconst_0
fcmpl
ifeq 2
StackMap locals:
StackMap stack:
1: fload 5 /* mx */
fconst_0
fcmpl
ifne 3
fload 6 /* my */
fconst_0
fcmpl
ifne 3
2: .line 280
StackMap locals:
StackMap stack:
return
3: .line 283
StackMap locals:
StackMap stack:
fload 3 /* omx */
fload 5 /* mx */
fsub
fstore 8 /* domx */
start local 8 // float domx
4: .line 284
fload 4 /* omy */
fload 6 /* my */
fsub
fstore 9 /* domy */
start local 9 // float domy
5: .line 285
fload 8 /* domx */
fload 8 /* domx */
fmul
fload 9 /* domy */
fload 9 /* domy */
fmul
fadd
fstore 10 /* lenSq */
start local 10 // float lenSq
6: .line 287
fload 10 /* lenSq */
getstatic com.sun.marlin.Stroker.ROUND_JOIN_THRESHOLD:F
fcmpg
ifge 8
7: .line 288
return
8: .line 291
StackMap locals: float float float
StackMap stack:
iload 7 /* rev */
ifeq 13
9: .line 292
fload 3 /* omx */
fneg
fstore 3 /* omx */
10: .line 293
fload 4 /* omy */
fneg
fstore 4 /* omy */
11: .line 294
fload 5 /* mx */
fneg
fstore 5 /* mx */
12: .line 295
fload 6 /* my */
fneg
fstore 6 /* my */
13: .line 297
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 1 /* cx */
fload 2 /* cy */
fload 3 /* omx */
fload 4 /* omy */
fload 5 /* mx */
fload 6 /* my */
iload 7 /* rev */
invokevirtual com.sun.marlin.Stroker.drawRoundJoin:(FFFFFFZ)V
14: .line 298
return
end local 10 // float lenSq
end local 9 // float domy
end local 8 // float domx
end local 7 // boolean rev
end local 6 // float my
end local 5 // float mx
end local 4 // float omy
end local 3 // float omx
end local 2 // float cy
end local 1 // float cx
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/marlin/Stroker;
0 15 1 cx F
0 15 2 cy F
0 15 3 omx F
0 15 4 omy F
0 15 5 mx F
0 15 6 my F
0 15 7 rev Z
4 15 8 domx F
5 15 9 domy F
6 15 10 lenSq F
MethodParameters:
Name Flags
cx
cy
omx
omy
mx
my
rev
private void drawRoundJoin(float, float, float, float, float, float, boolean);
descriptor: (FFFFFFZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=15, args_size=8
start local 0 // com.sun.marlin.Stroker this
start local 1 // float cx
start local 2 // float cy
start local 3 // float omx
start local 4 // float omy
start local 5 // float mx
start local 6 // float my
start local 7 // boolean rev
0: .line 308
fload 3 /* omx */
fload 5 /* mx */
fmul
fload 4 /* omy */
fload 6 /* my */
fmul
fadd
fstore 8 /* cosext */
start local 8 // float cosext
1: .line 312
fload 8 /* cosext */
fconst_0
fcmpl
iflt 4
2: .line 313
aload 0 /* this */
fload 1 /* cx */
fload 2 /* cy */
fload 3 /* omx */
fload 4 /* omy */
fload 5 /* mx */
fload 6 /* my */
iload 7 /* rev */
invokevirtual com.sun.marlin.Stroker.drawBezApproxForArc:(FFFFFFZ)V
3: .line 314
goto 15
4: .line 329
StackMap locals: float
StackMap stack:
fload 6 /* my */
fload 4 /* omy */
fsub
fstore 9 /* nx */
start local 9 // float nx
5: fload 3 /* omx */
fload 5 /* mx */
fsub
fstore 10 /* ny */
start local 10 // float ny
6: .line 330
fload 9 /* nx */
fload 9 /* nx */
fmul
fload 10 /* ny */
fload 10 /* ny */
fmul
fadd
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 11 /* nlen */
start local 11 // float nlen
7: .line 331
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
fload 11 /* nlen */
fdiv
fstore 12 /* scale */
start local 12 // float scale
8: .line 332
fload 9 /* nx */
fload 12 /* scale */
fmul
fstore 13 /* mmx */
start local 13 // float mmx
9: fload 10 /* ny */
fload 12 /* scale */
fmul
fstore 14 /* mmy */
start local 14 // float mmy
10: .line 337
iload 7 /* rev */
ifeq 13
11: .line 338
fload 13 /* mmx */
fneg
fstore 13 /* mmx */
12: .line 339
fload 14 /* mmy */
fneg
fstore 14 /* mmy */
13: .line 341
StackMap locals: com.sun.marlin.Stroker float float float float float float int float float float float float float float
StackMap stack:
aload 0 /* this */
fload 1 /* cx */
fload 2 /* cy */
fload 3 /* omx */
fload 4 /* omy */
fload 13 /* mmx */
fload 14 /* mmy */
iload 7 /* rev */
invokevirtual com.sun.marlin.Stroker.drawBezApproxForArc:(FFFFFFZ)V
14: .line 342
aload 0 /* this */
fload 1 /* cx */
fload 2 /* cy */
fload 13 /* mmx */
fload 14 /* mmy */
fload 5 /* mx */
fload 6 /* my */
iload 7 /* rev */
invokevirtual com.sun.marlin.Stroker.drawBezApproxForArc:(FFFFFFZ)V
end local 14 // float mmy
end local 13 // float mmx
end local 12 // float scale
end local 11 // float nlen
end local 10 // float ny
end local 9 // float nx
15: .line 344
StackMap locals: com.sun.marlin.Stroker float float float float float float int float
StackMap stack:
return
end local 8 // float cosext
end local 7 // boolean rev
end local 6 // float my
end local 5 // float mx
end local 4 // float omy
end local 3 // float omx
end local 2 // float cy
end local 1 // float cx
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/marlin/Stroker;
0 16 1 cx F
0 16 2 cy F
0 16 3 omx F
0 16 4 omy F
0 16 5 mx F
0 16 6 my F
0 16 7 rev Z
1 16 8 cosext F
5 15 9 nx F
6 15 10 ny F
7 15 11 nlen F
8 15 12 scale F
9 15 13 mmx F
10 15 14 mmy F
MethodParameters:
Name Flags
cx
cy
omx
omy
mx
my
rev
private void drawBezApproxForArc(float, float, float, float, float, float, boolean);
descriptor: (FFFFFFZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=18, args_size=8
start local 0 // com.sun.marlin.Stroker this
start local 1 // float cx
start local 2 // float cy
start local 3 // float omx
start local 4 // float omy
start local 5 // float mx
start local 6 // float my
start local 7 // boolean rev
0: .line 352
fload 3 /* omx */
fload 5 /* mx */
fmul
fload 4 /* omy */
fload 6 /* my */
fmul
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.invHalfLineWidth2Sq:F
fmul
fstore 8 /* cosext2 */
start local 8 // float cosext2
1: .line 356
fload 8 /* cosext2 */
ldc 0.5
fcmpl
iflt 3
2: .line 358
return
3: .line 366
StackMap locals: float
StackMap stack:
ldc 1.3333333333333333
ldc 0.5
fload 8 /* cosext2 */
f2d
dsub
invokestatic java.lang.Math.sqrt:(D)D
dmul
4: .line 367
dconst_1
fload 8 /* cosext2 */
f2d
ldc 0.5
dadd
invokestatic java.lang.Math.sqrt:(D)D
dadd
5: .line 366
ddiv
d2f
fstore 9 /* cv */
start local 9 // float cv
6: .line 369
iload 7 /* rev */
ifeq 8
7: .line 370
fload 9 /* cv */
fneg
fstore 9 /* cv */
8: .line 372
StackMap locals: float
StackMap stack:
fload 1 /* cx */
fload 3 /* omx */
fadd
fstore 10 /* x1 */
start local 10 // float x1
9: .line 373
fload 2 /* cy */
fload 4 /* omy */
fadd
fstore 11 /* y1 */
start local 11 // float y1
10: .line 374
fload 10 /* x1 */
fload 9 /* cv */
fload 4 /* omy */
fmul
fsub
fstore 12 /* x2 */
start local 12 // float x2
11: .line 375
fload 11 /* y1 */
fload 9 /* cv */
fload 3 /* omx */
fmul
fadd
fstore 13 /* y2 */
start local 13 // float y2
12: .line 377
fload 1 /* cx */
fload 5 /* mx */
fadd
fstore 14 /* x4 */
start local 14 // float x4
13: .line 378
fload 2 /* cy */
fload 6 /* my */
fadd
fstore 15 /* y4 */
start local 15 // float y4
14: .line 379
fload 14 /* x4 */
fload 9 /* cv */
fload 6 /* my */
fmul
fadd
fstore 16 /* x3 */
start local 16 // float x3
15: .line 380
fload 15 /* y4 */
fload 9 /* cv */
fload 5 /* mx */
fmul
fsub
fstore 17 /* y3 */
start local 17 // float y3
16: .line 382
aload 0 /* this */
fload 10 /* x1 */
fload 11 /* y1 */
fload 12 /* x2 */
fload 13 /* y2 */
fload 16 /* x3 */
fload 17 /* y3 */
fload 14 /* x4 */
fload 15 /* y4 */
iload 7 /* rev */
invokevirtual com.sun.marlin.Stroker.emitCurveTo:(FFFFFFFFZ)V
17: .line 383
return
end local 17 // float y3
end local 16 // float x3
end local 15 // float y4
end local 14 // float x4
end local 13 // float y2
end local 12 // float x2
end local 11 // float y1
end local 10 // float x1
end local 9 // float cv
end local 8 // float cosext2
end local 7 // boolean rev
end local 6 // float my
end local 5 // float mx
end local 4 // float omy
end local 3 // float omx
end local 2 // float cy
end local 1 // float cx
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/marlin/Stroker;
0 18 1 cx F
0 18 2 cy F
0 18 3 omx F
0 18 4 omy F
0 18 5 mx F
0 18 6 my F
0 18 7 rev Z
1 18 8 cosext2 F
6 18 9 cv F
9 18 10 x1 F
10 18 11 y1 F
11 18 12 x2 F
12 18 13 y2 F
13 18 14 x4 F
14 18 15 y4 F
15 18 16 x3 F
16 18 17 y3 F
MethodParameters:
Name Flags
cx final
cy final
omx final
omy final
mx final
my final
rev
private void drawRoundCap(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=5
start local 0 // com.sun.marlin.Stroker this
start local 1 // float cx
start local 2 // float cy
start local 3 // float mx
start local 4 // float my
0: .line 386
getstatic com.sun.marlin.Stroker.C:F
fload 3 /* mx */
fmul
fstore 5 /* Cmx */
start local 5 // float Cmx
1: .line 387
getstatic com.sun.marlin.Stroker.C:F
fload 4 /* my */
fmul
fstore 6 /* Cmy */
start local 6 // float Cmy
2: .line 388
aload 0 /* this */
fload 1 /* cx */
fload 3 /* mx */
fadd
fload 6 /* Cmy */
fsub
fload 2 /* cy */
fload 4 /* my */
fadd
fload 5 /* Cmx */
fadd
3: .line 389
fload 1 /* cx */
fload 4 /* my */
fsub
fload 5 /* Cmx */
fadd
fload 2 /* cy */
fload 3 /* mx */
fadd
fload 6 /* Cmy */
fadd
4: .line 390
fload 1 /* cx */
fload 4 /* my */
fsub
fload 2 /* cy */
fload 3 /* mx */
fadd
5: .line 388
invokevirtual com.sun.marlin.Stroker.emitCurveTo:(FFFFFF)V
6: .line 391
aload 0 /* this */
fload 1 /* cx */
fload 4 /* my */
fsub
fload 5 /* Cmx */
fsub
fload 2 /* cy */
fload 3 /* mx */
fadd
fload 6 /* Cmy */
fsub
7: .line 392
fload 1 /* cx */
fload 3 /* mx */
fsub
fload 6 /* Cmy */
fsub
fload 2 /* cy */
fload 4 /* my */
fsub
fload 5 /* Cmx */
fadd
8: .line 393
fload 1 /* cx */
fload 3 /* mx */
fsub
fload 2 /* cy */
fload 4 /* my */
fsub
9: .line 391
invokevirtual com.sun.marlin.Stroker.emitCurveTo:(FFFFFF)V
10: .line 394
return
end local 6 // float Cmy
end local 5 // float Cmx
end local 4 // float my
end local 3 // float mx
end local 2 // float cy
end local 1 // float cx
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/marlin/Stroker;
0 11 1 cx F
0 11 2 cy F
0 11 3 mx F
0 11 4 my F
1 11 5 Cmx F
2 11 6 Cmy F
MethodParameters:
Name Flags
cx
cy
mx
my
private static void computeMiter(float, float, float, float, float, float, float, float, float[]);
descriptor: (FFFFFFFF[F)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=15, args_size=9
start local 0 // float x0
start local 1 // float y0
start local 2 // float x1
start local 3 // float y1
start local 4 // float x0p
start local 5 // float y0p
start local 6 // float x1p
start local 7 // float y1p
start local 8 // float[] m
0: .line 404
fload 2 /* x1 */
fload 0 /* x0 */
fsub
fstore 9 /* x10 */
start local 9 // float x10
1: .line 405
fload 3 /* y1 */
fload 1 /* y0 */
fsub
fstore 10 /* y10 */
start local 10 // float y10
2: .line 406
fload 6 /* x1p */
fload 4 /* x0p */
fsub
fstore 11 /* x10p */
start local 11 // float x10p
3: .line 407
fload 7 /* y1p */
fload 5 /* y0p */
fsub
fstore 12 /* y10p */
start local 12 // float y10p
4: .line 418
fload 9 /* x10 */
fload 12 /* y10p */
fmul
fload 11 /* x10p */
fload 10 /* y10 */
fmul
fsub
fstore 13 /* den */
start local 13 // float den
5: .line 419
fload 11 /* x10p */
fload 1 /* y0 */
fload 5 /* y0p */
fsub
fmul
fload 12 /* y10p */
fload 0 /* x0 */
fload 4 /* x0p */
fsub
fmul
fsub
fstore 14 /* t */
start local 14 // float t
6: .line 420
fload 14 /* t */
fload 13 /* den */
fdiv
fstore 14 /* t */
7: .line 421
aload 8 /* m */
iconst_0
fload 0 /* x0 */
fload 14 /* t */
fload 9 /* x10 */
fmul
fadd
fastore
8: .line 422
aload 8 /* m */
iconst_1
fload 1 /* y0 */
fload 14 /* t */
fload 10 /* y10 */
fmul
fadd
fastore
9: .line 423
return
end local 14 // float t
end local 13 // float den
end local 12 // float y10p
end local 11 // float x10p
end local 10 // float y10
end local 9 // float x10
end local 8 // float[] m
end local 7 // float y1p
end local 6 // float x1p
end local 5 // float y0p
end local 4 // float x0p
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 10 0 x0 F
0 10 1 y0 F
0 10 2 x1 F
0 10 3 y1 F
0 10 4 x0p F
0 10 5 y0p F
0 10 6 x1p F
0 10 7 y1p F
0 10 8 m [F
1 10 9 x10 F
2 10 10 y10 F
3 10 11 x10p F
4 10 12 y10p F
5 10 13 den F
6 10 14 t F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x0p final
y0p final
x1p final
y1p final
m final
private static void safeComputeMiter(float, float, float, float, float, float, float, float, float[]);
descriptor: (FFFFFFFF[F)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=15, args_size=9
start local 0 // float x0
start local 1 // float y0
start local 2 // float x1
start local 3 // float y1
start local 4 // float x0p
start local 5 // float y0p
start local 6 // float x1p
start local 7 // float y1p
start local 8 // float[] m
0: .line 433
fload 2 /* x1 */
fload 0 /* x0 */
fsub
fstore 9 /* x10 */
start local 9 // float x10
1: .line 434
fload 3 /* y1 */
fload 1 /* y0 */
fsub
fstore 10 /* y10 */
start local 10 // float y10
2: .line 435
fload 6 /* x1p */
fload 4 /* x0p */
fsub
fstore 11 /* x10p */
start local 11 // float x10p
3: .line 436
fload 7 /* y1p */
fload 5 /* y0p */
fsub
fstore 12 /* y10p */
start local 12 // float y10p
4: .line 447
fload 9 /* x10 */
fload 12 /* y10p */
fmul
fload 11 /* x10p */
fload 10 /* y10 */
fmul
fsub
fstore 13 /* den */
start local 13 // float den
5: .line 448
fload 13 /* den */
fconst_0
fcmpl
ifne 9
6: .line 449
aload 8 /* m */
iconst_2
fload 0 /* x0 */
fload 4 /* x0p */
fadd
fconst_2
fdiv
fastore
7: .line 450
aload 8 /* m */
iconst_3
fload 1 /* y0 */
fload 5 /* y0p */
fadd
fconst_2
fdiv
fastore
8: .line 451
goto 13
9: .line 452
StackMap locals: float float float float float float float float float[] float float float float float
StackMap stack:
fload 11 /* x10p */
fload 1 /* y0 */
fload 5 /* y0p */
fsub
fmul
fload 12 /* y10p */
fload 0 /* x0 */
fload 4 /* x0p */
fsub
fmul
fsub
fstore 14 /* t */
start local 14 // float t
10: .line 453
fload 14 /* t */
fload 13 /* den */
fdiv
fstore 14 /* t */
11: .line 454
aload 8 /* m */
iconst_2
fload 0 /* x0 */
fload 14 /* t */
fload 9 /* x10 */
fmul
fadd
fastore
12: .line 455
aload 8 /* m */
iconst_3
fload 1 /* y0 */
fload 14 /* t */
fload 10 /* y10 */
fmul
fadd
fastore
end local 14 // float t
13: .line 457
StackMap locals:
StackMap stack:
return
end local 13 // float den
end local 12 // float y10p
end local 11 // float x10p
end local 10 // float y10
end local 9 // float x10
end local 8 // float[] m
end local 7 // float y1p
end local 6 // float x1p
end local 5 // float y0p
end local 4 // float x0p
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 14 0 x0 F
0 14 1 y0 F
0 14 2 x1 F
0 14 3 y1 F
0 14 4 x0p F
0 14 5 y0p F
0 14 6 x1p F
0 14 7 y1p F
0 14 8 m [F
1 14 9 x10 F
2 14 10 y10 F
3 14 11 x10p F
4 14 12 y10p F
5 14 13 den F
10 13 14 t F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x0p final
y0p final
x1p final
y1p final
m final
private void drawMiter(float, float, float, float, float, float, float, float, float, float, boolean);
descriptor: (FFFFFFFFFFZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=15, args_size=12
start local 0 // com.sun.marlin.Stroker this
start local 1 // float pdx
start local 2 // float pdy
start local 3 // float x0
start local 4 // float y0
start local 5 // float dx
start local 6 // float dy
start local 7 // float omx
start local 8 // float omy
start local 9 // float mx
start local 10 // float my
start local 11 // boolean rev
0: .line 466
fload 9 /* mx */
fload 7 /* omx */
fcmpl
ifne 1
fload 10 /* my */
fload 8 /* omy */
fcmpl
ifeq 3
1: .line 467
StackMap locals:
StackMap stack:
fload 1 /* pdx */
fconst_0
fcmpl
ifne 2
fload 2 /* pdy */
fconst_0
fcmpl
ifeq 3
2: .line 468
StackMap locals:
StackMap stack:
fload 5 /* dx */
fconst_0
fcmpl
ifne 4
fload 6 /* dy */
fconst_0
fcmpl
ifne 4
3: .line 470
StackMap locals:
StackMap stack:
return
4: .line 473
StackMap locals:
StackMap stack:
iload 11 /* rev */
ifeq 9
5: .line 474
fload 7 /* omx */
fneg
fstore 7 /* omx */
6: .line 475
fload 8 /* omy */
fneg
fstore 8 /* omy */
7: .line 476
fload 9 /* mx */
fneg
fstore 9 /* mx */
8: .line 477
fload 10 /* my */
fneg
fstore 10 /* my */
9: .line 480
StackMap locals:
StackMap stack:
fload 3 /* x0 */
fload 1 /* pdx */
fsub
fload 7 /* omx */
fadd
fload 4 /* y0 */
fload 2 /* pdy */
fsub
fload 8 /* omy */
fadd
fload 3 /* x0 */
fload 7 /* omx */
fadd
fload 4 /* y0 */
fload 8 /* omy */
fadd
10: .line 481
fload 5 /* dx */
fload 3 /* x0 */
fadd
fload 9 /* mx */
fadd
fload 6 /* dy */
fload 4 /* y0 */
fadd
fload 10 /* my */
fadd
fload 3 /* x0 */
fload 9 /* mx */
fadd
fload 4 /* y0 */
fload 10 /* my */
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.miter:[F
11: .line 480
invokestatic com.sun.marlin.Stroker.computeMiter:(FFFFFFFF[F)V
12: .line 483
aload 0 /* this */
getfield com.sun.marlin.Stroker.miter:[F
iconst_0
faload
fstore 12 /* miterX */
start local 12 // float miterX
13: .line 484
aload 0 /* this */
getfield com.sun.marlin.Stroker.miter:[F
iconst_1
faload
fstore 13 /* miterY */
start local 13 // float miterY
14: .line 485
fload 12 /* miterX */
fload 3 /* x0 */
fsub
fload 12 /* miterX */
fload 3 /* x0 */
fsub
fmul
fload 13 /* miterY */
fload 4 /* y0 */
fsub
fload 13 /* miterY */
fload 4 /* y0 */
fsub
fmul
fadd
fstore 14 /* lenSq */
start local 14 // float lenSq
15: .line 492
fload 14 /* lenSq */
aload 0 /* this */
getfield com.sun.marlin.Stroker.miterLimitSq:F
fcmpg
ifge 17
16: .line 493
aload 0 /* this */
fload 12 /* miterX */
fload 13 /* miterY */
iload 11 /* rev */
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FFZ)V
17: .line 495
StackMap locals: float float float
StackMap stack:
return
end local 14 // float lenSq
end local 13 // float miterY
end local 12 // float miterX
end local 11 // boolean rev
end local 10 // float my
end local 9 // float mx
end local 8 // float omy
end local 7 // float omx
end local 6 // float dy
end local 5 // float dx
end local 4 // float y0
end local 3 // float x0
end local 2 // float pdy
end local 1 // float pdx
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/marlin/Stroker;
0 18 1 pdx F
0 18 2 pdy F
0 18 3 x0 F
0 18 4 y0 F
0 18 5 dx F
0 18 6 dy F
0 18 7 omx F
0 18 8 omy F
0 18 9 mx F
0 18 10 my F
0 18 11 rev Z
13 18 12 miterX F
14 18 13 miterY F
15 18 14 lenSq F
MethodParameters:
Name Flags
pdx final
pdy final
x0 final
y0 final
dx final
dy final
omx
omy
mx
my
rev
public void moveTo(float, float);
descriptor: (FF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x0
start local 2 // float y0
0: .line 499
aload 0 /* this */
fload 1 /* x0 */
fload 2 /* y0 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cOutCode:I
invokevirtual com.sun.marlin.Stroker._moveTo:(FFI)V
1: .line 501
aload 0 /* this */
fload 1 /* x0 */
putfield com.sun.marlin.Stroker.sx0:F
2: .line 502
aload 0 /* this */
fload 2 /* y0 */
putfield com.sun.marlin.Stroker.sy0:F
3: .line 503
aload 0 /* this */
fconst_1
putfield com.sun.marlin.Stroker.sdx:F
4: .line 504
aload 0 /* this */
fconst_0
putfield com.sun.marlin.Stroker.sdy:F
5: .line 505
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.opened:Z
6: .line 506
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.capStart:Z
7: .line 508
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
ifnull 11
8: .line 509
fload 1 /* x0 */
fload 2 /* y0 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
invokestatic com.sun.marlin.Helpers.outcode:(FF[F)I
istore 3 /* outcode */
start local 3 // int outcode
9: .line 510
aload 0 /* this */
iload 3 /* outcode */
putfield com.sun.marlin.Stroker.cOutCode:I
10: .line 511
aload 0 /* this */
iload 3 /* outcode */
putfield com.sun.marlin.Stroker.sOutCode:I
end local 3 // int outcode
11: .line 513
StackMap locals:
StackMap stack:
return
end local 2 // float y0
end local 1 // float x0
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/marlin/Stroker;
0 12 1 x0 F
0 12 2 y0 F
9 11 3 outcode I
MethodParameters:
Name Flags
x0 final
y0 final
private void _moveTo(float, float, int);
descriptor: (FFI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=4
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x0
start local 2 // float y0
start local 3 // int outcode
0: .line 518
aload 0 /* this */
getfield com.sun.marlin.Stroker.prev:I
ifne 4
1: .line 519
aload 0 /* this */
fload 1 /* x0 */
putfield com.sun.marlin.Stroker.cx0:F
2: .line 520
aload 0 /* this */
fload 2 /* y0 */
putfield com.sun.marlin.Stroker.cy0:F
3: .line 521
goto 11
4: .line 522
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.Stroker.prev:I
iconst_1
if_icmpne 6
5: .line 523
aload 0 /* this */
iload 3 /* outcode */
invokevirtual com.sun.marlin.Stroker.finish:(I)V
6: .line 525
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.prev:I
7: .line 526
aload 0 /* this */
fload 1 /* x0 */
putfield com.sun.marlin.Stroker.cx0:F
8: .line 527
aload 0 /* this */
fload 2 /* y0 */
putfield com.sun.marlin.Stroker.cy0:F
9: .line 528
aload 0 /* this */
fconst_1
putfield com.sun.marlin.Stroker.cdx:F
10: .line 529
aload 0 /* this */
fconst_0
putfield com.sun.marlin.Stroker.cdy:F
11: .line 531
StackMap locals:
StackMap stack:
return
end local 3 // int outcode
end local 2 // float y0
end local 1 // float x0
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/marlin/Stroker;
0 12 1 x0 F
0 12 2 y0 F
0 12 3 outcode I
MethodParameters:
Name Flags
x0 final
y0 final
outcode final
public void lineTo(float, float);
descriptor: (FF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
0: .line 535
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
iconst_0
invokevirtual com.sun.marlin.Stroker.lineTo:(FFZ)V
1: .line 536
return
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
0 2 1 x1 F
0 2 2 y1 F
MethodParameters:
Name Flags
x1 final
y1 final
private void lineTo(float, float, boolean);
descriptor: (FFZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=9, args_size=4
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // boolean force
0: .line 541
aload 0 /* this */
getfield com.sun.marlin.Stroker.cOutCode:I
istore 4 /* outcode0 */
start local 4 // int outcode0
1: .line 543
iload 3 /* force */
ifne 20
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
ifnull 20
2: .line 544
fload 1 /* x1 */
fload 2 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
invokestatic com.sun.marlin.Helpers.outcode:(FF[F)I
istore 5 /* outcode1 */
start local 5 // int outcode1
3: .line 547
iload 4 /* outcode0 */
iload 5 /* outcode1 */
ior
istore 6 /* orCode */
start local 6 // int orCode
4: .line 548
iload 6 /* orCode */
ifeq 19
5: .line 549
iload 4 /* outcode0 */
iload 5 /* outcode1 */
iand
istore 7 /* sideCode */
start local 7 // int sideCode
6: .line 552
iload 7 /* sideCode */
ifne 15
7: .line 554
aload 0 /* this */
getfield com.sun.marlin.Stroker.subdivide:Z
ifeq 19
8: .line 556
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.subdivide:Z
9: .line 558
aload 0 /* this */
getfield com.sun.marlin.Stroker.curveSplitter:Lcom/sun/marlin/TransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
10: .line 559
iload 6 /* orCode */
aload 0 /* this */
11: .line 558
invokevirtual com.sun.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitLine:(FFFFILcom/sun/javafx/geom/PathConsumer2D;)Z
istore 8 /* ret */
start local 8 // boolean ret
12: .line 561
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.subdivide:Z
13: .line 562
iload 8 /* ret */
ifeq 19
14: .line 563
return
end local 8 // boolean ret
15: .line 568
StackMap locals: com.sun.marlin.Stroker float float int int int int int
StackMap stack:
aload 0 /* this */
iload 5 /* outcode1 */
putfield com.sun.marlin.Stroker.cOutCode:I
16: .line 569
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
iload 4 /* outcode0 */
invokevirtual com.sun.marlin.Stroker._moveTo:(FFI)V
17: .line 570
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.opened:Z
18: .line 571
return
end local 7 // int sideCode
19: .line 575
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 5 /* outcode1 */
putfield com.sun.marlin.Stroker.cOutCode:I
end local 6 // int orCode
end local 5 // int outcode1
20: .line 578
StackMap locals:
StackMap stack:
fload 1 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fsub
fstore 5 /* dx */
start local 5 // float dx
21: .line 579
fload 2 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fsub
fstore 6 /* dy */
start local 6 // float dy
22: .line 580
fload 5 /* dx */
fconst_0
fcmpl
ifne 24
fload 6 /* dy */
fconst_0
fcmpl
ifne 24
23: .line 581
fconst_1
fstore 5 /* dx */
24: .line 583
StackMap locals: float float
StackMap stack:
fload 5 /* dx */
fload 6 /* dy */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
25: .line 584
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_0
faload
fstore 7 /* mx */
start local 7 // float mx
26: .line 585
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_1
faload
fstore 8 /* my */
start local 8 // float my
27: .line 587
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cdx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cdy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 5 /* dx */
fload 6 /* dy */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
fload 7 /* mx */
fload 8 /* my */
iload 4 /* outcode0 */
invokevirtual com.sun.marlin.Stroker.drawJoin:(FFFFFFFFFFI)V
28: .line 589
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fload 7 /* mx */
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 8 /* my */
fadd
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
29: .line 590
aload 0 /* this */
fload 1 /* x1 */
fload 7 /* mx */
fadd
fload 2 /* y1 */
fload 8 /* my */
fadd
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
30: .line 592
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fload 7 /* mx */
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 8 /* my */
fsub
invokevirtual com.sun.marlin.Stroker.emitLineToRev:(FF)V
31: .line 593
aload 0 /* this */
fload 1 /* x1 */
fload 7 /* mx */
fsub
fload 2 /* y1 */
fload 8 /* my */
fsub
invokevirtual com.sun.marlin.Stroker.emitLineToRev:(FF)V
32: .line 595
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.prev:I
33: .line 596
aload 0 /* this */
fload 1 /* x1 */
putfield com.sun.marlin.Stroker.cx0:F
34: .line 597
aload 0 /* this */
fload 2 /* y1 */
putfield com.sun.marlin.Stroker.cy0:F
35: .line 598
aload 0 /* this */
fload 5 /* dx */
putfield com.sun.marlin.Stroker.cdx:F
36: .line 599
aload 0 /* this */
fload 6 /* dy */
putfield com.sun.marlin.Stroker.cdy:F
37: .line 600
aload 0 /* this */
fload 7 /* mx */
putfield com.sun.marlin.Stroker.cmx:F
38: .line 601
aload 0 /* this */
fload 8 /* my */
putfield com.sun.marlin.Stroker.cmy:F
39: .line 602
return
end local 8 // float my
end local 7 // float mx
end local 6 // float dy
end local 5 // float dx
end local 4 // int outcode0
end local 3 // boolean force
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lcom/sun/marlin/Stroker;
0 40 1 x1 F
0 40 2 y1 F
0 40 3 force Z
1 40 4 outcode0 I
3 20 5 outcode1 I
4 20 6 orCode I
6 19 7 sideCode I
12 15 8 ret Z
21 40 5 dx F
22 40 6 dy F
26 40 7 mx F
27 40 8 my F
MethodParameters:
Name Flags
x1 final
y1 final
force final
public void closePath();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=12, locals=1, args_size=1
start local 0 // com.sun.marlin.Stroker this
0: .line 607
aload 0 /* this */
getfield com.sun.marlin.Stroker.prev:I
iconst_1
if_icmpeq 14
aload 0 /* this */
getfield com.sun.marlin.Stroker.opened:Z
ifne 14
1: .line 608
aload 0 /* this */
getfield com.sun.marlin.Stroker.prev:I
iconst_2
if_icmpne 3
2: .line 609
return
3: .line 611
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
fsub
invokevirtual com.sun.marlin.Stroker.emitMoveTo:(FF)V
4: .line 613
aload 0 /* this */
fconst_1
putfield com.sun.marlin.Stroker.sdx:F
5: .line 614
aload 0 /* this */
fconst_0
putfield com.sun.marlin.Stroker.sdy:F
6: .line 615
aload 0 /* this */
fconst_1
putfield com.sun.marlin.Stroker.cdx:F
7: .line 616
aload 0 /* this */
fconst_0
putfield com.sun.marlin.Stroker.cdy:F
8: .line 618
aload 0 /* this */
fconst_0
putfield com.sun.marlin.Stroker.smx:F
9: .line 619
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
fneg
putfield com.sun.marlin.Stroker.smy:F
10: .line 620
aload 0 /* this */
fconst_0
putfield com.sun.marlin.Stroker.cmx:F
11: .line 621
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
fneg
putfield com.sun.marlin.Stroker.cmy:F
12: .line 623
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cOutCode:I
invokevirtual com.sun.marlin.Stroker.finish:(I)V
13: .line 624
return
14: .line 628
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.Stroker.sOutCode:I
aload 0 /* this */
getfield com.sun.marlin.Stroker.cOutCode:I
iand
ifne 23
15: .line 629
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.sx0:F
fcmpl
ifne 16
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.sy0:F
fcmpl
ifeq 17
16: .line 630
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.sx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.sy0:F
iconst_1
invokevirtual com.sun.marlin.Stroker.lineTo:(FFZ)V
17: .line 633
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cdx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cdy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.sdx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.sdy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.sOutCode:I
invokevirtual com.sun.marlin.Stroker.drawJoin:(FFFFFFFFFFI)V
18: .line 635
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.sx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.sy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
fadd
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
19: .line 637
aload 0 /* this */
getfield com.sun.marlin.Stroker.opened:Z
ifeq 22
20: .line 638
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.sx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.sy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
fsub
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
21: .line 639
goto 23
22: .line 640
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.sx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.sy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
fsub
invokevirtual com.sun.marlin.Stroker.emitMoveTo:(FF)V
23: .line 644
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.Stroker.emitReverse:()V
24: .line 646
aload 0 /* this */
iconst_2
putfield com.sun.marlin.Stroker.prev:I
25: .line 648
aload 0 /* this */
getfield com.sun.marlin.Stroker.opened:Z
ifeq 28
26: .line 650
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.opened:Z
27: .line 651
goto 29
28: .line 652
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.Stroker.emitClose:()V
29: .line 654
StackMap locals:
StackMap stack:
return
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lcom/sun/marlin/Stroker;
private void emitReverse();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.marlin.Stroker this
0: .line 657
aload 0 /* this */
getfield com.sun.marlin.Stroker.reverse:Lcom/sun/marlin/Helpers$PolyStack;
aload 0 /* this */
getfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
invokevirtual com.sun.marlin.Helpers$PolyStack.popAll:(Lcom/sun/javafx/geom/PathConsumer2D;)V
1: .line 658
return
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
public void pathDone();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.marlin.Stroker this
0: .line 662
aload 0 /* this */
getfield com.sun.marlin.Stroker.prev:I
iconst_1
if_icmpne 2
1: .line 663
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cOutCode:I
invokevirtual com.sun.marlin.Stroker.finish:(I)V
2: .line 666
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
invokeinterface com.sun.javafx.geom.PathConsumer2D.pathDone:()V
3: .line 670
aload 0 /* this */
iconst_2
putfield com.sun.marlin.Stroker.prev:I
4: .line 673
aload 0 /* this */
invokevirtual com.sun.marlin.Stroker.dispose:()V
5: .line 674
return
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/marlin/Stroker;
private void finish(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 // com.sun.marlin.Stroker this
start local 1 // int outcode
0: .line 681
aload 0 /* this */
getfield com.sun.marlin.Stroker.rdrCtx:Lcom/sun/marlin/RendererContext;
getfield com.sun.marlin.RendererContext.closedPath:Z
ifne 19
1: .line 682
iload 1 /* outcode */
ifne 8
2: .line 684
aload 0 /* this */
getfield com.sun.marlin.Stroker.capStyle:I
iconst_1
if_icmpne 5
3: .line 685
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
invokevirtual com.sun.marlin.Stroker.drawRoundCap:(FFFF)V
4: .line 686
goto 8
StackMap locals:
StackMap stack:
5: aload 0 /* this */
getfield com.sun.marlin.Stroker.capStyle:I
iconst_2
if_icmpne 8
6: .line 687
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
fadd
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
7: .line 688
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
fsub
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
8: .line 691
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.Stroker.emitReverse:()V
9: .line 693
aload 0 /* this */
getfield com.sun.marlin.Stroker.capStart:Z
ifne 20
10: .line 694
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.capStart:Z
11: .line 696
aload 0 /* this */
getfield com.sun.marlin.Stroker.sOutCode:I
ifne 20
12: .line 698
aload 0 /* this */
getfield com.sun.marlin.Stroker.capStyle:I
iconst_1
if_icmpne 15
13: .line 699
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.sx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.sy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
fneg
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
fneg
invokevirtual com.sun.marlin.Stroker.drawRoundCap:(FFFF)V
14: .line 700
goto 20
StackMap locals:
StackMap stack:
15: aload 0 /* this */
getfield com.sun.marlin.Stroker.capStyle:I
iconst_2
if_icmpne 20
16: .line 701
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.sx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.sy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
fsub
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
17: .line 702
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.sx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
fadd
aload 0 /* this */
getfield com.sun.marlin.Stroker.sy0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.smx:F
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.smy:F
fadd
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
18: .line 706
goto 20
19: .line 707
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.Stroker.emitReverse:()V
20: .line 709
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.Stroker.emitClose:()V
21: .line 710
return
end local 1 // int outcode
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/marlin/Stroker;
0 22 1 outcode I
MethodParameters:
Name Flags
outcode final
private void emitMoveTo(float, float);
descriptor: (FF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x0
start local 2 // float y0
0: .line 713
aload 0 /* this */
getfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
fload 1 /* x0 */
fload 2 /* y0 */
invokeinterface com.sun.javafx.geom.PathConsumer2D.moveTo:(FF)V
1: .line 714
return
end local 2 // float y0
end local 1 // float x0
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
0 2 1 x0 F
0 2 2 y0 F
MethodParameters:
Name Flags
x0 final
y0 final
private void emitLineTo(float, float);
descriptor: (FF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
0: .line 717
aload 0 /* this */
getfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
fload 1 /* x1 */
fload 2 /* y1 */
invokeinterface com.sun.javafx.geom.PathConsumer2D.lineTo:(FF)V
1: .line 718
return
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
0 2 1 x1 F
0 2 2 y1 F
MethodParameters:
Name Flags
x1 final
y1 final
private void emitLineToRev(float, float);
descriptor: (FF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
0: .line 721
aload 0 /* this */
getfield com.sun.marlin.Stroker.reverse:Lcom/sun/marlin/Helpers$PolyStack;
fload 1 /* x1 */
fload 2 /* y1 */
invokevirtual com.sun.marlin.Helpers$PolyStack.pushLine:(FF)V
1: .line 722
return
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
0 2 1 x1 F
0 2 2 y1 F
MethodParameters:
Name Flags
x1 final
y1 final
private void emitLineTo(float, float, boolean);
descriptor: (FFZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // boolean rev
0: .line 727
iload 3 /* rev */
ifeq 3
1: .line 728
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
invokevirtual com.sun.marlin.Stroker.emitLineToRev:(FF)V
2: .line 729
goto 4
3: .line 730
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
4: .line 732
StackMap locals:
StackMap stack:
return
end local 3 // boolean rev
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/marlin/Stroker;
0 5 1 x1 F
0 5 2 y1 F
0 5 3 rev Z
MethodParameters:
Name Flags
x1 final
y1 final
rev final
private void emitQuadTo(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=5
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
0: .line 737
aload 0 /* this */
getfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
invokeinterface com.sun.javafx.geom.PathConsumer2D.quadTo:(FFFF)V
1: .line 738
return
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
0 2 1 x1 F
0 2 2 y1 F
0 2 3 x2 F
0 2 4 y2 F
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
private void emitQuadToRev(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=5
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x0
start local 2 // float y0
start local 3 // float x1
start local 4 // float y1
0: .line 743
aload 0 /* this */
getfield com.sun.marlin.Stroker.reverse:Lcom/sun/marlin/Helpers$PolyStack;
fload 1 /* x0 */
fload 2 /* y0 */
fload 3 /* x1 */
fload 4 /* y1 */
invokevirtual com.sun.marlin.Helpers$PolyStack.pushQuad:(FFFF)V
1: .line 744
return
end local 4 // float y1
end local 3 // float x1
end local 2 // float y0
end local 1 // float x0
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
0 2 1 x0 F
0 2 2 y0 F
0 2 3 x1 F
0 2 4 y1 F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
private void emitCurveTo(float, float, float, float, float, float);
descriptor: (FFFFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=7
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // float x3
start local 6 // float y3
0: .line 750
aload 0 /* this */
getfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
fload 5 /* x3 */
fload 6 /* y3 */
invokeinterface com.sun.javafx.geom.PathConsumer2D.curveTo:(FFFFFF)V
1: .line 751
return
end local 6 // float y3
end local 5 // float x3
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
0 2 1 x1 F
0 2 2 y1 F
0 2 3 x2 F
0 2 4 y2 F
0 2 5 x3 F
0 2 6 y3 F
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
private void emitCurveToRev(float, float, float, float, float, float);
descriptor: (FFFFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=7
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x0
start local 2 // float y0
start local 3 // float x1
start local 4 // float y1
start local 5 // float x2
start local 6 // float y2
0: .line 757
aload 0 /* this */
getfield com.sun.marlin.Stroker.reverse:Lcom/sun/marlin/Helpers$PolyStack;
fload 1 /* x0 */
fload 2 /* y0 */
fload 3 /* x1 */
fload 4 /* y1 */
fload 5 /* x2 */
fload 6 /* y2 */
invokevirtual com.sun.marlin.Helpers$PolyStack.pushCubic:(FFFFFF)V
1: .line 758
return
end local 6 // float y2
end local 5 // float x2
end local 4 // float y1
end local 3 // float x1
end local 2 // float y0
end local 1 // float x0
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
0 2 1 x0 F
0 2 2 y0 F
0 2 3 x1 F
0 2 4 y1 F
0 2 5 x2 F
0 2 6 y2 F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
private void emitCurveTo(float, float, float, float, float, float, float, float, boolean);
descriptor: (FFFFFFFFZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=10
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x0
start local 2 // float y0
start local 3 // float x1
start local 4 // float y1
start local 5 // float x2
start local 6 // float y2
start local 7 // float x3
start local 8 // float y3
start local 9 // boolean rev
0: .line 765
iload 9 /* rev */
ifeq 3
1: .line 766
aload 0 /* this */
getfield com.sun.marlin.Stroker.reverse:Lcom/sun/marlin/Helpers$PolyStack;
fload 1 /* x0 */
fload 2 /* y0 */
fload 3 /* x1 */
fload 4 /* y1 */
fload 5 /* x2 */
fload 6 /* y2 */
invokevirtual com.sun.marlin.Helpers$PolyStack.pushCubic:(FFFFFF)V
2: .line 767
goto 4
3: .line 768
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
fload 3 /* x1 */
fload 4 /* y1 */
fload 5 /* x2 */
fload 6 /* y2 */
fload 7 /* x3 */
fload 8 /* y3 */
invokeinterface com.sun.javafx.geom.PathConsumer2D.curveTo:(FFFFFF)V
4: .line 770
StackMap locals:
StackMap stack:
return
end local 9 // boolean rev
end local 8 // float y3
end local 7 // float x3
end local 6 // float y2
end local 5 // float x2
end local 4 // float y1
end local 3 // float x1
end local 2 // float y0
end local 1 // float x0
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/marlin/Stroker;
0 5 1 x0 F
0 5 2 y0 F
0 5 3 x1 F
0 5 4 y1 F
0 5 5 x2 F
0 5 6 y2 F
0 5 7 x3 F
0 5 8 y3 F
0 5 9 rev Z
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
rev final
private void emitClose();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.marlin.Stroker this
0: .line 773
aload 0 /* this */
getfield com.sun.marlin.Stroker.out:Lcom/sun/javafx/geom/PathConsumer2D;
invokeinterface com.sun.javafx.geom.PathConsumer2D.closePath:()V
1: .line 774
return
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/Stroker;
private void drawJoin(float, float, float, float, float, float, float, float, float, float, int);
descriptor: (FFFFFFFFFFI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=13, args_size=12
start local 0 // com.sun.marlin.Stroker this
start local 1 // float pdx
start local 2 // float pdy
start local 3 // float x0
start local 4 // float y0
start local 5 // float dx
start local 6 // float dy
start local 7 // float omx
start local 8 // float omy
start local 9 // float mx
start local 10 // float my
start local 11 // int outcode
0: .line 783
aload 0 /* this */
getfield com.sun.marlin.Stroker.prev:I
iconst_1
if_icmpeq 8
1: .line 784
aload 0 /* this */
fload 3 /* x0 */
fload 9 /* mx */
fadd
fload 4 /* y0 */
fload 10 /* my */
fadd
invokevirtual com.sun.marlin.Stroker.emitMoveTo:(FF)V
2: .line 785
aload 0 /* this */
getfield com.sun.marlin.Stroker.opened:Z
ifne 18
3: .line 786
aload 0 /* this */
fload 5 /* dx */
putfield com.sun.marlin.Stroker.sdx:F
4: .line 787
aload 0 /* this */
fload 6 /* dy */
putfield com.sun.marlin.Stroker.sdy:F
5: .line 788
aload 0 /* this */
fload 9 /* mx */
putfield com.sun.marlin.Stroker.smx:F
6: .line 789
aload 0 /* this */
fload 10 /* my */
putfield com.sun.marlin.Stroker.smy:F
7: .line 791
goto 18
8: .line 792
StackMap locals:
StackMap stack:
fload 1 /* pdx */
fload 2 /* pdy */
fload 5 /* dx */
fload 6 /* dy */
invokestatic com.sun.marlin.Stroker.isCW:(FFFF)Z
istore 12 /* cw */
start local 12 // boolean cw
9: .line 793
iload 11 /* outcode */
ifne 15
10: .line 794
aload 0 /* this */
getfield com.sun.marlin.Stroker.joinStyle:I
ifne 13
11: .line 795
aload 0 /* this */
fload 1 /* pdx */
fload 2 /* pdy */
fload 3 /* x0 */
fload 4 /* y0 */
fload 5 /* dx */
fload 6 /* dy */
fload 7 /* omx */
fload 8 /* omy */
fload 9 /* mx */
fload 10 /* my */
iload 12 /* cw */
invokevirtual com.sun.marlin.Stroker.drawMiter:(FFFFFFFFFFZ)V
12: .line 796
goto 15
StackMap locals: int
StackMap stack:
13: aload 0 /* this */
getfield com.sun.marlin.Stroker.joinStyle:I
iconst_1
if_icmpne 15
14: .line 797
aload 0 /* this */
fload 3 /* x0 */
fload 4 /* y0 */
fload 7 /* omx */
fload 8 /* omy */
fload 9 /* mx */
fload 10 /* my */
iload 12 /* cw */
invokevirtual com.sun.marlin.Stroker.mayDrawRoundJoin:(FFFFFFZ)V
15: .line 800
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 3 /* x0 */
fload 4 /* y0 */
iload 12 /* cw */
ifeq 16
iconst_0
goto 17
StackMap locals: com.sun.marlin.Stroker float float float float float float float float float float int int
StackMap stack: com.sun.marlin.Stroker float float
16: iconst_1
StackMap locals: com.sun.marlin.Stroker float float float float float float float float float float int int
StackMap stack: com.sun.marlin.Stroker float float int
17: invokevirtual com.sun.marlin.Stroker.emitLineTo:(FFZ)V
end local 12 // boolean cw
18: .line 802
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.prev:I
19: .line 803
return
end local 11 // int outcode
end local 10 // float my
end local 9 // float mx
end local 8 // float omy
end local 7 // float omx
end local 6 // float dy
end local 5 // float dx
end local 4 // float y0
end local 3 // float x0
end local 2 // float pdy
end local 1 // float pdx
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/sun/marlin/Stroker;
0 20 1 pdx F
0 20 2 pdy F
0 20 3 x0 F
0 20 4 y0 F
0 20 5 dx F
0 20 6 dy F
0 20 7 omx F
0 20 8 omy F
0 20 9 mx F
0 20 10 my F
0 20 11 outcode I
9 18 12 cw Z
MethodParameters:
Name Flags
pdx
pdy
x0
y0
dx
dy
omx
omy
mx
my
outcode final
private static boolean within(float, float, float, float, float);
descriptor: (FFFFF)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=5
start local 0 // float x1
start local 1 // float y1
start local 2 // float x2
start local 3 // float y2
start local 4 // float err
0: .line 809
getstatic com.sun.marlin.Stroker.$assertionsDisabled:Z
ifne 1
fload 4 /* err */
fconst_0
fcmpl
ifgt 1
new java.lang.AssertionError
dup
ldc ""
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: .line 812
StackMap locals:
StackMap stack:
fload 0 /* x1 */
fload 2 /* x2 */
fload 4 /* err */
invokestatic com.sun.marlin.Helpers.within:(FFF)Z
ifeq 4
2: .line 813
fload 1 /* y1 */
fload 3 /* y2 */
fload 4 /* err */
invokestatic com.sun.marlin.Helpers.within:(FFF)Z
ifeq 4
3: .line 812
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 4 // float err
end local 3 // float y2
end local 2 // float x2
end local 1 // float y1
end local 0 // float x1
LocalVariableTable:
Start End Slot Name Signature
0 5 0 x1 F
0 5 1 y1 F
0 5 2 x2 F
0 5 3 y2 F
0 5 4 err F
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
err final
private void getLineOffsets(float, float, float, float, float[], float[]);
descriptor: (FFFF[F[F)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=7
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // float[] left
start local 6 // float[] right
0: .line 820
fload 3 /* x2 */
fload 1 /* x1 */
fsub
fload 4 /* y2 */
fload 2 /* y1 */
fsub
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
1: .line 821
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_0
faload
fstore 7 /* mx */
start local 7 // float mx
2: .line 822
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_1
faload
fstore 8 /* my */
start local 8 // float my
3: .line 823
aload 5 /* left */
iconst_0
fload 1 /* x1 */
fload 7 /* mx */
fadd
fastore
4: .line 824
aload 5 /* left */
iconst_1
fload 2 /* y1 */
fload 8 /* my */
fadd
fastore
5: .line 825
aload 5 /* left */
iconst_2
fload 3 /* x2 */
fload 7 /* mx */
fadd
fastore
6: .line 826
aload 5 /* left */
iconst_3
fload 4 /* y2 */
fload 8 /* my */
fadd
fastore
7: .line 828
aload 6 /* right */
iconst_0
fload 1 /* x1 */
fload 7 /* mx */
fsub
fastore
8: .line 829
aload 6 /* right */
iconst_1
fload 2 /* y1 */
fload 8 /* my */
fsub
fastore
9: .line 830
aload 6 /* right */
iconst_2
fload 3 /* x2 */
fload 7 /* mx */
fsub
fastore
10: .line 831
aload 6 /* right */
iconst_3
fload 4 /* y2 */
fload 8 /* my */
fsub
fastore
11: .line 832
return
end local 8 // float my
end local 7 // float mx
end local 6 // float[] right
end local 5 // float[] left
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/marlin/Stroker;
0 12 1 x1 F
0 12 2 y1 F
0 12 3 x2 F
0 12 4 y2 F
0 12 5 left [F
0 12 6 right [F
2 12 7 mx F
3 12 8 my F
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
left final
right final
private int computeOffsetCubic(float[], int, float[], float[]);
descriptor: ([FI[F[F)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=41, args_size=5
start local 0 // com.sun.marlin.Stroker this
start local 1 // float[] pts
start local 2 // int off
start local 3 // float[] leftOff
start local 4 // float[] rightOff
0: .line 845
aload 1 /* pts */
iload 2 /* off */
faload
fstore 5 /* x1 */
start local 5 // float x1
1: aload 1 /* pts */
iload 2 /* off */
iconst_1
iadd
faload
fstore 6 /* y1 */
start local 6 // float y1
2: .line 846
aload 1 /* pts */
iload 2 /* off */
iconst_2
iadd
faload
fstore 7 /* x2 */
start local 7 // float x2
3: aload 1 /* pts */
iload 2 /* off */
iconst_3
iadd
faload
fstore 8 /* y2 */
start local 8 // float y2
4: .line 847
aload 1 /* pts */
iload 2 /* off */
iconst_4
iadd
faload
fstore 9 /* x3 */
start local 9 // float x3
5: aload 1 /* pts */
iload 2 /* off */
iconst_5
iadd
faload
fstore 10 /* y3 */
start local 10 // float y3
6: .line 848
aload 1 /* pts */
iload 2 /* off */
bipush 6
iadd
faload
fstore 11 /* x4 */
start local 11 // float x4
7: aload 1 /* pts */
iload 2 /* off */
bipush 7
iadd
faload
fstore 12 /* y4 */
start local 12 // float y4
8: .line 850
fload 11 /* x4 */
fload 9 /* x3 */
fsub
fstore 13 /* dx4 */
start local 13 // float dx4
9: .line 851
fload 12 /* y4 */
fload 10 /* y3 */
fsub
fstore 14 /* dy4 */
start local 14 // float dy4
10: .line 852
fload 7 /* x2 */
fload 5 /* x1 */
fsub
fstore 15 /* dx1 */
start local 15 // float dx1
11: .line 853
fload 8 /* y2 */
fload 6 /* y1 */
fsub
fstore 16 /* dy1 */
start local 16 // float dy1
12: .line 857
fload 5 /* x1 */
fload 6 /* y1 */
fload 7 /* x2 */
fload 8 /* y2 */
ldc 6.0
fload 8 /* y2 */
invokestatic java.lang.Math.ulp:(F)F
fmul
invokestatic com.sun.marlin.Stroker.within:(FFFFF)Z
istore 17 /* p1eqp2 */
start local 17 // boolean p1eqp2
13: .line 858
fload 9 /* x3 */
fload 10 /* y3 */
fload 11 /* x4 */
fload 12 /* y4 */
ldc 6.0
fload 12 /* y4 */
invokestatic java.lang.Math.ulp:(F)F
fmul
invokestatic com.sun.marlin.Stroker.within:(FFFFF)Z
istore 18 /* p3eqp4 */
start local 18 // boolean p3eqp4
14: .line 860
iload 17 /* p1eqp2 */
ifeq 17
iload 18 /* p3eqp4 */
ifeq 17
15: .line 861
aload 0 /* this */
fload 5 /* x1 */
fload 6 /* y1 */
fload 11 /* x4 */
fload 12 /* y4 */
aload 3 /* leftOff */
aload 4 /* rightOff */
invokevirtual com.sun.marlin.Stroker.getLineOffsets:(FFFF[F[F)V
16: .line 862
iconst_4
ireturn
17: .line 863
StackMap locals: com.sun.marlin.Stroker float[] int float[] float[] float float float float float float float float float float float float int int
StackMap stack:
iload 17 /* p1eqp2 */
ifeq 21
18: .line 864
fload 9 /* x3 */
fload 5 /* x1 */
fsub
fstore 15 /* dx1 */
19: .line 865
fload 10 /* y3 */
fload 6 /* y1 */
fsub
fstore 16 /* dy1 */
20: .line 866
goto 24
StackMap locals:
StackMap stack:
21: iload 18 /* p3eqp4 */
ifeq 24
22: .line 867
fload 11 /* x4 */
fload 7 /* x2 */
fsub
fstore 13 /* dx4 */
23: .line 868
fload 12 /* y4 */
fload 8 /* y2 */
fsub
fstore 14 /* dy4 */
24: .line 872
StackMap locals:
StackMap stack:
fload 15 /* dx1 */
fload 13 /* dx4 */
fmul
fload 16 /* dy1 */
fload 14 /* dy4 */
fmul
fadd
fstore 19 /* dotsq */
start local 19 // float dotsq
25: .line 873
fload 19 /* dotsq */
fload 19 /* dotsq */
fmul
fstore 19 /* dotsq */
26: .line 874
fload 15 /* dx1 */
fload 15 /* dx1 */
fmul
fload 16 /* dy1 */
fload 16 /* dy1 */
fmul
fadd
fstore 20 /* l1sq */
start local 20 // float l1sq
27: fload 13 /* dx4 */
fload 13 /* dx4 */
fmul
fload 14 /* dy4 */
fload 14 /* dy4 */
fmul
fadd
fstore 21 /* l4sq */
start local 21 // float l4sq
28: .line 876
fload 19 /* dotsq */
fload 20 /* l1sq */
fload 21 /* l4sq */
fmul
ldc 4.0
fload 19 /* dotsq */
invokestatic java.lang.Math.ulp:(F)F
fmul
invokestatic com.sun.marlin.Helpers.within:(FFF)Z
ifeq 31
29: .line 877
aload 0 /* this */
fload 5 /* x1 */
fload 6 /* y1 */
fload 11 /* x4 */
fload 12 /* y4 */
aload 3 /* leftOff */
aload 4 /* rightOff */
invokevirtual com.sun.marlin.Stroker.getLineOffsets:(FFFF[F[F)V
30: .line 878
iconst_4
ireturn
31: .line 928
StackMap locals: float float float
StackMap stack:
fload 5 /* x1 */
ldc 3.0
fload 7 /* x2 */
fload 9 /* x3 */
fadd
fmul
fadd
fload 11 /* x4 */
fadd
ldc 8.0
fdiv
fstore 22 /* x */
start local 22 // float x
32: .line 929
fload 6 /* y1 */
ldc 3.0
fload 8 /* y2 */
fload 10 /* y3 */
fadd
fmul
fadd
fload 12 /* y4 */
fadd
ldc 8.0
fdiv
fstore 23 /* y */
start local 23 // float y
33: .line 932
fload 9 /* x3 */
fload 11 /* x4 */
fadd
fload 5 /* x1 */
fsub
fload 7 /* x2 */
fsub
fstore 24 /* dxm */
start local 24 // float dxm
34: fload 10 /* y3 */
fload 12 /* y4 */
fadd
fload 6 /* y1 */
fsub
fload 8 /* y2 */
fsub
fstore 25 /* dym */
start local 25 // float dym
35: .line 937
fload 15 /* dx1 */
fload 16 /* dy1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
36: .line 938
fload 24 /* dxm */
fload 25 /* dym */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
37: .line 939
fload 13 /* dx4 */
fload 14 /* dy4 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset2:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
38: .line 940
fload 5 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_0
faload
fadd
fstore 26 /* x1p */
start local 26 // float x1p
39: .line 941
fload 6 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_1
faload
fadd
fstore 27 /* y1p */
start local 27 // float y1p
40: .line 942
fload 22 /* x */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
iconst_0
faload
fadd
fstore 28 /* xi */
start local 28 // float xi
41: .line 943
fload 23 /* y */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
iconst_1
faload
fadd
fstore 29 /* yi */
start local 29 // float yi
42: .line 944
fload 11 /* x4 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset2:[F
iconst_0
faload
fadd
fstore 30 /* x4p */
start local 30 // float x4p
43: .line 945
fload 12 /* y4 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset2:[F
iconst_1
faload
fadd
fstore 31 /* y4p */
start local 31 // float y4p
44: .line 947
ldc 4.0
ldc 3.0
fload 15 /* dx1 */
fload 14 /* dy4 */
fmul
fload 16 /* dy1 */
fload 13 /* dx4 */
fmul
fsub
fmul
fdiv
fstore 32 /* invdet43 */
start local 32 // float invdet43
45: .line 949
fconst_2
fload 28 /* xi */
fmul
fload 26 /* x1p */
fsub
fload 30 /* x4p */
fsub
fstore 33 /* two_pi_m_p1_m_p4x */
start local 33 // float two_pi_m_p1_m_p4x
46: .line 950
fconst_2
fload 29 /* yi */
fmul
fload 27 /* y1p */
fsub
fload 31 /* y4p */
fsub
fstore 34 /* two_pi_m_p1_m_p4y */
start local 34 // float two_pi_m_p1_m_p4y
47: .line 951
fload 32 /* invdet43 */
fload 14 /* dy4 */
fload 33 /* two_pi_m_p1_m_p4x */
fmul
fload 13 /* dx4 */
fload 34 /* two_pi_m_p1_m_p4y */
fmul
fsub
fmul
fstore 35 /* c1 */
start local 35 // float c1
48: .line 952
fload 32 /* invdet43 */
fload 15 /* dx1 */
fload 34 /* two_pi_m_p1_m_p4y */
fmul
fload 16 /* dy1 */
fload 33 /* two_pi_m_p1_m_p4x */
fmul
fsub
fmul
fstore 36 /* c2 */
start local 36 // float c2
49: .line 955
fload 26 /* x1p */
fload 35 /* c1 */
fload 15 /* dx1 */
fmul
fadd
fstore 37 /* x2p */
start local 37 // float x2p
50: .line 956
fload 27 /* y1p */
fload 35 /* c1 */
fload 16 /* dy1 */
fmul
fadd
fstore 38 /* y2p */
start local 38 // float y2p
51: .line 957
fload 30 /* x4p */
fload 36 /* c2 */
fload 13 /* dx4 */
fmul
fadd
fstore 39 /* x3p */
start local 39 // float x3p
52: .line 958
fload 31 /* y4p */
fload 36 /* c2 */
fload 14 /* dy4 */
fmul
fadd
fstore 40 /* y3p */
start local 40 // float y3p
53: .line 960
aload 3 /* leftOff */
iconst_0
fload 26 /* x1p */
fastore
aload 3 /* leftOff */
iconst_1
fload 27 /* y1p */
fastore
54: .line 961
aload 3 /* leftOff */
iconst_2
fload 37 /* x2p */
fastore
aload 3 /* leftOff */
iconst_3
fload 38 /* y2p */
fastore
55: .line 962
aload 3 /* leftOff */
iconst_4
fload 39 /* x3p */
fastore
aload 3 /* leftOff */
iconst_5
fload 40 /* y3p */
fastore
56: .line 963
aload 3 /* leftOff */
bipush 6
fload 30 /* x4p */
fastore
aload 3 /* leftOff */
bipush 7
fload 31 /* y4p */
fastore
57: .line 965
fload 5 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_0
faload
fsub
fstore 26 /* x1p */
fload 6 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_1
faload
fsub
fstore 27 /* y1p */
58: .line 966
fload 28 /* xi */
fconst_2
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
iconst_0
faload
fmul
fsub
fstore 28 /* xi */
fload 29 /* yi */
fconst_2
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
iconst_1
faload
fmul
fsub
fstore 29 /* yi */
59: .line 967
fload 11 /* x4 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset2:[F
iconst_0
faload
fsub
fstore 30 /* x4p */
fload 12 /* y4 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset2:[F
iconst_1
faload
fsub
fstore 31 /* y4p */
60: .line 969
fconst_2
fload 28 /* xi */
fmul
fload 26 /* x1p */
fsub
fload 30 /* x4p */
fsub
fstore 33 /* two_pi_m_p1_m_p4x */
61: .line 970
fconst_2
fload 29 /* yi */
fmul
fload 27 /* y1p */
fsub
fload 31 /* y4p */
fsub
fstore 34 /* two_pi_m_p1_m_p4y */
62: .line 971
fload 32 /* invdet43 */
fload 14 /* dy4 */
fload 33 /* two_pi_m_p1_m_p4x */
fmul
fload 13 /* dx4 */
fload 34 /* two_pi_m_p1_m_p4y */
fmul
fsub
fmul
fstore 35 /* c1 */
63: .line 972
fload 32 /* invdet43 */
fload 15 /* dx1 */
fload 34 /* two_pi_m_p1_m_p4y */
fmul
fload 16 /* dy1 */
fload 33 /* two_pi_m_p1_m_p4x */
fmul
fsub
fmul
fstore 36 /* c2 */
64: .line 974
fload 26 /* x1p */
fload 35 /* c1 */
fload 15 /* dx1 */
fmul
fadd
fstore 37 /* x2p */
65: .line 975
fload 27 /* y1p */
fload 35 /* c1 */
fload 16 /* dy1 */
fmul
fadd
fstore 38 /* y2p */
66: .line 976
fload 30 /* x4p */
fload 36 /* c2 */
fload 13 /* dx4 */
fmul
fadd
fstore 39 /* x3p */
67: .line 977
fload 31 /* y4p */
fload 36 /* c2 */
fload 14 /* dy4 */
fmul
fadd
fstore 40 /* y3p */
68: .line 979
aload 4 /* rightOff */
iconst_0
fload 26 /* x1p */
fastore
aload 4 /* rightOff */
iconst_1
fload 27 /* y1p */
fastore
69: .line 980
aload 4 /* rightOff */
iconst_2
fload 37 /* x2p */
fastore
aload 4 /* rightOff */
iconst_3
fload 38 /* y2p */
fastore
70: .line 981
aload 4 /* rightOff */
iconst_4
fload 39 /* x3p */
fastore
aload 4 /* rightOff */
iconst_5
fload 40 /* y3p */
fastore
71: .line 982
aload 4 /* rightOff */
bipush 6
fload 30 /* x4p */
fastore
aload 4 /* rightOff */
bipush 7
fload 31 /* y4p */
fastore
72: .line 983
bipush 8
ireturn
end local 40 // float y3p
end local 39 // float x3p
end local 38 // float y2p
end local 37 // float x2p
end local 36 // float c2
end local 35 // float c1
end local 34 // float two_pi_m_p1_m_p4y
end local 33 // float two_pi_m_p1_m_p4x
end local 32 // float invdet43
end local 31 // float y4p
end local 30 // float x4p
end local 29 // float yi
end local 28 // float xi
end local 27 // float y1p
end local 26 // float x1p
end local 25 // float dym
end local 24 // float dxm
end local 23 // float y
end local 22 // float x
end local 21 // float l4sq
end local 20 // float l1sq
end local 19 // float dotsq
end local 18 // boolean p3eqp4
end local 17 // boolean p1eqp2
end local 16 // float dy1
end local 15 // float dx1
end local 14 // float dy4
end local 13 // float dx4
end local 12 // float y4
end local 11 // float x4
end local 10 // float y3
end local 9 // float x3
end local 8 // float y2
end local 7 // float x2
end local 6 // float y1
end local 5 // float x1
end local 4 // float[] rightOff
end local 3 // float[] leftOff
end local 2 // int off
end local 1 // float[] pts
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 73 0 this Lcom/sun/marlin/Stroker;
0 73 1 pts [F
0 73 2 off I
0 73 3 leftOff [F
0 73 4 rightOff [F
1 73 5 x1 F
2 73 6 y1 F
3 73 7 x2 F
4 73 8 y2 F
5 73 9 x3 F
6 73 10 y3 F
7 73 11 x4 F
8 73 12 y4 F
9 73 13 dx4 F
10 73 14 dy4 F
11 73 15 dx1 F
12 73 16 dy1 F
13 73 17 p1eqp2 Z
14 73 18 p3eqp4 Z
25 73 19 dotsq F
27 73 20 l1sq F
28 73 21 l4sq F
32 73 22 x F
33 73 23 y F
34 73 24 dxm F
35 73 25 dym F
39 73 26 x1p F
40 73 27 y1p F
41 73 28 xi F
42 73 29 yi F
43 73 30 x4p F
44 73 31 y4p F
45 73 32 invdet43 F
46 73 33 two_pi_m_p1_m_p4x F
47 73 34 two_pi_m_p1_m_p4y F
48 73 35 c1 F
49 73 36 c2 F
50 73 37 x2p F
51 73 38 y2p F
52 73 39 x3p F
53 73 40 y3p F
MethodParameters:
Name Flags
pts final
off final
leftOff final
rightOff final
private int computeOffsetQuad(float[], int, float[], float[]);
descriptor: ([FI[F[F)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=24, args_size=5
start local 0 // com.sun.marlin.Stroker this
start local 1 // float[] pts
start local 2 // int off
start local 3 // float[] leftOff
start local 4 // float[] rightOff
0: .line 993
aload 1 /* pts */
iload 2 /* off */
faload
fstore 5 /* x1 */
start local 5 // float x1
1: aload 1 /* pts */
iload 2 /* off */
iconst_1
iadd
faload
fstore 6 /* y1 */
start local 6 // float y1
2: .line 994
aload 1 /* pts */
iload 2 /* off */
iconst_2
iadd
faload
fstore 7 /* x2 */
start local 7 // float x2
3: aload 1 /* pts */
iload 2 /* off */
iconst_3
iadd
faload
fstore 8 /* y2 */
start local 8 // float y2
4: .line 995
aload 1 /* pts */
iload 2 /* off */
iconst_4
iadd
faload
fstore 9 /* x3 */
start local 9 // float x3
5: aload 1 /* pts */
iload 2 /* off */
iconst_5
iadd
faload
fstore 10 /* y3 */
start local 10 // float y3
6: .line 997
fload 9 /* x3 */
fload 7 /* x2 */
fsub
fstore 11 /* dx3 */
start local 11 // float dx3
7: .line 998
fload 10 /* y3 */
fload 8 /* y2 */
fsub
fstore 12 /* dy3 */
start local 12 // float dy3
8: .line 999
fload 7 /* x2 */
fload 5 /* x1 */
fsub
fstore 13 /* dx1 */
start local 13 // float dx1
9: .line 1000
fload 8 /* y2 */
fload 6 /* y1 */
fsub
fstore 14 /* dy1 */
start local 14 // float dy1
10: .line 1012
fload 5 /* x1 */
fload 6 /* y1 */
fload 7 /* x2 */
fload 8 /* y2 */
ldc 6.0
fload 8 /* y2 */
invokestatic java.lang.Math.ulp:(F)F
fmul
invokestatic com.sun.marlin.Stroker.within:(FFFFF)Z
istore 15 /* p1eqp2 */
start local 15 // boolean p1eqp2
11: .line 1013
fload 7 /* x2 */
fload 8 /* y2 */
fload 9 /* x3 */
fload 10 /* y3 */
ldc 6.0
fload 10 /* y3 */
invokestatic java.lang.Math.ulp:(F)F
fmul
invokestatic com.sun.marlin.Stroker.within:(FFFFF)Z
istore 16 /* p2eqp3 */
start local 16 // boolean p2eqp3
12: .line 1015
iload 15 /* p1eqp2 */
ifne 13
iload 16 /* p2eqp3 */
ifeq 15
13: .line 1016
StackMap locals: com.sun.marlin.Stroker float[] int float[] float[] float float float float float float float float float float int int
StackMap stack:
aload 0 /* this */
fload 5 /* x1 */
fload 6 /* y1 */
fload 9 /* x3 */
fload 10 /* y3 */
aload 3 /* leftOff */
aload 4 /* rightOff */
invokevirtual com.sun.marlin.Stroker.getLineOffsets:(FFFF[F[F)V
14: .line 1017
iconst_4
ireturn
15: .line 1021
StackMap locals:
StackMap stack:
fload 13 /* dx1 */
fload 11 /* dx3 */
fmul
fload 14 /* dy1 */
fload 12 /* dy3 */
fmul
fadd
fstore 17 /* dotsq */
start local 17 // float dotsq
16: .line 1022
fload 17 /* dotsq */
fload 17 /* dotsq */
fmul
fstore 17 /* dotsq */
17: .line 1023
fload 13 /* dx1 */
fload 13 /* dx1 */
fmul
fload 14 /* dy1 */
fload 14 /* dy1 */
fmul
fadd
fstore 18 /* l1sq */
start local 18 // float l1sq
18: fload 11 /* dx3 */
fload 11 /* dx3 */
fmul
fload 12 /* dy3 */
fload 12 /* dy3 */
fmul
fadd
fstore 19 /* l3sq */
start local 19 // float l3sq
19: .line 1025
fload 17 /* dotsq */
fload 18 /* l1sq */
fload 19 /* l3sq */
fmul
ldc 4.0
fload 17 /* dotsq */
invokestatic java.lang.Math.ulp:(F)F
fmul
invokestatic com.sun.marlin.Helpers.within:(FFF)Z
ifeq 22
20: .line 1026
aload 0 /* this */
fload 5 /* x1 */
fload 6 /* y1 */
fload 9 /* x3 */
fload 10 /* y3 */
aload 3 /* leftOff */
aload 4 /* rightOff */
invokevirtual com.sun.marlin.Stroker.getLineOffsets:(FFFF[F[F)V
21: .line 1027
iconst_4
ireturn
22: .line 1033
StackMap locals: float float float
StackMap stack:
fload 13 /* dx1 */
fload 14 /* dy1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
23: .line 1034
fload 11 /* dx3 */
fload 12 /* dy3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
24: .line 1036
fload 5 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_0
faload
fadd
fstore 20 /* x1p */
start local 20 // float x1p
25: .line 1037
fload 6 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_1
faload
fadd
fstore 21 /* y1p */
start local 21 // float y1p
26: .line 1038
fload 9 /* x3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
iconst_0
faload
fadd
fstore 22 /* x3p */
start local 22 // float x3p
27: .line 1039
fload 10 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
iconst_1
faload
fadd
fstore 23 /* y3p */
start local 23 // float y3p
28: .line 1040
fload 20 /* x1p */
fload 21 /* y1p */
fload 20 /* x1p */
fload 13 /* dx1 */
fadd
fload 21 /* y1p */
fload 14 /* dy1 */
fadd
fload 22 /* x3p */
fload 23 /* y3p */
fload 22 /* x3p */
fload 11 /* dx3 */
fsub
fload 23 /* y3p */
fload 12 /* dy3 */
fsub
aload 3 /* leftOff */
invokestatic com.sun.marlin.Stroker.safeComputeMiter:(FFFFFFFF[F)V
29: .line 1041
aload 3 /* leftOff */
iconst_0
fload 20 /* x1p */
fastore
aload 3 /* leftOff */
iconst_1
fload 21 /* y1p */
fastore
30: .line 1042
aload 3 /* leftOff */
iconst_4
fload 22 /* x3p */
fastore
aload 3 /* leftOff */
iconst_5
fload 23 /* y3p */
fastore
31: .line 1044
fload 5 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_0
faload
fsub
fstore 20 /* x1p */
fload 6 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_1
faload
fsub
fstore 21 /* y1p */
32: .line 1045
fload 9 /* x3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
iconst_0
faload
fsub
fstore 22 /* x3p */
fload 10 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset1:[F
iconst_1
faload
fsub
fstore 23 /* y3p */
33: .line 1046
fload 20 /* x1p */
fload 21 /* y1p */
fload 20 /* x1p */
fload 13 /* dx1 */
fadd
fload 21 /* y1p */
fload 14 /* dy1 */
fadd
fload 22 /* x3p */
fload 23 /* y3p */
fload 22 /* x3p */
fload 11 /* dx3 */
fsub
fload 23 /* y3p */
fload 12 /* dy3 */
fsub
aload 4 /* rightOff */
invokestatic com.sun.marlin.Stroker.safeComputeMiter:(FFFFFFFF[F)V
34: .line 1047
aload 4 /* rightOff */
iconst_0
fload 20 /* x1p */
fastore
aload 4 /* rightOff */
iconst_1
fload 21 /* y1p */
fastore
35: .line 1048
aload 4 /* rightOff */
iconst_4
fload 22 /* x3p */
fastore
aload 4 /* rightOff */
iconst_5
fload 23 /* y3p */
fastore
36: .line 1049
bipush 6
ireturn
end local 23 // float y3p
end local 22 // float x3p
end local 21 // float y1p
end local 20 // float x1p
end local 19 // float l3sq
end local 18 // float l1sq
end local 17 // float dotsq
end local 16 // boolean p2eqp3
end local 15 // boolean p1eqp2
end local 14 // float dy1
end local 13 // float dx1
end local 12 // float dy3
end local 11 // float dx3
end local 10 // float y3
end local 9 // float x3
end local 8 // float y2
end local 7 // float x2
end local 6 // float y1
end local 5 // float x1
end local 4 // float[] rightOff
end local 3 // float[] leftOff
end local 2 // int off
end local 1 // float[] pts
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/marlin/Stroker;
0 37 1 pts [F
0 37 2 off I
0 37 3 leftOff [F
0 37 4 rightOff [F
1 37 5 x1 F
2 37 6 y1 F
3 37 7 x2 F
4 37 8 y2 F
5 37 9 x3 F
6 37 10 y3 F
7 37 11 dx3 F
8 37 12 dy3 F
9 37 13 dx1 F
10 37 14 dy1 F
11 37 15 p1eqp2 Z
12 37 16 p2eqp3 Z
16 37 17 dotsq F
18 37 18 l1sq F
19 37 19 l3sq F
25 37 20 x1p F
26 37 21 y1p F
27 37 22 x3p F
28 37 23 y3p F
MethodParameters:
Name Flags
pts final
off final
leftOff final
rightOff final
public void curveTo(float, float, float, float, float, float);
descriptor: (FFFFFF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=14, args_size=7
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // float x3
start local 6 // float y3
0: .line 1057
aload 0 /* this */
getfield com.sun.marlin.Stroker.cOutCode:I
istore 7 /* outcode0 */
start local 7 // int outcode0
1: .line 1059
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
ifnull 23
2: .line 1060
fload 1 /* x1 */
fload 2 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
invokestatic com.sun.marlin.Helpers.outcode:(FF[F)I
istore 8 /* outcode1 */
start local 8 // int outcode1
3: .line 1061
fload 3 /* x2 */
fload 4 /* y2 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
invokestatic com.sun.marlin.Helpers.outcode:(FF[F)I
istore 9 /* outcode2 */
start local 9 // int outcode2
4: .line 1062
fload 5 /* x3 */
fload 6 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
invokestatic com.sun.marlin.Helpers.outcode:(FF[F)I
istore 10 /* outcode3 */
start local 10 // int outcode3
5: .line 1065
iload 7 /* outcode0 */
iload 8 /* outcode1 */
ior
iload 9 /* outcode2 */
ior
iload 10 /* outcode3 */
ior
istore 11 /* orCode */
start local 11 // int orCode
6: .line 1066
iload 11 /* orCode */
ifeq 22
7: .line 1067
iload 7 /* outcode0 */
iload 8 /* outcode1 */
iand
iload 9 /* outcode2 */
iand
iload 10 /* outcode3 */
iand
istore 12 /* sideCode */
start local 12 // int sideCode
8: .line 1070
iload 12 /* sideCode */
ifne 18
9: .line 1072
aload 0 /* this */
getfield com.sun.marlin.Stroker.subdivide:Z
ifeq 22
10: .line 1074
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.subdivide:Z
11: .line 1076
aload 0 /* this */
getfield com.sun.marlin.Stroker.curveSplitter:Lcom/sun/marlin/TransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
12: .line 1077
fload 3 /* x2 */
fload 4 /* y2 */
fload 5 /* x3 */
fload 6 /* y3 */
13: .line 1078
iload 11 /* orCode */
aload 0 /* this */
14: .line 1076
invokevirtual com.sun.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitCurve:(FFFFFFFFILcom/sun/javafx/geom/PathConsumer2D;)Z
istore 13 /* ret */
start local 13 // boolean ret
15: .line 1080
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.subdivide:Z
16: .line 1081
iload 13 /* ret */
ifeq 22
17: .line 1082
return
end local 13 // boolean ret
18: .line 1087
StackMap locals: com.sun.marlin.Stroker float float float float float float int int int int int int
StackMap stack:
aload 0 /* this */
iload 10 /* outcode3 */
putfield com.sun.marlin.Stroker.cOutCode:I
19: .line 1088
aload 0 /* this */
fload 5 /* x3 */
fload 6 /* y3 */
iload 7 /* outcode0 */
invokevirtual com.sun.marlin.Stroker._moveTo:(FFI)V
20: .line 1089
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.opened:Z
21: .line 1090
return
end local 12 // int sideCode
22: .line 1094
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 10 /* outcode3 */
putfield com.sun.marlin.Stroker.cOutCode:I
end local 11 // int orCode
end local 10 // int outcode3
end local 9 // int outcode2
end local 8 // int outcode1
23: .line 1096
StackMap locals: com.sun.marlin.Stroker float float float float float float int
StackMap stack:
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
fload 5 /* x3 */
fload 6 /* y3 */
iload 7 /* outcode0 */
invokevirtual com.sun.marlin.Stroker._curveTo:(FFFFFFI)V
24: .line 1097
return
end local 7 // int outcode0
end local 6 // float y3
end local 5 // float x3
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/sun/marlin/Stroker;
0 25 1 x1 F
0 25 2 y1 F
0 25 3 x2 F
0 25 4 y2 F
0 25 5 x3 F
0 25 6 y3 F
1 25 7 outcode0 I
3 23 8 outcode1 I
4 23 9 outcode2 I
5 23 10 outcode3 I
6 23 11 orCode I
8 22 12 sideCode I
15 18 13 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
private void _curveTo(float, float, float, float, float, float, int);
descriptor: (FFFFFFI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=19, args_size=8
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // float x3
start local 6 // float y3
start local 7 // int outcode0
0: .line 1105
fload 1 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fsub
fstore 8 /* dxs */
start local 8 // float dxs
1: .line 1106
fload 2 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fsub
fstore 9 /* dys */
start local 9 // float dys
2: .line 1107
fload 5 /* x3 */
fload 3 /* x2 */
fsub
fstore 10 /* dxf */
start local 10 // float dxf
3: .line 1108
fload 6 /* y3 */
fload 4 /* y2 */
fsub
fstore 11 /* dyf */
start local 11 // float dyf
4: .line 1110
fload 8 /* dxs */
fconst_0
fcmpl
ifne 10
fload 9 /* dys */
fconst_0
fcmpl
ifne 10
5: .line 1111
fload 3 /* x2 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fsub
fstore 8 /* dxs */
6: .line 1112
fload 4 /* y2 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fsub
fstore 9 /* dys */
7: .line 1113
fload 8 /* dxs */
fconst_0
fcmpl
ifne 10
fload 9 /* dys */
fconst_0
fcmpl
ifne 10
8: .line 1114
fload 5 /* x3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fsub
fstore 8 /* dxs */
9: .line 1115
fload 6 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fsub
fstore 9 /* dys */
10: .line 1118
StackMap locals: com.sun.marlin.Stroker float float float float float float int float float float float
StackMap stack:
fload 10 /* dxf */
fconst_0
fcmpl
ifne 16
fload 11 /* dyf */
fconst_0
fcmpl
ifne 16
11: .line 1119
fload 5 /* x3 */
fload 1 /* x1 */
fsub
fstore 10 /* dxf */
12: .line 1120
fload 6 /* y3 */
fload 2 /* y1 */
fsub
fstore 11 /* dyf */
13: .line 1121
fload 10 /* dxf */
fconst_0
fcmpl
ifne 16
fload 11 /* dyf */
fconst_0
fcmpl
ifne 16
14: .line 1122
fload 5 /* x3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fsub
fstore 10 /* dxf */
15: .line 1123
fload 6 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fsub
fstore 11 /* dyf */
16: .line 1126
StackMap locals:
StackMap stack:
fload 8 /* dxs */
fconst_0
fcmpl
ifne 21
fload 9 /* dys */
fconst_0
fcmpl
ifne 21
17: .line 1129
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
ifnull 19
18: .line 1130
aload 0 /* this */
iload 7 /* outcode0 */
putfield com.sun.marlin.Stroker.cOutCode:I
19: .line 1132
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
invokevirtual com.sun.marlin.Stroker.lineTo:(FF)V
20: .line 1133
return
21: .line 1138
StackMap locals:
StackMap stack:
fload 8 /* dxs */
invokestatic java.lang.Math.abs:(F)F
ldc 0.1
fcmpg
ifge 25
fload 9 /* dys */
invokestatic java.lang.Math.abs:(F)F
ldc 0.1
fcmpg
ifge 25
22: .line 1139
fload 8 /* dxs */
fload 8 /* dxs */
fmul
fload 9 /* dys */
fload 9 /* dys */
fmul
fadd
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 12 /* len */
start local 12 // float len
23: .line 1140
fload 8 /* dxs */
fload 12 /* len */
fdiv
fstore 8 /* dxs */
24: .line 1141
fload 9 /* dys */
fload 12 /* len */
fdiv
fstore 9 /* dys */
end local 12 // float len
25: .line 1143
StackMap locals:
StackMap stack:
fload 10 /* dxf */
invokestatic java.lang.Math.abs:(F)F
ldc 0.1
fcmpg
ifge 29
fload 11 /* dyf */
invokestatic java.lang.Math.abs:(F)F
ldc 0.1
fcmpg
ifge 29
26: .line 1144
fload 10 /* dxf */
fload 10 /* dxf */
fmul
fload 11 /* dyf */
fload 11 /* dyf */
fmul
fadd
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 12 /* len */
start local 12 // float len
27: .line 1145
fload 10 /* dxf */
fload 12 /* len */
fdiv
fstore 10 /* dxf */
28: .line 1146
fload 11 /* dyf */
fload 12 /* len */
fdiv
fstore 11 /* dyf */
end local 12 // float len
29: .line 1149
StackMap locals:
StackMap stack:
fload 8 /* dxs */
fload 9 /* dys */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
30: .line 1150
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cdx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cdy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 8 /* dxs */
fload 9 /* dys */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_0
faload
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_1
faload
iload 7 /* outcode0 */
invokevirtual com.sun.marlin.Stroker.drawJoin:(FFFFFFFFFFI)V
31: .line 1152
iconst_0
istore 12 /* nSplits */
start local 12 // int nSplits
32: .line 1154
aload 0 /* this */
getfield com.sun.marlin.Stroker.lp:[F
astore 14 /* l */
start local 14 // float[] l
33: .line 1156
aload 0 /* this */
getfield com.sun.marlin.Stroker.monotonize:Z
ifeq 39
34: .line 1159
aload 0 /* this */
getfield com.sun.marlin.Stroker.rdrCtx:Lcom/sun/marlin/RendererContext;
getfield com.sun.marlin.RendererContext.monotonizer:Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
fload 5 /* x3 */
fload 6 /* y3 */
invokevirtual com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.curve:(FFFFFFFF)Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
35: .line 1158
astore 15 /* monotonizer */
start local 15 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
36: .line 1161
aload 15 /* monotonizer */
getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 12 /* nSplits */
37: .line 1162
aload 15 /* monotonizer */
getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
astore 13 /* mid */
end local 15 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
start local 13 // float[] mid
38: .line 1163
goto 44
end local 13 // float[] mid
39: .line 1165
StackMap locals: com.sun.marlin.Stroker float float float float float float int float float float float int top float[]
StackMap stack:
aload 14 /* l */
astore 13 /* mid */
start local 13 // float[] mid
40: .line 1166
aload 13 /* mid */
iconst_0
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fastore
aload 13 /* mid */
iconst_1
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fastore
41: .line 1167
aload 13 /* mid */
iconst_2
fload 1 /* x1 */
fastore
aload 13 /* mid */
iconst_3
fload 2 /* y1 */
fastore
42: .line 1168
aload 13 /* mid */
iconst_4
fload 3 /* x2 */
fastore
aload 13 /* mid */
iconst_5
fload 4 /* y2 */
fastore
43: .line 1169
aload 13 /* mid */
bipush 6
fload 5 /* x3 */
fastore
aload 13 /* mid */
bipush 7
fload 6 /* y3 */
fastore
44: .line 1171
StackMap locals: com.sun.marlin.Stroker float float float float float float int float float float float int float[] float[]
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.Stroker.rp:[F
astore 15 /* r */
start local 15 // float[] r
45: .line 1173
iconst_0
istore 16 /* kind */
start local 16 // int kind
46: .line 1174
iconst_0
istore 17 /* i */
start local 17 // int i
47: iconst_0
istore 18 /* off */
start local 18 // int off
48: goto 59
49: .line 1175
StackMap locals: com.sun.marlin.Stroker float float float float float float int float float float float int float[] float[] float[] int int int
StackMap stack:
aload 0 /* this */
aload 13 /* mid */
iload 18 /* off */
aload 14 /* l */
aload 15 /* r */
invokevirtual com.sun.marlin.Stroker.computeOffsetCubic:([FI[F[F)I
istore 16 /* kind */
50: .line 1177
aload 0 /* this */
aload 14 /* l */
iconst_0
faload
aload 14 /* l */
iconst_1
faload
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
51: .line 1179
iload 16 /* kind */
tableswitch { // 4 - 8
4: 55
5: 57
6: 57
7: 57
8: 52
default: 57
}
52: .line 1181
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 14 /* l */
iconst_2
faload
aload 14 /* l */
iconst_3
faload
aload 14 /* l */
iconst_4
faload
aload 14 /* l */
iconst_5
faload
aload 14 /* l */
bipush 6
faload
aload 14 /* l */
bipush 7
faload
invokevirtual com.sun.marlin.Stroker.emitCurveTo:(FFFFFF)V
53: .line 1182
aload 0 /* this */
aload 15 /* r */
iconst_0
faload
aload 15 /* r */
iconst_1
faload
aload 15 /* r */
iconst_2
faload
aload 15 /* r */
iconst_3
faload
aload 15 /* r */
iconst_4
faload
aload 15 /* r */
iconst_5
faload
invokevirtual com.sun.marlin.Stroker.emitCurveToRev:(FFFFFF)V
54: .line 1183
goto 57
55: .line 1185
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 14 /* l */
iconst_2
faload
aload 14 /* l */
iconst_3
faload
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
56: .line 1186
aload 0 /* this */
aload 15 /* r */
iconst_0
faload
aload 15 /* r */
iconst_1
faload
invokevirtual com.sun.marlin.Stroker.emitLineToRev:(FF)V
57: .line 1190
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 15 /* r */
iload 16 /* kind */
iconst_2
isub
faload
aload 15 /* r */
iload 16 /* kind */
iconst_1
isub
faload
invokevirtual com.sun.marlin.Stroker.emitLineToRev:(FF)V
58: .line 1174
iinc 17 /* i */ 1
iinc 18 /* off */ 6
StackMap locals:
StackMap stack:
59: iload 17 /* i */
iload 12 /* nSplits */
if_icmple 49
end local 18 // int off
end local 17 // int i
60: .line 1193
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.prev:I
61: .line 1194
aload 0 /* this */
fload 5 /* x3 */
putfield com.sun.marlin.Stroker.cx0:F
62: .line 1195
aload 0 /* this */
fload 6 /* y3 */
putfield com.sun.marlin.Stroker.cy0:F
63: .line 1196
aload 0 /* this */
fload 10 /* dxf */
putfield com.sun.marlin.Stroker.cdx:F
64: .line 1197
aload 0 /* this */
fload 11 /* dyf */
putfield com.sun.marlin.Stroker.cdy:F
65: .line 1198
aload 0 /* this */
aload 14 /* l */
iload 16 /* kind */
iconst_2
isub
faload
aload 15 /* r */
iload 16 /* kind */
iconst_2
isub
faload
fsub
fconst_2
fdiv
putfield com.sun.marlin.Stroker.cmx:F
66: .line 1199
aload 0 /* this */
aload 14 /* l */
iload 16 /* kind */
iconst_1
isub
faload
aload 15 /* r */
iload 16 /* kind */
iconst_1
isub
faload
fsub
fconst_2
fdiv
putfield com.sun.marlin.Stroker.cmy:F
67: .line 1200
return
end local 16 // int kind
end local 15 // float[] r
end local 14 // float[] l
end local 13 // float[] mid
end local 12 // int nSplits
end local 11 // float dyf
end local 10 // float dxf
end local 9 // float dys
end local 8 // float dxs
end local 7 // int outcode0
end local 6 // float y3
end local 5 // float x3
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lcom/sun/marlin/Stroker;
0 68 1 x1 F
0 68 2 y1 F
0 68 3 x2 F
0 68 4 y2 F
0 68 5 x3 F
0 68 6 y3 F
0 68 7 outcode0 I
1 68 8 dxs F
2 68 9 dys F
3 68 10 dxf F
4 68 11 dyf F
23 25 12 len F
27 29 12 len F
32 68 12 nSplits I
38 39 13 mid [F
40 68 13 mid [F
33 68 14 l [F
36 38 15 monotonizer Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
45 68 15 r [F
46 68 16 kind I
47 60 17 i I
48 60 18 off I
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
outcode0 final
public void quadTo(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=5
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
0: .line 1206
aload 0 /* this */
getfield com.sun.marlin.Stroker.cOutCode:I
istore 5 /* outcode0 */
start local 5 // int outcode0
1: .line 1208
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
ifnull 21
2: .line 1209
fload 1 /* x1 */
fload 2 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
invokestatic com.sun.marlin.Helpers.outcode:(FF[F)I
istore 6 /* outcode1 */
start local 6 // int outcode1
3: .line 1210
fload 3 /* x2 */
fload 4 /* y2 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
invokestatic com.sun.marlin.Helpers.outcode:(FF[F)I
istore 7 /* outcode2 */
start local 7 // int outcode2
4: .line 1213
iload 5 /* outcode0 */
iload 6 /* outcode1 */
ior
iload 7 /* outcode2 */
ior
istore 8 /* orCode */
start local 8 // int orCode
5: .line 1214
iload 8 /* orCode */
ifeq 20
6: .line 1215
iload 5 /* outcode0 */
iload 6 /* outcode1 */
iand
iload 7 /* outcode2 */
iand
istore 9 /* sideCode */
start local 9 // int sideCode
7: .line 1218
iload 9 /* sideCode */
ifne 16
8: .line 1220
aload 0 /* this */
getfield com.sun.marlin.Stroker.subdivide:Z
ifeq 20
9: .line 1222
aload 0 /* this */
iconst_0
putfield com.sun.marlin.Stroker.subdivide:Z
10: .line 1224
aload 0 /* this */
getfield com.sun.marlin.Stroker.curveSplitter:Lcom/sun/marlin/TransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
11: .line 1225
fload 3 /* x2 */
fload 4 /* y2 */
iload 8 /* orCode */
aload 0 /* this */
12: .line 1224
invokevirtual com.sun.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitQuad:(FFFFFFILcom/sun/javafx/geom/PathConsumer2D;)Z
istore 10 /* ret */
start local 10 // boolean ret
13: .line 1227
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.subdivide:Z
14: .line 1228
iload 10 /* ret */
ifeq 20
15: .line 1229
return
end local 10 // boolean ret
16: .line 1234
StackMap locals: com.sun.marlin.Stroker float float float float int int int int int
StackMap stack:
aload 0 /* this */
iload 7 /* outcode2 */
putfield com.sun.marlin.Stroker.cOutCode:I
17: .line 1235
aload 0 /* this */
fload 3 /* x2 */
fload 4 /* y2 */
iload 5 /* outcode0 */
invokevirtual com.sun.marlin.Stroker._moveTo:(FFI)V
18: .line 1236
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.opened:Z
19: .line 1237
return
end local 9 // int sideCode
20: .line 1241
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 7 /* outcode2 */
putfield com.sun.marlin.Stroker.cOutCode:I
end local 8 // int orCode
end local 7 // int outcode2
end local 6 // int outcode1
21: .line 1243
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
iload 5 /* outcode0 */
invokevirtual com.sun.marlin.Stroker._quadTo:(FFFFI)V
22: .line 1244
return
end local 5 // int outcode0
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/sun/marlin/Stroker;
0 23 1 x1 F
0 23 2 y1 F
0 23 3 x2 F
0 23 4 y2 F
1 23 5 outcode0 I
3 21 6 outcode1 I
4 21 7 outcode2 I
5 21 8 orCode I
7 20 9 sideCode I
13 16 10 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
private void _quadTo(float, float, float, float, int);
descriptor: (FFFFI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=17, args_size=6
start local 0 // com.sun.marlin.Stroker this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // int outcode0
0: .line 1251
fload 1 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fsub
fstore 6 /* dxs */
start local 6 // float dxs
1: .line 1252
fload 2 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fsub
fstore 7 /* dys */
start local 7 // float dys
2: .line 1253
fload 3 /* x2 */
fload 1 /* x1 */
fsub
fstore 8 /* dxf */
start local 8 // float dxf
3: .line 1254
fload 4 /* y2 */
fload 2 /* y1 */
fsub
fstore 9 /* dyf */
start local 9 // float dyf
4: .line 1256
fload 6 /* dxs */
fconst_0
fcmpl
ifne 5
fload 7 /* dys */
fconst_0
fcmpl
ifeq 6
StackMap locals: com.sun.marlin.Stroker float float float float int float float float float
StackMap stack:
5: fload 8 /* dxf */
fconst_0
fcmpl
ifne 8
fload 9 /* dyf */
fconst_0
fcmpl
ifne 8
6: .line 1257
StackMap locals:
StackMap stack:
fload 3 /* x2 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fsub
dup
fstore 8 /* dxf */
fstore 6 /* dxs */
7: .line 1258
fload 4 /* y2 */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fsub
dup
fstore 9 /* dyf */
fstore 7 /* dys */
8: .line 1260
StackMap locals:
StackMap stack:
fload 6 /* dxs */
fconst_0
fcmpl
ifne 13
fload 7 /* dys */
fconst_0
fcmpl
ifne 13
9: .line 1263
aload 0 /* this */
getfield com.sun.marlin.Stroker.clipRect:[F
ifnull 11
10: .line 1264
aload 0 /* this */
iload 5 /* outcode0 */
putfield com.sun.marlin.Stroker.cOutCode:I
11: .line 1266
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
invokevirtual com.sun.marlin.Stroker.lineTo:(FF)V
12: .line 1267
return
13: .line 1271
StackMap locals:
StackMap stack:
fload 6 /* dxs */
invokestatic java.lang.Math.abs:(F)F
ldc 0.1
fcmpg
ifge 17
fload 7 /* dys */
invokestatic java.lang.Math.abs:(F)F
ldc 0.1
fcmpg
ifge 17
14: .line 1272
fload 6 /* dxs */
fload 6 /* dxs */
fmul
fload 7 /* dys */
fload 7 /* dys */
fmul
fadd
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 10 /* len */
start local 10 // float len
15: .line 1273
fload 6 /* dxs */
fload 10 /* len */
fdiv
fstore 6 /* dxs */
16: .line 1274
fload 7 /* dys */
fload 10 /* len */
fdiv
fstore 7 /* dys */
end local 10 // float len
17: .line 1276
StackMap locals:
StackMap stack:
fload 8 /* dxf */
invokestatic java.lang.Math.abs:(F)F
ldc 0.1
fcmpg
ifge 21
fload 9 /* dyf */
invokestatic java.lang.Math.abs:(F)F
ldc 0.1
fcmpg
ifge 21
18: .line 1277
fload 8 /* dxf */
fload 8 /* dxf */
fmul
fload 9 /* dyf */
fload 9 /* dyf */
fmul
fadd
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 10 /* len */
start local 10 // float len
19: .line 1278
fload 8 /* dxf */
fload 10 /* len */
fdiv
fstore 8 /* dxf */
20: .line 1279
fload 9 /* dyf */
fload 10 /* len */
fdiv
fstore 9 /* dyf */
end local 10 // float len
21: .line 1281
StackMap locals:
StackMap stack:
fload 6 /* dxs */
fload 7 /* dys */
aload 0 /* this */
getfield com.sun.marlin.Stroker.lineWidth2:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
invokestatic com.sun.marlin.Stroker.computeOffset:(FFF[F)V
22: .line 1282
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cdx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cdy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 6 /* dxs */
fload 7 /* dys */
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmx:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cmy:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_0
faload
aload 0 /* this */
getfield com.sun.marlin.Stroker.offset0:[F
iconst_1
faload
iload 5 /* outcode0 */
invokevirtual com.sun.marlin.Stroker.drawJoin:(FFFFFFFFFFI)V
23: .line 1284
iconst_0
istore 10 /* nSplits */
start local 10 // int nSplits
24: .line 1286
aload 0 /* this */
getfield com.sun.marlin.Stroker.lp:[F
astore 12 /* l */
start local 12 // float[] l
25: .line 1288
aload 0 /* this */
getfield com.sun.marlin.Stroker.monotonize:Z
ifeq 31
26: .line 1291
aload 0 /* this */
getfield com.sun.marlin.Stroker.rdrCtx:Lcom/sun/marlin/RendererContext;
getfield com.sun.marlin.RendererContext.monotonizer:Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
invokevirtual com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.quad:(FFFFFF)Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
27: .line 1290
astore 13 /* monotonizer */
start local 13 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
28: .line 1293
aload 13 /* monotonizer */
getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 10 /* nSplits */
29: .line 1294
aload 13 /* monotonizer */
getfield com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
astore 11 /* mid */
end local 13 // com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
start local 11 // float[] mid
30: .line 1295
goto 35
end local 11 // float[] mid
31: .line 1297
StackMap locals: com.sun.marlin.Stroker float float float float int float float float float int top float[]
StackMap stack:
aload 12 /* l */
astore 11 /* mid */
start local 11 // float[] mid
32: .line 1298
aload 11 /* mid */
iconst_0
aload 0 /* this */
getfield com.sun.marlin.Stroker.cx0:F
fastore
aload 11 /* mid */
iconst_1
aload 0 /* this */
getfield com.sun.marlin.Stroker.cy0:F
fastore
33: .line 1299
aload 11 /* mid */
iconst_2
fload 1 /* x1 */
fastore
aload 11 /* mid */
iconst_3
fload 2 /* y1 */
fastore
34: .line 1300
aload 11 /* mid */
iconst_4
fload 3 /* x2 */
fastore
aload 11 /* mid */
iconst_5
fload 4 /* y2 */
fastore
35: .line 1302
StackMap locals: com.sun.marlin.Stroker float float float float int float float float float int float[] float[]
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.Stroker.rp:[F
astore 13 /* r */
start local 13 // float[] r
36: .line 1304
iconst_0
istore 14 /* kind */
start local 14 // int kind
37: .line 1305
iconst_0
istore 15 /* i */
start local 15 // int i
38: iconst_0
istore 16 /* off */
start local 16 // int off
39: goto 50
40: .line 1306
StackMap locals: com.sun.marlin.Stroker float float float float int float float float float int float[] float[] float[] int int int
StackMap stack:
aload 0 /* this */
aload 11 /* mid */
iload 16 /* off */
aload 12 /* l */
aload 13 /* r */
invokevirtual com.sun.marlin.Stroker.computeOffsetQuad:([FI[F[F)I
istore 14 /* kind */
41: .line 1308
aload 0 /* this */
aload 12 /* l */
iconst_0
faload
aload 12 /* l */
iconst_1
faload
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
42: .line 1310
iload 14 /* kind */
tableswitch { // 4 - 6
4: 46
5: 48
6: 43
default: 48
}
43: .line 1312
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 12 /* l */
iconst_2
faload
aload 12 /* l */
iconst_3
faload
aload 12 /* l */
iconst_4
faload
aload 12 /* l */
iconst_5
faload
invokevirtual com.sun.marlin.Stroker.emitQuadTo:(FFFF)V
44: .line 1313
aload 0 /* this */
aload 13 /* r */
iconst_0
faload
aload 13 /* r */
iconst_1
faload
aload 13 /* r */
iconst_2
faload
aload 13 /* r */
iconst_3
faload
invokevirtual com.sun.marlin.Stroker.emitQuadToRev:(FFFF)V
45: .line 1314
goto 48
46: .line 1316
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 12 /* l */
iconst_2
faload
aload 12 /* l */
iconst_3
faload
invokevirtual com.sun.marlin.Stroker.emitLineTo:(FF)V
47: .line 1317
aload 0 /* this */
aload 13 /* r */
iconst_0
faload
aload 13 /* r */
iconst_1
faload
invokevirtual com.sun.marlin.Stroker.emitLineToRev:(FF)V
48: .line 1321
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 13 /* r */
iload 14 /* kind */
iconst_2
isub
faload
aload 13 /* r */
iload 14 /* kind */
iconst_1
isub
faload
invokevirtual com.sun.marlin.Stroker.emitLineToRev:(FF)V
49: .line 1305
iinc 15 /* i */ 1
iinc 16 /* off */ 4
StackMap locals:
StackMap stack:
50: iload 15 /* i */
iload 10 /* nSplits */
if_icmple 40
end local 16 // int off
end local 15 // int i
51: .line 1324
aload 0 /* this */
iconst_1
putfield com.sun.marlin.Stroker.prev:I
52: .line 1325
aload 0 /* this */
fload 3 /* x2 */
putfield com.sun.marlin.Stroker.cx0:F
53: .line 1326
aload 0 /* this */
fload 4 /* y2 */
putfield com.sun.marlin.Stroker.cy0:F
54: .line 1327
aload 0 /* this */
fload 8 /* dxf */
putfield com.sun.marlin.Stroker.cdx:F
55: .line 1328
aload 0 /* this */
fload 9 /* dyf */
putfield com.sun.marlin.Stroker.cdy:F
56: .line 1329
aload 0 /* this */
aload 12 /* l */
iload 14 /* kind */
iconst_2
isub
faload
aload 13 /* r */
iload 14 /* kind */
iconst_2
isub
faload
fsub
fconst_2
fdiv
putfield com.sun.marlin.Stroker.cmx:F
57: .line 1330
aload 0 /* this */
aload 12 /* l */
iload 14 /* kind */
iconst_1
isub
faload
aload 13 /* r */
iload 14 /* kind */
iconst_1
isub
faload
fsub
fconst_2
fdiv
putfield com.sun.marlin.Stroker.cmy:F
58: .line 1331
return
end local 14 // int kind
end local 13 // float[] r
end local 12 // float[] l
end local 11 // float[] mid
end local 10 // int nSplits
end local 9 // float dyf
end local 8 // float dxf
end local 7 // float dys
end local 6 // float dxs
end local 5 // int outcode0
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.marlin.Stroker this
LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lcom/sun/marlin/Stroker;
0 59 1 x1 F
0 59 2 y1 F
0 59 3 x2 F
0 59 4 y2 F
0 59 5 outcode0 I
1 59 6 dxs F
2 59 7 dys F
3 59 8 dxf F
4 59 9 dyf F
15 17 10 len F
19 21 10 len F
24 59 10 nSplits I
30 31 11 mid [F
32 59 11 mid [F
25 59 12 l [F
28 30 13 monotonizer Lcom/sun/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
36 59 13 r [F
37 59 14 kind I
38 51 15 i I
39 51 16 off I
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
outcode0 final
}
SourceFile: "Stroker.java"
InnerClasses:
final PolyStack = com.sun.marlin.Helpers$PolyStack of com.sun.marlin.Helpers
public final CurveBasicMonotonizer = com.sun.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer of com.sun.marlin.TransformingPathConsumer2D
final CurveClipSplitter = com.sun.marlin.TransformingPathConsumer2D$CurveClipSplitter of com.sun.marlin.TransformingPathConsumer2D