public final class com.sun.marlin.DStroker implements com.sun.marlin.DPathConsumer2D, com.sun.marlin.MarlinConst
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.marlin.DStroker
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 double ERR_JOIN;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double ROUND_JOIN_THRESHOLD;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double C;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double SQRT_2;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private com.sun.marlin.DPathConsumer2D out;
descriptor: Lcom/sun/marlin/DPathConsumer2D;
flags: (0x0002) ACC_PRIVATE
private int capStyle;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int joinStyle;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private double lineWidth2;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double invHalfLineWidth2Sq;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private final double[] offset0;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final double[] offset1;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final double[] offset2;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final double[] miter;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private double miterLimitSq;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private int prev;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private double sx0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double sy0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double sdx;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double sdy;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double cx0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double cy0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double cdx;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double cdy;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double smx;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double smy;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double cmx;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double cmy;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private final com.sun.marlin.DHelpers$PolyStack reverse;
descriptor: Lcom/sun/marlin/DHelpers$PolyStack;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final double[] lp;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final double[] rp;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final com.sun.marlin.DRendererContext rdrCtx;
descriptor: Lcom/sun/marlin/DRendererContext;
flags: (0x0010) ACC_FINAL
final com.sun.marlin.DCurve curve;
descriptor: Lcom/sun/marlin/DCurve;
flags: (0x0010) ACC_FINAL
private double[] clipRect;
descriptor: [D
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.DTransformingPathConsumer2D$CurveClipSplitter curveSplitter;
descriptor: Lcom/sun/marlin/DTransformingPathConsumer2D$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 36
ldc Lcom/sun/marlin/DStroker;
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.DStroker.$assertionsDisabled:Z
3: .line 43
fconst_1
getstatic com.sun.marlin.DStroker.MIN_SUBPIXELS:F
fdiv
f2d
putstatic com.sun.marlin.DStroker.ERR_JOIN:D
4: .line 44
getstatic com.sun.marlin.DStroker.ERR_JOIN:D
getstatic com.sun.marlin.DStroker.ERR_JOIN:D
dmul
putstatic com.sun.marlin.DStroker.ROUND_JOIN_THRESHOLD:D
5: .line 47
ldc 4.0
ldc 2.0
invokestatic java.lang.Math.sqrt:(D)D
dconst_1
dsub
dmul
ldc 3.0
ddiv
putstatic com.sun.marlin.DStroker.C:D
6: .line 50
ldc 2.0
invokestatic java.lang.Math.sqrt:(D)D
putstatic com.sun.marlin.DStroker.SQRT_2:D
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.sun.marlin.DRendererContext);
descriptor: (Lcom/sun/marlin/DRendererContext;)V
flags: (0x0000)
Code:
stack=9, locals=2, args_size=2
start local 0 // com.sun.marlin.DStroker this
start local 1 // com.sun.marlin.DRendererContext rdrCtx
0: .line 114
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 60
aload 0 /* this */
iconst_2
newarray 7
putfield com.sun.marlin.DStroker.offset0:[D
2: .line 61
aload 0 /* this */
iconst_2
newarray 7
putfield com.sun.marlin.DStroker.offset1:[D
3: .line 62
aload 0 /* this */
iconst_2
newarray 7
putfield com.sun.marlin.DStroker.offset2:[D
4: .line 63
aload 0 /* this */
iconst_2
newarray 7
putfield com.sun.marlin.DStroker.miter:[D
5: .line 82
aload 0 /* this */
bipush 8
newarray 7
putfield com.sun.marlin.DStroker.lp:[D
6: .line 83
aload 0 /* this */
bipush 8
newarray 7
putfield com.sun.marlin.DStroker.rp:[D
7: .line 95
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.cOutCode:I
8: .line 98
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.sOutCode:I
9: .line 101
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.opened:Z
10: .line 103
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.capStart:Z
11: .line 107
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.subdivide:Z
12: .line 115
aload 0 /* this */
aload 1 /* rdrCtx */
putfield com.sun.marlin.DStroker.rdrCtx:Lcom/sun/marlin/DRendererContext;
13: .line 117
aload 0 /* this */
aload 1 /* rdrCtx */
getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
ifnull 22
14: .line 118
new com.sun.marlin.DHelpers$PolyStack
dup
aload 1 /* rdrCtx */
15: .line 119
aload 1 /* rdrCtx */
getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.stat_str_polystack_types:Lcom/sun/marlin/stats/StatLong;
16: .line 120
aload 1 /* rdrCtx */
getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.stat_str_polystack_curves:Lcom/sun/marlin/stats/StatLong;
17: .line 121
aload 1 /* rdrCtx */
getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.hist_str_polystack_curves:Lcom/sun/marlin/stats/Histogram;
18: .line 122
aload 1 /* rdrCtx */
getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.stat_array_str_polystack_curves:Lcom/sun/marlin/stats/StatLong;
19: .line 123
aload 1 /* rdrCtx */
getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
getfield com.sun.marlin.RendererStats.stat_array_str_polystack_types:Lcom/sun/marlin/stats/StatLong;
20: .line 118
invokespecial com.sun.marlin.DHelpers$PolyStack.<init>:(Lcom/sun/marlin/DRendererContext;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 123
goto 23
22: .line 124
StackMap locals: com.sun.marlin.DStroker com.sun.marlin.DRendererContext
StackMap stack: com.sun.marlin.DStroker
new com.sun.marlin.DHelpers$PolyStack
dup
aload 1 /* rdrCtx */
invokespecial com.sun.marlin.DHelpers$PolyStack.<init>:(Lcom/sun/marlin/DRendererContext;)V
23: .line 117
StackMap locals: com.sun.marlin.DStroker com.sun.marlin.DRendererContext
StackMap stack: com.sun.marlin.DStroker com.sun.marlin.DHelpers$PolyStack
putfield com.sun.marlin.DStroker.reverse:Lcom/sun/marlin/DHelpers$PolyStack;
24: .line 126
aload 0 /* this */
aload 1 /* rdrCtx */
getfield com.sun.marlin.DRendererContext.curve:Lcom/sun/marlin/DCurve;
putfield com.sun.marlin.DStroker.curve:Lcom/sun/marlin/DCurve;
25: .line 127
aload 0 /* this */
aload 1 /* rdrCtx */
getfield com.sun.marlin.DRendererContext.curveClipSplitter:Lcom/sun/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
putfield com.sun.marlin.DStroker.curveSplitter:Lcom/sun/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
26: .line 128
return
end local 1 // com.sun.marlin.DRendererContext rdrCtx
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/sun/marlin/DStroker;
0 27 1 rdrCtx Lcom/sun/marlin/DRendererContext;
MethodParameters:
Name Flags
rdrCtx final
public com.sun.marlin.DStroker init(com.sun.marlin.DPathConsumer2D, double, int, int, double, boolean);
descriptor: (Lcom/sun/marlin/DPathConsumer2D;DIIDZ)Lcom/sun/marlin/DStroker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=14, args_size=7
start local 0 // com.sun.marlin.DStroker this
start local 1 // com.sun.marlin.DPathConsumer2D pc2d
start local 2 // double lineWidth
start local 4 // int capStyle
start local 5 // int joinStyle
start local 6 // double miterLimit
start local 8 // boolean subdivideCurves
0: .line 152
aload 0 /* this */
aload 1 /* pc2d */
putfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
1: .line 154
aload 0 /* this */
dload 2 /* lineWidth */
ldc 2.0
ddiv
putfield com.sun.marlin.DStroker.lineWidth2:D
2: .line 155
aload 0 /* this */
dconst_1
ldc 2.0
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
dmul
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
dmul
ddiv
putfield com.sun.marlin.DStroker.invHalfLineWidth2Sq:D
3: .line 156
aload 0 /* this */
iload 8 /* subdivideCurves */
putfield com.sun.marlin.DStroker.monotonize:Z
4: .line 158
aload 0 /* this */
iload 4 /* capStyle */
putfield com.sun.marlin.DStroker.capStyle:I
5: .line 159
aload 0 /* this */
iload 5 /* joinStyle */
putfield com.sun.marlin.DStroker.joinStyle:I
6: .line 161
dload 6 /* miterLimit */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
dmul
dstore 9 /* limit */
start local 9 // double limit
7: .line 162
aload 0 /* this */
dload 9 /* limit */
dload 9 /* limit */
dmul
putfield com.sun.marlin.DStroker.miterLimitSq:D
8: .line 164
aload 0 /* this */
iconst_2
putfield com.sun.marlin.DStroker.prev:I
9: .line 166
aload 0 /* this */
getfield com.sun.marlin.DStroker.rdrCtx:Lcom/sun/marlin/DRendererContext;
iconst_1
putfield com.sun.marlin.DRendererContext.stroking:I
10: .line 168
aload 0 /* this */
getfield com.sun.marlin.DStroker.rdrCtx:Lcom/sun/marlin/DRendererContext;
getfield com.sun.marlin.DRendererContext.doClip:Z
ifeq 32
11: .line 170
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
dstore 11 /* margin */
start local 11 // double margin
12: .line 172
iload 4 /* capStyle */
iconst_2
if_icmpne 14
13: .line 173
dload 11 /* margin */
getstatic com.sun.marlin.DStroker.SQRT_2:D
dmul
dstore 11 /* margin */
14: .line 175
StackMap locals: double double
StackMap stack:
iload 5 /* joinStyle */
ifne 16
dload 11 /* margin */
dload 9 /* limit */
dcmpg
ifge 16
15: .line 176
dload 9 /* limit */
dstore 11 /* margin */
16: .line 181
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.DStroker.rdrCtx:Lcom/sun/marlin/DRendererContext;
getfield com.sun.marlin.DRendererContext.clipRect:[D
astore 13 /* _clipRect */
start local 13 // double[] _clipRect
17: .line 182
aload 13 /* _clipRect */
iconst_0
dup2
daload
dload 11 /* margin */
dsub
dastore
18: .line 183
aload 13 /* _clipRect */
iconst_1
dup2
daload
dload 11 /* margin */
dadd
dastore
19: .line 184
aload 13 /* _clipRect */
iconst_2
dup2
daload
dload 11 /* margin */
dsub
dastore
20: .line 185
aload 13 /* _clipRect */
iconst_3
dup2
daload
dload 11 /* margin */
dadd
dastore
21: .line 186
aload 0 /* this */
aload 13 /* _clipRect */
putfield com.sun.marlin.DStroker.clipRect:[D
22: .line 188
getstatic com.sun.marlin.MarlinConst.DO_LOG_CLIP:Z
ifeq 26
23: .line 189
new java.lang.StringBuilder
dup
ldc "clipRect (stroker): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
24: .line 190
aload 0 /* this */
getfield com.sun.marlin.DStroker.rdrCtx:Lcom/sun/marlin/DRendererContext;
getfield com.sun.marlin.DRendererContext.clipRect:[D
invokestatic java.util.Arrays.toString:([D)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: .line 189
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.sun.marlin.MarlinUtils.logInfo:(Ljava/lang/String;)V
26: .line 194
StackMap locals: double[]
StackMap stack:
getstatic com.sun.marlin.DStroker.DO_CLIP_SUBDIVIDER:Z
ifeq 30
27: .line 195
aload 0 /* this */
iload 8 /* subdivideCurves */
putfield com.sun.marlin.DStroker.subdivide:Z
28: .line 197
aload 0 /* this */
getfield com.sun.marlin.DStroker.curveSplitter:Lcom/sun/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
invokevirtual com.sun.marlin.DTransformingPathConsumer2D$CurveClipSplitter.init:()V
29: .line 198
goto 35
30: .line 199
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.subdivide:Z
end local 13 // double[] _clipRect
end local 11 // double margin
31: .line 201
goto 35
32: .line 202
StackMap locals:
StackMap stack:
aload 0 /* this */
aconst_null
putfield com.sun.marlin.DStroker.clipRect:[D
33: .line 203
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.cOutCode:I
34: .line 204
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.sOutCode:I
35: .line 206
StackMap locals:
StackMap stack:
aload 0 /* this */
areturn
end local 9 // double limit
end local 8 // boolean subdivideCurves
end local 6 // double miterLimit
end local 5 // int joinStyle
end local 4 // int capStyle
end local 2 // double lineWidth
end local 1 // com.sun.marlin.DPathConsumer2D pc2d
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/sun/marlin/DStroker;
0 36 1 pc2d Lcom/sun/marlin/DPathConsumer2D;
0 36 2 lineWidth D
0 36 4 capStyle I
0 36 5 joinStyle I
0 36 6 miterLimit D
0 36 8 subdivideCurves Z
7 36 9 limit D
12 31 11 margin D
17 31 13 _clipRect [D
MethodParameters:
Name Flags
pc2d final
lineWidth final
capStyle final
joinStyle final
miterLimit final
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.DStroker this
0: .line 210
aload 0 /* this */
aconst_null
putfield com.sun.marlin.DStroker.clipRect:[D
1: .line 211
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.cOutCode:I
2: .line 212
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.sOutCode:I
3: .line 213
return
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/marlin/DStroker;
void dispose();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.marlin.DStroker this
0: .line 220
aload 0 /* this */
getfield com.sun.marlin.DStroker.reverse:Lcom/sun/marlin/DHelpers$PolyStack;
invokevirtual com.sun.marlin.DHelpers$PolyStack.dispose:()V
1: .line 222
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.opened:Z
2: .line 223
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.capStart:Z
3: .line 234
return
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/marlin/DStroker;
private static void computeOffset(double, double, double, double[]);
descriptor: (DDD[D)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=4
start local 0 // double lx
start local 2 // double ly
start local 4 // double w
start local 6 // double[] m
0: .line 239
dload 0 /* lx */
dload 0 /* lx */
dmul
dload 2 /* ly */
dload 2 /* ly */
dmul
dadd
dstore 7 /* len */
start local 7 // double len
1: .line 240
dload 7 /* len */
dconst_0
dcmpl
ifne 5
2: .line 241
aload 6 /* m */
iconst_0
dconst_0
dastore
3: .line 242
aload 6 /* m */
iconst_1
dconst_0
dastore
4: .line 243
goto 8
5: .line 244
StackMap locals: double
StackMap stack:
dload 7 /* len */
invokestatic java.lang.Math.sqrt:(D)D
dstore 7 /* len */
6: .line 245
aload 6 /* m */
iconst_0
dload 2 /* ly */
dload 4 /* w */
dmul
dload 7 /* len */
ddiv
dastore
7: .line 246
aload 6 /* m */
iconst_1
dload 0 /* lx */
dload 4 /* w */
dmul
dneg
dload 7 /* len */
ddiv
dastore
8: .line 248
StackMap locals:
StackMap stack:
return
end local 7 // double len
end local 6 // double[] m
end local 4 // double w
end local 2 // double ly
end local 0 // double lx
LocalVariableTable:
Start End Slot Name Signature
0 9 0 lx D
0 9 2 ly D
0 9 4 w D
0 9 6 m [D
1 9 7 len D
MethodParameters:
Name Flags
lx final
ly final
w final
m final
private static boolean isCW(double, double, double, double);
descriptor: (DDDD)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=4
start local 0 // double dx1
start local 2 // double dy1
start local 4 // double dx2
start local 6 // double dy2
0: .line 261
dload 0 /* dx1 */
dload 6 /* dy2 */
dmul
dload 2 /* dy1 */
dload 4 /* dx2 */
dmul
dcmpg
ifgt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 6 // double dy2
end local 4 // double dx2
end local 2 // double dy1
end local 0 // double dx1
LocalVariableTable:
Start End Slot Name Signature
0 2 0 dx1 D
0 2 2 dy1 D
0 2 4 dx2 D
0 2 6 dy2 D
MethodParameters:
Name Flags
dx1 final
dy1 final
dx2 final
dy2 final
private void mayDrawRoundJoin(double, double, double, double, double, double, boolean);
descriptor: (DDDDDDZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=14, locals=20, args_size=8
start local 0 // com.sun.marlin.DStroker this
start local 1 // double cx
start local 3 // double cy
start local 5 // double omx
start local 7 // double omy
start local 9 // double mx
start local 11 // double my
start local 13 // boolean rev
0: .line 269
dload 5 /* omx */
dconst_0
dcmpl
ifne 1
dload 7 /* omy */
dconst_0
dcmpl
ifeq 2
StackMap locals:
StackMap stack:
1: dload 9 /* mx */
dconst_0
dcmpl
ifne 3
dload 11 /* my */
dconst_0
dcmpl
ifne 3
2: .line 270
StackMap locals:
StackMap stack:
return
3: .line 273
StackMap locals:
StackMap stack:
dload 5 /* omx */
dload 9 /* mx */
dsub
dstore 14 /* domx */
start local 14 // double domx
4: .line 274
dload 7 /* omy */
dload 11 /* my */
dsub
dstore 16 /* domy */
start local 16 // double domy
5: .line 275
dload 14 /* domx */
dload 14 /* domx */
dmul
dload 16 /* domy */
dload 16 /* domy */
dmul
dadd
dstore 18 /* lenSq */
start local 18 // double lenSq
6: .line 277
dload 18 /* lenSq */
getstatic com.sun.marlin.DStroker.ROUND_JOIN_THRESHOLD:D
dcmpg
ifge 8
7: .line 278
return
8: .line 281
StackMap locals: double double double
StackMap stack:
iload 13 /* rev */
ifeq 13
9: .line 282
dload 5 /* omx */
dneg
dstore 5 /* omx */
10: .line 283
dload 7 /* omy */
dneg
dstore 7 /* omy */
11: .line 284
dload 9 /* mx */
dneg
dstore 9 /* mx */
12: .line 285
dload 11 /* my */
dneg
dstore 11 /* my */
13: .line 287
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 1 /* cx */
dload 3 /* cy */
dload 5 /* omx */
dload 7 /* omy */
dload 9 /* mx */
dload 11 /* my */
iload 13 /* rev */
invokevirtual com.sun.marlin.DStroker.drawRoundJoin:(DDDDDDZ)V
14: .line 288
return
end local 18 // double lenSq
end local 16 // double domy
end local 14 // double domx
end local 13 // boolean rev
end local 11 // double my
end local 9 // double mx
end local 7 // double omy
end local 5 // double omx
end local 3 // double cy
end local 1 // double cx
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/marlin/DStroker;
0 15 1 cx D
0 15 3 cy D
0 15 5 omx D
0 15 7 omy D
0 15 9 mx D
0 15 11 my D
0 15 13 rev Z
4 15 14 domx D
5 15 16 domy D
6 15 18 lenSq D
MethodParameters:
Name Flags
cx
cy
omx
omy
mx
my
rev
private void drawRoundJoin(double, double, double, double, double, double, boolean);
descriptor: (DDDDDDZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=14, locals=28, args_size=8
start local 0 // com.sun.marlin.DStroker this
start local 1 // double cx
start local 3 // double cy
start local 5 // double omx
start local 7 // double omy
start local 9 // double mx
start local 11 // double my
start local 13 // boolean rev
0: .line 298
dload 5 /* omx */
dload 9 /* mx */
dmul
dload 7 /* omy */
dload 11 /* my */
dmul
dadd
dstore 14 /* cosext */
start local 14 // double cosext
1: .line 302
dload 14 /* cosext */
dconst_0
dcmpl
iflt 4
2: .line 303
aload 0 /* this */
dload 1 /* cx */
dload 3 /* cy */
dload 5 /* omx */
dload 7 /* omy */
dload 9 /* mx */
dload 11 /* my */
iload 13 /* rev */
invokevirtual com.sun.marlin.DStroker.drawBezApproxForArc:(DDDDDDZ)V
3: .line 304
goto 15
4: .line 319
StackMap locals: double
StackMap stack:
dload 11 /* my */
dload 7 /* omy */
dsub
dstore 16 /* nx */
start local 16 // double nx
5: dload 5 /* omx */
dload 9 /* mx */
dsub
dstore 18 /* ny */
start local 18 // double ny
6: .line 320
dload 16 /* nx */
dload 16 /* nx */
dmul
dload 18 /* ny */
dload 18 /* ny */
dmul
dadd
invokestatic java.lang.Math.sqrt:(D)D
dstore 20 /* nlen */
start local 20 // double nlen
7: .line 321
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
dload 20 /* nlen */
ddiv
dstore 22 /* scale */
start local 22 // double scale
8: .line 322
dload 16 /* nx */
dload 22 /* scale */
dmul
dstore 24 /* mmx */
start local 24 // double mmx
9: dload 18 /* ny */
dload 22 /* scale */
dmul
dstore 26 /* mmy */
start local 26 // double mmy
10: .line 327
iload 13 /* rev */
ifeq 13
11: .line 328
dload 24 /* mmx */
dneg
dstore 24 /* mmx */
12: .line 329
dload 26 /* mmy */
dneg
dstore 26 /* mmy */
13: .line 331
StackMap locals: com.sun.marlin.DStroker double double double double double double int double double double double double double double
StackMap stack:
aload 0 /* this */
dload 1 /* cx */
dload 3 /* cy */
dload 5 /* omx */
dload 7 /* omy */
dload 24 /* mmx */
dload 26 /* mmy */
iload 13 /* rev */
invokevirtual com.sun.marlin.DStroker.drawBezApproxForArc:(DDDDDDZ)V
14: .line 332
aload 0 /* this */
dload 1 /* cx */
dload 3 /* cy */
dload 24 /* mmx */
dload 26 /* mmy */
dload 9 /* mx */
dload 11 /* my */
iload 13 /* rev */
invokevirtual com.sun.marlin.DStroker.drawBezApproxForArc:(DDDDDDZ)V
end local 26 // double mmy
end local 24 // double mmx
end local 22 // double scale
end local 20 // double nlen
end local 18 // double ny
end local 16 // double nx
15: .line 334
StackMap locals: com.sun.marlin.DStroker double double double double double double int double
StackMap stack:
return
end local 14 // double cosext
end local 13 // boolean rev
end local 11 // double my
end local 9 // double mx
end local 7 // double omy
end local 5 // double omx
end local 3 // double cy
end local 1 // double cx
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/marlin/DStroker;
0 16 1 cx D
0 16 3 cy D
0 16 5 omx D
0 16 7 omy D
0 16 9 mx D
0 16 11 my D
0 16 13 rev Z
1 16 14 cosext D
5 15 16 nx D
6 15 18 ny D
7 15 20 nlen D
8 15 22 scale D
9 15 24 mmx D
10 15 26 mmy D
MethodParameters:
Name Flags
cx
cy
omx
omy
mx
my
rev
private void drawBezApproxForArc(double, double, double, double, double, double, boolean);
descriptor: (DDDDDDZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=18, locals=34, args_size=8
start local 0 // com.sun.marlin.DStroker this
start local 1 // double cx
start local 3 // double cy
start local 5 // double omx
start local 7 // double omy
start local 9 // double mx
start local 11 // double my
start local 13 // boolean rev
0: .line 342
dload 5 /* omx */
dload 9 /* mx */
dmul
dload 7 /* omy */
dload 11 /* my */
dmul
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.invHalfLineWidth2Sq:D
dmul
dstore 14 /* cosext2 */
start local 14 // double cosext2
1: .line 346
dload 14 /* cosext2 */
ldc 0.5
dcmpl
iflt 3
2: .line 348
return
3: .line 356
StackMap locals: double
StackMap stack:
ldc 1.3333333333333333
ldc 0.5
dload 14 /* cosext2 */
dsub
invokestatic java.lang.Math.sqrt:(D)D
dmul
4: .line 357
dconst_1
dload 14 /* cosext2 */
ldc 0.5
dadd
invokestatic java.lang.Math.sqrt:(D)D
dadd
5: .line 356
ddiv
dstore 16 /* cv */
start local 16 // double cv
6: .line 359
iload 13 /* rev */
ifeq 8
7: .line 360
dload 16 /* cv */
dneg
dstore 16 /* cv */
8: .line 362
StackMap locals: double
StackMap stack:
dload 1 /* cx */
dload 5 /* omx */
dadd
dstore 18 /* x1 */
start local 18 // double x1
9: .line 363
dload 3 /* cy */
dload 7 /* omy */
dadd
dstore 20 /* y1 */
start local 20 // double y1
10: .line 364
dload 18 /* x1 */
dload 16 /* cv */
dload 7 /* omy */
dmul
dsub
dstore 22 /* x2 */
start local 22 // double x2
11: .line 365
dload 20 /* y1 */
dload 16 /* cv */
dload 5 /* omx */
dmul
dadd
dstore 24 /* y2 */
start local 24 // double y2
12: .line 367
dload 1 /* cx */
dload 9 /* mx */
dadd
dstore 26 /* x4 */
start local 26 // double x4
13: .line 368
dload 3 /* cy */
dload 11 /* my */
dadd
dstore 28 /* y4 */
start local 28 // double y4
14: .line 369
dload 26 /* x4 */
dload 16 /* cv */
dload 11 /* my */
dmul
dadd
dstore 30 /* x3 */
start local 30 // double x3
15: .line 370
dload 28 /* y4 */
dload 16 /* cv */
dload 9 /* mx */
dmul
dsub
dstore 32 /* y3 */
start local 32 // double y3
16: .line 372
aload 0 /* this */
dload 18 /* x1 */
dload 20 /* y1 */
dload 22 /* x2 */
dload 24 /* y2 */
dload 30 /* x3 */
dload 32 /* y3 */
dload 26 /* x4 */
dload 28 /* y4 */
iload 13 /* rev */
invokevirtual com.sun.marlin.DStroker.emitCurveTo:(DDDDDDDDZ)V
17: .line 373
return
end local 32 // double y3
end local 30 // double x3
end local 28 // double y4
end local 26 // double x4
end local 24 // double y2
end local 22 // double x2
end local 20 // double y1
end local 18 // double x1
end local 16 // double cv
end local 14 // double cosext2
end local 13 // boolean rev
end local 11 // double my
end local 9 // double mx
end local 7 // double omy
end local 5 // double omx
end local 3 // double cy
end local 1 // double cx
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/marlin/DStroker;
0 18 1 cx D
0 18 3 cy D
0 18 5 omx D
0 18 7 omy D
0 18 9 mx D
0 18 11 my D
0 18 13 rev Z
1 18 14 cosext2 D
6 18 16 cv D
9 18 18 x1 D
10 18 20 y1 D
11 18 22 x2 D
12 18 24 y2 D
13 18 26 x4 D
14 18 28 y4 D
15 18 30 x3 D
16 18 32 y3 D
MethodParameters:
Name Flags
cx final
cy final
omx final
omy final
mx final
my final
rev
private void drawRoundCap(double, double, double, double);
descriptor: (DDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=15, locals=13, args_size=5
start local 0 // com.sun.marlin.DStroker this
start local 1 // double cx
start local 3 // double cy
start local 5 // double mx
start local 7 // double my
0: .line 376
getstatic com.sun.marlin.DStroker.C:D
dload 5 /* mx */
dmul
dstore 9 /* Cmx */
start local 9 // double Cmx
1: .line 377
getstatic com.sun.marlin.DStroker.C:D
dload 7 /* my */
dmul
dstore 11 /* Cmy */
start local 11 // double Cmy
2: .line 378
aload 0 /* this */
dload 1 /* cx */
dload 5 /* mx */
dadd
dload 11 /* Cmy */
dsub
dload 3 /* cy */
dload 7 /* my */
dadd
dload 9 /* Cmx */
dadd
3: .line 379
dload 1 /* cx */
dload 7 /* my */
dsub
dload 9 /* Cmx */
dadd
dload 3 /* cy */
dload 5 /* mx */
dadd
dload 11 /* Cmy */
dadd
4: .line 380
dload 1 /* cx */
dload 7 /* my */
dsub
dload 3 /* cy */
dload 5 /* mx */
dadd
5: .line 378
invokevirtual com.sun.marlin.DStroker.emitCurveTo:(DDDDDD)V
6: .line 381
aload 0 /* this */
dload 1 /* cx */
dload 7 /* my */
dsub
dload 9 /* Cmx */
dsub
dload 3 /* cy */
dload 5 /* mx */
dadd
dload 11 /* Cmy */
dsub
7: .line 382
dload 1 /* cx */
dload 5 /* mx */
dsub
dload 11 /* Cmy */
dsub
dload 3 /* cy */
dload 7 /* my */
dsub
dload 9 /* Cmx */
dadd
8: .line 383
dload 1 /* cx */
dload 5 /* mx */
dsub
dload 3 /* cy */
dload 7 /* my */
dsub
9: .line 381
invokevirtual com.sun.marlin.DStroker.emitCurveTo:(DDDDDD)V
10: .line 384
return
end local 11 // double Cmy
end local 9 // double Cmx
end local 7 // double my
end local 5 // double mx
end local 3 // double cy
end local 1 // double cx
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/marlin/DStroker;
0 11 1 cx D
0 11 3 cy D
0 11 5 mx D
0 11 7 my D
1 11 9 Cmx D
2 11 11 Cmy D
MethodParameters:
Name Flags
cx
cy
mx
my
private static void computeMiter(double, double, double, double, double, double, double, double, double[]);
descriptor: (DDDDDDDD[D)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=29, args_size=9
start local 0 // double x0
start local 2 // double y0
start local 4 // double x1
start local 6 // double y1
start local 8 // double x0p
start local 10 // double y0p
start local 12 // double x1p
start local 14 // double y1p
start local 16 // double[] m
0: .line 394
dload 4 /* x1 */
dload 0 /* x0 */
dsub
dstore 17 /* x10 */
start local 17 // double x10
1: .line 395
dload 6 /* y1 */
dload 2 /* y0 */
dsub
dstore 19 /* y10 */
start local 19 // double y10
2: .line 396
dload 12 /* x1p */
dload 8 /* x0p */
dsub
dstore 21 /* x10p */
start local 21 // double x10p
3: .line 397
dload 14 /* y1p */
dload 10 /* y0p */
dsub
dstore 23 /* y10p */
start local 23 // double y10p
4: .line 408
dload 17 /* x10 */
dload 23 /* y10p */
dmul
dload 21 /* x10p */
dload 19 /* y10 */
dmul
dsub
dstore 25 /* den */
start local 25 // double den
5: .line 409
dload 21 /* x10p */
dload 2 /* y0 */
dload 10 /* y0p */
dsub
dmul
dload 23 /* y10p */
dload 0 /* x0 */
dload 8 /* x0p */
dsub
dmul
dsub
dstore 27 /* t */
start local 27 // double t
6: .line 410
dload 27 /* t */
dload 25 /* den */
ddiv
dstore 27 /* t */
7: .line 411
aload 16 /* m */
iconst_0
dload 0 /* x0 */
dload 27 /* t */
dload 17 /* x10 */
dmul
dadd
dastore
8: .line 412
aload 16 /* m */
iconst_1
dload 2 /* y0 */
dload 27 /* t */
dload 19 /* y10 */
dmul
dadd
dastore
9: .line 413
return
end local 27 // double t
end local 25 // double den
end local 23 // double y10p
end local 21 // double x10p
end local 19 // double y10
end local 17 // double x10
end local 16 // double[] m
end local 14 // double y1p
end local 12 // double x1p
end local 10 // double y0p
end local 8 // double x0p
end local 6 // double y1
end local 4 // double x1
end local 2 // double y0
end local 0 // double x0
LocalVariableTable:
Start End Slot Name Signature
0 10 0 x0 D
0 10 2 y0 D
0 10 4 x1 D
0 10 6 y1 D
0 10 8 x0p D
0 10 10 y0p D
0 10 12 x1p D
0 10 14 y1p D
0 10 16 m [D
1 10 17 x10 D
2 10 19 y10 D
3 10 21 x10p D
4 10 23 y10p D
5 10 25 den D
6 10 27 t D
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(double, double, double, double, double, double, double, double, double[]);
descriptor: (DDDDDDDD[D)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=29, args_size=9
start local 0 // double x0
start local 2 // double y0
start local 4 // double x1
start local 6 // double y1
start local 8 // double x0p
start local 10 // double y0p
start local 12 // double x1p
start local 14 // double y1p
start local 16 // double[] m
0: .line 423
dload 4 /* x1 */
dload 0 /* x0 */
dsub
dstore 17 /* x10 */
start local 17 // double x10
1: .line 424
dload 6 /* y1 */
dload 2 /* y0 */
dsub
dstore 19 /* y10 */
start local 19 // double y10
2: .line 425
dload 12 /* x1p */
dload 8 /* x0p */
dsub
dstore 21 /* x10p */
start local 21 // double x10p
3: .line 426
dload 14 /* y1p */
dload 10 /* y0p */
dsub
dstore 23 /* y10p */
start local 23 // double y10p
4: .line 437
dload 17 /* x10 */
dload 23 /* y10p */
dmul
dload 21 /* x10p */
dload 19 /* y10 */
dmul
dsub
dstore 25 /* den */
start local 25 // double den
5: .line 438
dload 25 /* den */
dconst_0
dcmpl
ifne 9
6: .line 439
aload 16 /* m */
iconst_2
dload 0 /* x0 */
dload 8 /* x0p */
dadd
ldc 2.0
ddiv
dastore
7: .line 440
aload 16 /* m */
iconst_3
dload 2 /* y0 */
dload 10 /* y0p */
dadd
ldc 2.0
ddiv
dastore
8: .line 441
goto 13
9: .line 442
StackMap locals: double double double double double double double double double[] double double double double double
StackMap stack:
dload 21 /* x10p */
dload 2 /* y0 */
dload 10 /* y0p */
dsub
dmul
dload 23 /* y10p */
dload 0 /* x0 */
dload 8 /* x0p */
dsub
dmul
dsub
dstore 27 /* t */
start local 27 // double t
10: .line 443
dload 27 /* t */
dload 25 /* den */
ddiv
dstore 27 /* t */
11: .line 444
aload 16 /* m */
iconst_2
dload 0 /* x0 */
dload 27 /* t */
dload 17 /* x10 */
dmul
dadd
dastore
12: .line 445
aload 16 /* m */
iconst_3
dload 2 /* y0 */
dload 27 /* t */
dload 19 /* y10 */
dmul
dadd
dastore
end local 27 // double t
13: .line 447
StackMap locals:
StackMap stack:
return
end local 25 // double den
end local 23 // double y10p
end local 21 // double x10p
end local 19 // double y10
end local 17 // double x10
end local 16 // double[] m
end local 14 // double y1p
end local 12 // double x1p
end local 10 // double y0p
end local 8 // double x0p
end local 6 // double y1
end local 4 // double x1
end local 2 // double y0
end local 0 // double x0
LocalVariableTable:
Start End Slot Name Signature
0 14 0 x0 D
0 14 2 y0 D
0 14 4 x1 D
0 14 6 y1 D
0 14 8 x0p D
0 14 10 y0p D
0 14 12 x1p D
0 14 14 y1p D
0 14 16 m [D
1 14 17 x10 D
2 14 19 y10 D
3 14 21 x10p D
4 14 23 y10p D
5 14 25 den D
10 13 27 t D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x0p final
y0p final
x1p final
y1p final
m final
private void drawMiter(double, double, double, double, double, double, double, double, double, double, boolean);
descriptor: (DDDDDDDDDDZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=18, locals=28, args_size=12
start local 0 // com.sun.marlin.DStroker this
start local 1 // double pdx
start local 3 // double pdy
start local 5 // double x0
start local 7 // double y0
start local 9 // double dx
start local 11 // double dy
start local 13 // double omx
start local 15 // double omy
start local 17 // double mx
start local 19 // double my
start local 21 // boolean rev
0: .line 456
dload 17 /* mx */
dload 13 /* omx */
dcmpl
ifne 1
dload 19 /* my */
dload 15 /* omy */
dcmpl
ifeq 3
1: .line 457
StackMap locals:
StackMap stack:
dload 1 /* pdx */
dconst_0
dcmpl
ifne 2
dload 3 /* pdy */
dconst_0
dcmpl
ifeq 3
2: .line 458
StackMap locals:
StackMap stack:
dload 9 /* dx */
dconst_0
dcmpl
ifne 4
dload 11 /* dy */
dconst_0
dcmpl
ifne 4
3: .line 460
StackMap locals:
StackMap stack:
return
4: .line 463
StackMap locals:
StackMap stack:
iload 21 /* rev */
ifeq 9
5: .line 464
dload 13 /* omx */
dneg
dstore 13 /* omx */
6: .line 465
dload 15 /* omy */
dneg
dstore 15 /* omy */
7: .line 466
dload 17 /* mx */
dneg
dstore 17 /* mx */
8: .line 467
dload 19 /* my */
dneg
dstore 19 /* my */
9: .line 470
StackMap locals:
StackMap stack:
dload 5 /* x0 */
dload 1 /* pdx */
dsub
dload 13 /* omx */
dadd
dload 7 /* y0 */
dload 3 /* pdy */
dsub
dload 15 /* omy */
dadd
dload 5 /* x0 */
dload 13 /* omx */
dadd
dload 7 /* y0 */
dload 15 /* omy */
dadd
10: .line 471
dload 9 /* dx */
dload 5 /* x0 */
dadd
dload 17 /* mx */
dadd
dload 11 /* dy */
dload 7 /* y0 */
dadd
dload 19 /* my */
dadd
dload 5 /* x0 */
dload 17 /* mx */
dadd
dload 7 /* y0 */
dload 19 /* my */
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.miter:[D
11: .line 470
invokestatic com.sun.marlin.DStroker.computeMiter:(DDDDDDDD[D)V
12: .line 473
aload 0 /* this */
getfield com.sun.marlin.DStroker.miter:[D
iconst_0
daload
dstore 22 /* miterX */
start local 22 // double miterX
13: .line 474
aload 0 /* this */
getfield com.sun.marlin.DStroker.miter:[D
iconst_1
daload
dstore 24 /* miterY */
start local 24 // double miterY
14: .line 475
dload 22 /* miterX */
dload 5 /* x0 */
dsub
dload 22 /* miterX */
dload 5 /* x0 */
dsub
dmul
dload 24 /* miterY */
dload 7 /* y0 */
dsub
dload 24 /* miterY */
dload 7 /* y0 */
dsub
dmul
dadd
dstore 26 /* lenSq */
start local 26 // double lenSq
15: .line 482
dload 26 /* lenSq */
aload 0 /* this */
getfield com.sun.marlin.DStroker.miterLimitSq:D
dcmpg
ifge 17
16: .line 483
aload 0 /* this */
dload 22 /* miterX */
dload 24 /* miterY */
iload 21 /* rev */
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DDZ)V
17: .line 485
StackMap locals: double double double
StackMap stack:
return
end local 26 // double lenSq
end local 24 // double miterY
end local 22 // double miterX
end local 21 // boolean rev
end local 19 // double my
end local 17 // double mx
end local 15 // double omy
end local 13 // double omx
end local 11 // double dy
end local 9 // double dx
end local 7 // double y0
end local 5 // double x0
end local 3 // double pdy
end local 1 // double pdx
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/marlin/DStroker;
0 18 1 pdx D
0 18 3 pdy D
0 18 5 x0 D
0 18 7 y0 D
0 18 9 dx D
0 18 11 dy D
0 18 13 omx D
0 18 15 omy D
0 18 17 mx D
0 18 19 my D
0 18 21 rev Z
13 18 22 miterX D
14 18 24 miterY D
15 18 26 lenSq D
MethodParameters:
Name Flags
pdx final
pdy final
x0 final
y0 final
dx final
dy final
omx
omy
mx
my
rev
public void moveTo(double, double);
descriptor: (DD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=3
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x0
start local 3 // double y0
0: .line 489
aload 0 /* this */
dload 1 /* x0 */
dload 3 /* y0 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cOutCode:I
invokevirtual com.sun.marlin.DStroker._moveTo:(DDI)V
1: .line 491
aload 0 /* this */
dload 1 /* x0 */
putfield com.sun.marlin.DStroker.sx0:D
2: .line 492
aload 0 /* this */
dload 3 /* y0 */
putfield com.sun.marlin.DStroker.sy0:D
3: .line 493
aload 0 /* this */
dconst_1
putfield com.sun.marlin.DStroker.sdx:D
4: .line 494
aload 0 /* this */
dconst_0
putfield com.sun.marlin.DStroker.sdy:D
5: .line 495
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.opened:Z
6: .line 496
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.capStart:Z
7: .line 498
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
ifnull 11
8: .line 499
dload 1 /* x0 */
dload 3 /* y0 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
invokestatic com.sun.marlin.DHelpers.outcode:(DD[D)I
istore 5 /* outcode */
start local 5 // int outcode
9: .line 500
aload 0 /* this */
iload 5 /* outcode */
putfield com.sun.marlin.DStroker.cOutCode:I
10: .line 501
aload 0 /* this */
iload 5 /* outcode */
putfield com.sun.marlin.DStroker.sOutCode:I
end local 5 // int outcode
11: .line 503
StackMap locals:
StackMap stack:
return
end local 3 // double y0
end local 1 // double x0
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/marlin/DStroker;
0 12 1 x0 D
0 12 3 y0 D
9 11 5 outcode I
MethodParameters:
Name Flags
x0 final
y0 final
private void _moveTo(double, double, int);
descriptor: (DDI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=4
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x0
start local 3 // double y0
start local 5 // int outcode
0: .line 508
aload 0 /* this */
getfield com.sun.marlin.DStroker.prev:I
ifne 4
1: .line 509
aload 0 /* this */
dload 1 /* x0 */
putfield com.sun.marlin.DStroker.cx0:D
2: .line 510
aload 0 /* this */
dload 3 /* y0 */
putfield com.sun.marlin.DStroker.cy0:D
3: .line 511
goto 11
4: .line 512
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.DStroker.prev:I
iconst_1
if_icmpne 6
5: .line 513
aload 0 /* this */
iload 5 /* outcode */
invokevirtual com.sun.marlin.DStroker.finish:(I)V
6: .line 515
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.prev:I
7: .line 516
aload 0 /* this */
dload 1 /* x0 */
putfield com.sun.marlin.DStroker.cx0:D
8: .line 517
aload 0 /* this */
dload 3 /* y0 */
putfield com.sun.marlin.DStroker.cy0:D
9: .line 518
aload 0 /* this */
dconst_1
putfield com.sun.marlin.DStroker.cdx:D
10: .line 519
aload 0 /* this */
dconst_0
putfield com.sun.marlin.DStroker.cdy:D
11: .line 521
StackMap locals:
StackMap stack:
return
end local 5 // int outcode
end local 3 // double y0
end local 1 // double x0
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/marlin/DStroker;
0 12 1 x0 D
0 12 3 y0 D
0 12 5 outcode I
MethodParameters:
Name Flags
x0 final
y0 final
outcode final
public void lineTo(double, double);
descriptor: (DD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=3
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
0: .line 525
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
iconst_0
invokevirtual com.sun.marlin.DStroker.lineTo:(DDZ)V
1: .line 526
return
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
0 2 1 x1 D
0 2 3 y1 D
MethodParameters:
Name Flags
x1 final
y1 final
private void lineTo(double, double, boolean);
descriptor: (DDZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=22, locals=15, args_size=4
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // boolean force
0: .line 531
aload 0 /* this */
getfield com.sun.marlin.DStroker.cOutCode:I
istore 6 /* outcode0 */
start local 6 // int outcode0
1: .line 533
iload 5 /* force */
ifne 20
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
ifnull 20
2: .line 534
dload 1 /* x1 */
dload 3 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
invokestatic com.sun.marlin.DHelpers.outcode:(DD[D)I
istore 7 /* outcode1 */
start local 7 // int outcode1
3: .line 537
iload 6 /* outcode0 */
iload 7 /* outcode1 */
ior
istore 8 /* orCode */
start local 8 // int orCode
4: .line 538
iload 8 /* orCode */
ifeq 19
5: .line 539
iload 6 /* outcode0 */
iload 7 /* outcode1 */
iand
istore 9 /* sideCode */
start local 9 // int sideCode
6: .line 542
iload 9 /* sideCode */
ifne 15
7: .line 544
aload 0 /* this */
getfield com.sun.marlin.DStroker.subdivide:Z
ifeq 19
8: .line 546
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.subdivide:Z
9: .line 548
aload 0 /* this */
getfield com.sun.marlin.DStroker.curveSplitter:Lcom/sun/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
10: .line 549
iload 8 /* orCode */
aload 0 /* this */
11: .line 548
invokevirtual com.sun.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitLine:(DDDDILcom/sun/marlin/DPathConsumer2D;)Z
istore 10 /* ret */
start local 10 // boolean ret
12: .line 551
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.subdivide:Z
13: .line 552
iload 10 /* ret */
ifeq 19
14: .line 553
return
end local 10 // boolean ret
15: .line 558
StackMap locals: com.sun.marlin.DStroker double double int int int int int
StackMap stack:
aload 0 /* this */
iload 7 /* outcode1 */
putfield com.sun.marlin.DStroker.cOutCode:I
16: .line 559
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
iload 6 /* outcode0 */
invokevirtual com.sun.marlin.DStroker._moveTo:(DDI)V
17: .line 560
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.opened:Z
18: .line 561
return
end local 9 // int sideCode
19: .line 565
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 7 /* outcode1 */
putfield com.sun.marlin.DStroker.cOutCode:I
end local 8 // int orCode
end local 7 // int outcode1
20: .line 568
StackMap locals:
StackMap stack:
dload 1 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dsub
dstore 7 /* dx */
start local 7 // double dx
21: .line 569
dload 3 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dsub
dstore 9 /* dy */
start local 9 // double dy
22: .line 570
dload 7 /* dx */
dconst_0
dcmpl
ifne 24
dload 9 /* dy */
dconst_0
dcmpl
ifne 24
23: .line 571
dconst_1
dstore 7 /* dx */
24: .line 573
StackMap locals: double double
StackMap stack:
dload 7 /* dx */
dload 9 /* dy */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
25: .line 574
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_0
daload
dstore 11 /* mx */
start local 11 // double mx
26: .line 575
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_1
daload
dstore 13 /* my */
start local 13 // double my
27: .line 577
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cdx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cdy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 7 /* dx */
dload 9 /* dy */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
dload 11 /* mx */
dload 13 /* my */
iload 6 /* outcode0 */
invokevirtual com.sun.marlin.DStroker.drawJoin:(DDDDDDDDDDI)V
28: .line 579
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dload 11 /* mx */
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 13 /* my */
dadd
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
29: .line 580
aload 0 /* this */
dload 1 /* x1 */
dload 11 /* mx */
dadd
dload 3 /* y1 */
dload 13 /* my */
dadd
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
30: .line 582
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dload 11 /* mx */
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 13 /* my */
dsub
invokevirtual com.sun.marlin.DStroker.emitLineToRev:(DD)V
31: .line 583
aload 0 /* this */
dload 1 /* x1 */
dload 11 /* mx */
dsub
dload 3 /* y1 */
dload 13 /* my */
dsub
invokevirtual com.sun.marlin.DStroker.emitLineToRev:(DD)V
32: .line 585
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.prev:I
33: .line 586
aload 0 /* this */
dload 1 /* x1 */
putfield com.sun.marlin.DStroker.cx0:D
34: .line 587
aload 0 /* this */
dload 3 /* y1 */
putfield com.sun.marlin.DStroker.cy0:D
35: .line 588
aload 0 /* this */
dload 7 /* dx */
putfield com.sun.marlin.DStroker.cdx:D
36: .line 589
aload 0 /* this */
dload 9 /* dy */
putfield com.sun.marlin.DStroker.cdy:D
37: .line 590
aload 0 /* this */
dload 11 /* mx */
putfield com.sun.marlin.DStroker.cmx:D
38: .line 591
aload 0 /* this */
dload 13 /* my */
putfield com.sun.marlin.DStroker.cmy:D
39: .line 592
return
end local 13 // double my
end local 11 // double mx
end local 9 // double dy
end local 7 // double dx
end local 6 // int outcode0
end local 5 // boolean force
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lcom/sun/marlin/DStroker;
0 40 1 x1 D
0 40 3 y1 D
0 40 5 force Z
1 40 6 outcode0 I
3 20 7 outcode1 I
4 20 8 orCode I
6 19 9 sideCode I
12 15 10 ret Z
21 40 7 dx D
22 40 9 dy D
26 40 11 mx D
27 40 13 my D
MethodParameters:
Name Flags
x1 final
y1 final
force final
public void closePath();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=22, locals=1, args_size=1
start local 0 // com.sun.marlin.DStroker this
0: .line 597
aload 0 /* this */
getfield com.sun.marlin.DStroker.prev:I
iconst_1
if_icmpeq 14
aload 0 /* this */
getfield com.sun.marlin.DStroker.opened:Z
ifne 14
1: .line 598
aload 0 /* this */
getfield com.sun.marlin.DStroker.prev:I
iconst_2
if_icmpne 3
2: .line 599
return
3: .line 601
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
dsub
invokevirtual com.sun.marlin.DStroker.emitMoveTo:(DD)V
4: .line 603
aload 0 /* this */
dconst_1
putfield com.sun.marlin.DStroker.sdx:D
5: .line 604
aload 0 /* this */
dconst_0
putfield com.sun.marlin.DStroker.sdy:D
6: .line 605
aload 0 /* this */
dconst_1
putfield com.sun.marlin.DStroker.cdx:D
7: .line 606
aload 0 /* this */
dconst_0
putfield com.sun.marlin.DStroker.cdy:D
8: .line 608
aload 0 /* this */
dconst_0
putfield com.sun.marlin.DStroker.smx:D
9: .line 609
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
dneg
putfield com.sun.marlin.DStroker.smy:D
10: .line 610
aload 0 /* this */
dconst_0
putfield com.sun.marlin.DStroker.cmx:D
11: .line 611
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
dneg
putfield com.sun.marlin.DStroker.cmy:D
12: .line 613
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cOutCode:I
invokevirtual com.sun.marlin.DStroker.finish:(I)V
13: .line 614
return
14: .line 618
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.DStroker.sOutCode:I
aload 0 /* this */
getfield com.sun.marlin.DStroker.cOutCode:I
iand
ifne 23
15: .line 619
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.sx0:D
dcmpl
ifne 16
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.sy0:D
dcmpl
ifeq 17
16: .line 620
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.sx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.sy0:D
iconst_1
invokevirtual com.sun.marlin.DStroker.lineTo:(DDZ)V
17: .line 623
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cdx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cdy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.sdx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.sdy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.sOutCode:I
invokevirtual com.sun.marlin.DStroker.drawJoin:(DDDDDDDDDDI)V
18: .line 625
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.sx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.sy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
dadd
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
19: .line 627
aload 0 /* this */
getfield com.sun.marlin.DStroker.opened:Z
ifeq 22
20: .line 628
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.sx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.sy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
dsub
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
21: .line 629
goto 23
22: .line 630
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.sx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.sy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
dsub
invokevirtual com.sun.marlin.DStroker.emitMoveTo:(DD)V
23: .line 634
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.DStroker.emitReverse:()V
24: .line 636
aload 0 /* this */
iconst_2
putfield com.sun.marlin.DStroker.prev:I
25: .line 638
aload 0 /* this */
getfield com.sun.marlin.DStroker.opened:Z
ifeq 28
26: .line 640
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.opened:Z
27: .line 641
goto 29
28: .line 642
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.DStroker.emitClose:()V
29: .line 644
StackMap locals:
StackMap stack:
return
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lcom/sun/marlin/DStroker;
private void emitReverse();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.marlin.DStroker this
0: .line 647
aload 0 /* this */
getfield com.sun.marlin.DStroker.reverse:Lcom/sun/marlin/DHelpers$PolyStack;
aload 0 /* this */
getfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
invokevirtual com.sun.marlin.DHelpers$PolyStack.popAll:(Lcom/sun/marlin/DPathConsumer2D;)V
1: .line 648
return
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
public void pathDone();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.marlin.DStroker this
0: .line 652
aload 0 /* this */
getfield com.sun.marlin.DStroker.prev:I
iconst_1
if_icmpne 2
1: .line 653
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cOutCode:I
invokevirtual com.sun.marlin.DStroker.finish:(I)V
2: .line 656
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
invokeinterface com.sun.marlin.DPathConsumer2D.pathDone:()V
3: .line 660
aload 0 /* this */
iconst_2
putfield com.sun.marlin.DStroker.prev:I
4: .line 663
aload 0 /* this */
invokevirtual com.sun.marlin.DStroker.dispose:()V
5: .line 664
return
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/marlin/DStroker;
private void finish(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=2, args_size=2
start local 0 // com.sun.marlin.DStroker this
start local 1 // int outcode
0: .line 671
aload 0 /* this */
getfield com.sun.marlin.DStroker.rdrCtx:Lcom/sun/marlin/DRendererContext;
getfield com.sun.marlin.DRendererContext.closedPath:Z
ifne 19
1: .line 672
iload 1 /* outcode */
ifne 8
2: .line 674
aload 0 /* this */
getfield com.sun.marlin.DStroker.capStyle:I
iconst_1
if_icmpne 5
3: .line 675
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
invokevirtual com.sun.marlin.DStroker.drawRoundCap:(DDDD)V
4: .line 676
goto 8
StackMap locals:
StackMap stack:
5: aload 0 /* this */
getfield com.sun.marlin.DStroker.capStyle:I
iconst_2
if_icmpne 8
6: .line 677
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
dadd
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
7: .line 678
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
dsub
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
8: .line 681
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.DStroker.emitReverse:()V
9: .line 683
aload 0 /* this */
getfield com.sun.marlin.DStroker.capStart:Z
ifne 20
10: .line 684
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.capStart:Z
11: .line 686
aload 0 /* this */
getfield com.sun.marlin.DStroker.sOutCode:I
ifne 20
12: .line 688
aload 0 /* this */
getfield com.sun.marlin.DStroker.capStyle:I
iconst_1
if_icmpne 15
13: .line 689
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.sx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.sy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
dneg
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
dneg
invokevirtual com.sun.marlin.DStroker.drawRoundCap:(DDDD)V
14: .line 690
goto 20
StackMap locals:
StackMap stack:
15: aload 0 /* this */
getfield com.sun.marlin.DStroker.capStyle:I
iconst_2
if_icmpne 20
16: .line 691
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.sx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.sy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
dsub
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
17: .line 692
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.sx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
dadd
aload 0 /* this */
getfield com.sun.marlin.DStroker.sy0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.smx:D
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.smy:D
dadd
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
18: .line 696
goto 20
19: .line 697
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.DStroker.emitReverse:()V
20: .line 699
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual com.sun.marlin.DStroker.emitClose:()V
21: .line 700
return
end local 1 // int outcode
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/marlin/DStroker;
0 22 1 outcode I
MethodParameters:
Name Flags
outcode final
private void emitMoveTo(double, double);
descriptor: (DD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x0
start local 3 // double y0
0: .line 703
aload 0 /* this */
getfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
dload 1 /* x0 */
dload 3 /* y0 */
invokeinterface com.sun.marlin.DPathConsumer2D.moveTo:(DD)V
1: .line 704
return
end local 3 // double y0
end local 1 // double x0
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
0 2 1 x0 D
0 2 3 y0 D
MethodParameters:
Name Flags
x0 final
y0 final
private void emitLineTo(double, double);
descriptor: (DD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
0: .line 707
aload 0 /* this */
getfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
dload 1 /* x1 */
dload 3 /* y1 */
invokeinterface com.sun.marlin.DPathConsumer2D.lineTo:(DD)V
1: .line 708
return
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
0 2 1 x1 D
0 2 3 y1 D
MethodParameters:
Name Flags
x1 final
y1 final
private void emitLineToRev(double, double);
descriptor: (DD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
0: .line 711
aload 0 /* this */
getfield com.sun.marlin.DStroker.reverse:Lcom/sun/marlin/DHelpers$PolyStack;
dload 1 /* x1 */
dload 3 /* y1 */
invokevirtual com.sun.marlin.DHelpers$PolyStack.pushLine:(DD)V
1: .line 712
return
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
0 2 1 x1 D
0 2 3 y1 D
MethodParameters:
Name Flags
x1 final
y1 final
private void emitLineTo(double, double, boolean);
descriptor: (DDZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // boolean rev
0: .line 717
iload 5 /* rev */
ifeq 3
1: .line 718
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
invokevirtual com.sun.marlin.DStroker.emitLineToRev:(DD)V
2: .line 719
goto 4
3: .line 720
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
4: .line 722
StackMap locals:
StackMap stack:
return
end local 5 // boolean rev
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/marlin/DStroker;
0 5 1 x1 D
0 5 3 y1 D
0 5 5 rev Z
MethodParameters:
Name Flags
x1 final
y1 final
rev final
private void emitQuadTo(double, double, double, double);
descriptor: (DDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=9, args_size=5
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
0: .line 727
aload 0 /* this */
getfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
invokeinterface com.sun.marlin.DPathConsumer2D.quadTo:(DDDD)V
1: .line 728
return
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
0 2 1 x1 D
0 2 3 y1 D
0 2 5 x2 D
0 2 7 y2 D
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
private void emitQuadToRev(double, double, double, double);
descriptor: (DDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=9, args_size=5
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x0
start local 3 // double y0
start local 5 // double x1
start local 7 // double y1
0: .line 733
aload 0 /* this */
getfield com.sun.marlin.DStroker.reverse:Lcom/sun/marlin/DHelpers$PolyStack;
dload 1 /* x0 */
dload 3 /* y0 */
dload 5 /* x1 */
dload 7 /* y1 */
invokevirtual com.sun.marlin.DHelpers$PolyStack.pushQuad:(DDDD)V
1: .line 734
return
end local 7 // double y1
end local 5 // double x1
end local 3 // double y0
end local 1 // double x0
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
0 2 1 x0 D
0 2 3 y0 D
0 2 5 x1 D
0 2 7 y1 D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
private void emitCurveTo(double, double, double, double, double, double);
descriptor: (DDDDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=13, args_size=7
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
start local 9 // double x3
start local 11 // double y3
0: .line 740
aload 0 /* this */
getfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
dload 9 /* x3 */
dload 11 /* y3 */
invokeinterface com.sun.marlin.DPathConsumer2D.curveTo:(DDDDDD)V
1: .line 741
return
end local 11 // double y3
end local 9 // double x3
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
0 2 1 x1 D
0 2 3 y1 D
0 2 5 x2 D
0 2 7 y2 D
0 2 9 x3 D
0 2 11 y3 D
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
private void emitCurveToRev(double, double, double, double, double, double);
descriptor: (DDDDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=13, args_size=7
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x0
start local 3 // double y0
start local 5 // double x1
start local 7 // double y1
start local 9 // double x2
start local 11 // double y2
0: .line 747
aload 0 /* this */
getfield com.sun.marlin.DStroker.reverse:Lcom/sun/marlin/DHelpers$PolyStack;
dload 1 /* x0 */
dload 3 /* y0 */
dload 5 /* x1 */
dload 7 /* y1 */
dload 9 /* x2 */
dload 11 /* y2 */
invokevirtual com.sun.marlin.DHelpers$PolyStack.pushCubic:(DDDDDD)V
1: .line 748
return
end local 11 // double y2
end local 9 // double x2
end local 7 // double y1
end local 5 // double x1
end local 3 // double y0
end local 1 // double x0
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
0 2 1 x0 D
0 2 3 y0 D
0 2 5 x1 D
0 2 7 y1 D
0 2 9 x2 D
0 2 11 y2 D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
private void emitCurveTo(double, double, double, double, double, double, double, double, boolean);
descriptor: (DDDDDDDDZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=18, args_size=10
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x0
start local 3 // double y0
start local 5 // double x1
start local 7 // double y1
start local 9 // double x2
start local 11 // double y2
start local 13 // double x3
start local 15 // double y3
start local 17 // boolean rev
0: .line 755
iload 17 /* rev */
ifeq 3
1: .line 756
aload 0 /* this */
getfield com.sun.marlin.DStroker.reverse:Lcom/sun/marlin/DHelpers$PolyStack;
dload 1 /* x0 */
dload 3 /* y0 */
dload 5 /* x1 */
dload 7 /* y1 */
dload 9 /* x2 */
dload 11 /* y2 */
invokevirtual com.sun.marlin.DHelpers$PolyStack.pushCubic:(DDDDDD)V
2: .line 757
goto 4
3: .line 758
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
dload 5 /* x1 */
dload 7 /* y1 */
dload 9 /* x2 */
dload 11 /* y2 */
dload 13 /* x3 */
dload 15 /* y3 */
invokeinterface com.sun.marlin.DPathConsumer2D.curveTo:(DDDDDD)V
4: .line 760
StackMap locals:
StackMap stack:
return
end local 17 // boolean rev
end local 15 // double y3
end local 13 // double x3
end local 11 // double y2
end local 9 // double x2
end local 7 // double y1
end local 5 // double x1
end local 3 // double y0
end local 1 // double x0
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/marlin/DStroker;
0 5 1 x0 D
0 5 3 y0 D
0 5 5 x1 D
0 5 7 y1 D
0 5 9 x2 D
0 5 11 y2 D
0 5 13 x3 D
0 5 15 y3 D
0 5 17 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.DStroker this
0: .line 763
aload 0 /* this */
getfield com.sun.marlin.DStroker.out:Lcom/sun/marlin/DPathConsumer2D;
invokeinterface com.sun.marlin.DPathConsumer2D.closePath:()V
1: .line 764
return
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/marlin/DStroker;
private void drawJoin(double, double, double, double, double, double, double, double, double, double, int);
descriptor: (DDDDDDDDDDI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=22, locals=23, args_size=12
start local 0 // com.sun.marlin.DStroker this
start local 1 // double pdx
start local 3 // double pdy
start local 5 // double x0
start local 7 // double y0
start local 9 // double dx
start local 11 // double dy
start local 13 // double omx
start local 15 // double omy
start local 17 // double mx
start local 19 // double my
start local 21 // int outcode
0: .line 773
aload 0 /* this */
getfield com.sun.marlin.DStroker.prev:I
iconst_1
if_icmpeq 8
1: .line 774
aload 0 /* this */
dload 5 /* x0 */
dload 17 /* mx */
dadd
dload 7 /* y0 */
dload 19 /* my */
dadd
invokevirtual com.sun.marlin.DStroker.emitMoveTo:(DD)V
2: .line 775
aload 0 /* this */
getfield com.sun.marlin.DStroker.opened:Z
ifne 18
3: .line 776
aload 0 /* this */
dload 9 /* dx */
putfield com.sun.marlin.DStroker.sdx:D
4: .line 777
aload 0 /* this */
dload 11 /* dy */
putfield com.sun.marlin.DStroker.sdy:D
5: .line 778
aload 0 /* this */
dload 17 /* mx */
putfield com.sun.marlin.DStroker.smx:D
6: .line 779
aload 0 /* this */
dload 19 /* my */
putfield com.sun.marlin.DStroker.smy:D
7: .line 781
goto 18
8: .line 782
StackMap locals:
StackMap stack:
dload 1 /* pdx */
dload 3 /* pdy */
dload 9 /* dx */
dload 11 /* dy */
invokestatic com.sun.marlin.DStroker.isCW:(DDDD)Z
istore 22 /* cw */
start local 22 // boolean cw
9: .line 783
iload 21 /* outcode */
ifne 15
10: .line 784
aload 0 /* this */
getfield com.sun.marlin.DStroker.joinStyle:I
ifne 13
11: .line 785
aload 0 /* this */
dload 1 /* pdx */
dload 3 /* pdy */
dload 5 /* x0 */
dload 7 /* y0 */
dload 9 /* dx */
dload 11 /* dy */
dload 13 /* omx */
dload 15 /* omy */
dload 17 /* mx */
dload 19 /* my */
iload 22 /* cw */
invokevirtual com.sun.marlin.DStroker.drawMiter:(DDDDDDDDDDZ)V
12: .line 786
goto 15
StackMap locals: int
StackMap stack:
13: aload 0 /* this */
getfield com.sun.marlin.DStroker.joinStyle:I
iconst_1
if_icmpne 15
14: .line 787
aload 0 /* this */
dload 5 /* x0 */
dload 7 /* y0 */
dload 13 /* omx */
dload 15 /* omy */
dload 17 /* mx */
dload 19 /* my */
iload 22 /* cw */
invokevirtual com.sun.marlin.DStroker.mayDrawRoundJoin:(DDDDDDZ)V
15: .line 790
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 5 /* x0 */
dload 7 /* y0 */
iload 22 /* cw */
ifeq 16
iconst_0
goto 17
StackMap locals: com.sun.marlin.DStroker double double double double double double double double double double int int
StackMap stack: com.sun.marlin.DStroker double double
16: iconst_1
StackMap locals: com.sun.marlin.DStroker double double double double double double double double double double int int
StackMap stack: com.sun.marlin.DStroker double double int
17: invokevirtual com.sun.marlin.DStroker.emitLineTo:(DDZ)V
end local 22 // boolean cw
18: .line 792
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.prev:I
19: .line 793
return
end local 21 // int outcode
end local 19 // double my
end local 17 // double mx
end local 15 // double omy
end local 13 // double omx
end local 11 // double dy
end local 9 // double dx
end local 7 // double y0
end local 5 // double x0
end local 3 // double pdy
end local 1 // double pdx
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/sun/marlin/DStroker;
0 20 1 pdx D
0 20 3 pdy D
0 20 5 x0 D
0 20 7 y0 D
0 20 9 dx D
0 20 11 dy D
0 20 13 omx D
0 20 15 omy D
0 20 17 mx D
0 20 19 my D
0 20 21 outcode I
9 18 22 cw Z
MethodParameters:
Name Flags
pdx
pdy
x0
y0
dx
dy
omx
omy
mx
my
outcode final
private static boolean within(double, double, double, double, double);
descriptor: (DDDDD)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=10, args_size=5
start local 0 // double x1
start local 2 // double y1
start local 4 // double x2
start local 6 // double y2
start local 8 // double err
0: .line 799
getstatic com.sun.marlin.DStroker.$assertionsDisabled:Z
ifne 1
dload 8 /* err */
dconst_0
dcmpl
ifgt 1
new java.lang.AssertionError
dup
ldc ""
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: .line 802
StackMap locals:
StackMap stack:
dload 0 /* x1 */
dload 4 /* x2 */
dload 8 /* err */
invokestatic com.sun.marlin.DHelpers.within:(DDD)Z
ifeq 4
2: .line 803
dload 2 /* y1 */
dload 6 /* y2 */
dload 8 /* err */
invokestatic com.sun.marlin.DHelpers.within:(DDD)Z
ifeq 4
3: .line 802
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 8 // double err
end local 6 // double y2
end local 4 // double x2
end local 2 // double y1
end local 0 // double x1
LocalVariableTable:
Start End Slot Name Signature
0 5 0 x1 D
0 5 2 y1 D
0 5 4 x2 D
0 5 6 y2 D
0 5 8 err D
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
err final
private void getLineOffsets(double, double, double, double, double[], double[]);
descriptor: (DDDD[D[D)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=15, args_size=7
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
start local 9 // double[] left
start local 10 // double[] right
0: .line 810
dload 5 /* x2 */
dload 1 /* x1 */
dsub
dload 7 /* y2 */
dload 3 /* y1 */
dsub
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
1: .line 811
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_0
daload
dstore 11 /* mx */
start local 11 // double mx
2: .line 812
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_1
daload
dstore 13 /* my */
start local 13 // double my
3: .line 813
aload 9 /* left */
iconst_0
dload 1 /* x1 */
dload 11 /* mx */
dadd
dastore
4: .line 814
aload 9 /* left */
iconst_1
dload 3 /* y1 */
dload 13 /* my */
dadd
dastore
5: .line 815
aload 9 /* left */
iconst_2
dload 5 /* x2 */
dload 11 /* mx */
dadd
dastore
6: .line 816
aload 9 /* left */
iconst_3
dload 7 /* y2 */
dload 13 /* my */
dadd
dastore
7: .line 818
aload 10 /* right */
iconst_0
dload 1 /* x1 */
dload 11 /* mx */
dsub
dastore
8: .line 819
aload 10 /* right */
iconst_1
dload 3 /* y1 */
dload 13 /* my */
dsub
dastore
9: .line 820
aload 10 /* right */
iconst_2
dload 5 /* x2 */
dload 11 /* mx */
dsub
dastore
10: .line 821
aload 10 /* right */
iconst_3
dload 7 /* y2 */
dload 13 /* my */
dsub
dastore
11: .line 822
return
end local 13 // double my
end local 11 // double mx
end local 10 // double[] right
end local 9 // double[] left
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/marlin/DStroker;
0 12 1 x1 D
0 12 3 y1 D
0 12 5 x2 D
0 12 7 y2 D
0 12 9 left [D
0 12 10 right [D
2 12 11 mx D
3 12 13 my D
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
left final
right final
private int computeOffsetCubic(double[], int, double[], double[]);
descriptor: ([DI[D[D)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=75, args_size=5
start local 0 // com.sun.marlin.DStroker this
start local 1 // double[] pts
start local 2 // int off
start local 3 // double[] leftOff
start local 4 // double[] rightOff
0: .line 835
aload 1 /* pts */
iload 2 /* off */
daload
dstore 5 /* x1 */
start local 5 // double x1
1: aload 1 /* pts */
iload 2 /* off */
iconst_1
iadd
daload
dstore 7 /* y1 */
start local 7 // double y1
2: .line 836
aload 1 /* pts */
iload 2 /* off */
iconst_2
iadd
daload
dstore 9 /* x2 */
start local 9 // double x2
3: aload 1 /* pts */
iload 2 /* off */
iconst_3
iadd
daload
dstore 11 /* y2 */
start local 11 // double y2
4: .line 837
aload 1 /* pts */
iload 2 /* off */
iconst_4
iadd
daload
dstore 13 /* x3 */
start local 13 // double x3
5: aload 1 /* pts */
iload 2 /* off */
iconst_5
iadd
daload
dstore 15 /* y3 */
start local 15 // double y3
6: .line 838
aload 1 /* pts */
iload 2 /* off */
bipush 6
iadd
daload
dstore 17 /* x4 */
start local 17 // double x4
7: aload 1 /* pts */
iload 2 /* off */
bipush 7
iadd
daload
dstore 19 /* y4 */
start local 19 // double y4
8: .line 840
dload 17 /* x4 */
dload 13 /* x3 */
dsub
dstore 21 /* dx4 */
start local 21 // double dx4
9: .line 841
dload 19 /* y4 */
dload 15 /* y3 */
dsub
dstore 23 /* dy4 */
start local 23 // double dy4
10: .line 842
dload 9 /* x2 */
dload 5 /* x1 */
dsub
dstore 25 /* dx1 */
start local 25 // double dx1
11: .line 843
dload 11 /* y2 */
dload 7 /* y1 */
dsub
dstore 27 /* dy1 */
start local 27 // double dy1
12: .line 847
dload 5 /* x1 */
dload 7 /* y1 */
dload 9 /* x2 */
dload 11 /* y2 */
ldc 6.0
dload 11 /* y2 */
invokestatic java.lang.Math.ulp:(D)D
dmul
invokestatic com.sun.marlin.DStroker.within:(DDDDD)Z
istore 29 /* p1eqp2 */
start local 29 // boolean p1eqp2
13: .line 848
dload 13 /* x3 */
dload 15 /* y3 */
dload 17 /* x4 */
dload 19 /* y4 */
ldc 6.0
dload 19 /* y4 */
invokestatic java.lang.Math.ulp:(D)D
dmul
invokestatic com.sun.marlin.DStroker.within:(DDDDD)Z
istore 30 /* p3eqp4 */
start local 30 // boolean p3eqp4
14: .line 850
iload 29 /* p1eqp2 */
ifeq 17
iload 30 /* p3eqp4 */
ifeq 17
15: .line 851
aload 0 /* this */
dload 5 /* x1 */
dload 7 /* y1 */
dload 17 /* x4 */
dload 19 /* y4 */
aload 3 /* leftOff */
aload 4 /* rightOff */
invokevirtual com.sun.marlin.DStroker.getLineOffsets:(DDDD[D[D)V
16: .line 852
iconst_4
ireturn
17: .line 853
StackMap locals: com.sun.marlin.DStroker double[] int double[] double[] double double double double double double double double double double double double int int
StackMap stack:
iload 29 /* p1eqp2 */
ifeq 21
18: .line 854
dload 13 /* x3 */
dload 5 /* x1 */
dsub
dstore 25 /* dx1 */
19: .line 855
dload 15 /* y3 */
dload 7 /* y1 */
dsub
dstore 27 /* dy1 */
20: .line 856
goto 24
StackMap locals:
StackMap stack:
21: iload 30 /* p3eqp4 */
ifeq 24
22: .line 857
dload 17 /* x4 */
dload 9 /* x2 */
dsub
dstore 21 /* dx4 */
23: .line 858
dload 19 /* y4 */
dload 11 /* y2 */
dsub
dstore 23 /* dy4 */
24: .line 862
StackMap locals:
StackMap stack:
dload 25 /* dx1 */
dload 21 /* dx4 */
dmul
dload 27 /* dy1 */
dload 23 /* dy4 */
dmul
dadd
dstore 31 /* dotsq */
start local 31 // double dotsq
25: .line 863
dload 31 /* dotsq */
dload 31 /* dotsq */
dmul
dstore 31 /* dotsq */
26: .line 864
dload 25 /* dx1 */
dload 25 /* dx1 */
dmul
dload 27 /* dy1 */
dload 27 /* dy1 */
dmul
dadd
dstore 33 /* l1sq */
start local 33 // double l1sq
27: dload 21 /* dx4 */
dload 21 /* dx4 */
dmul
dload 23 /* dy4 */
dload 23 /* dy4 */
dmul
dadd
dstore 35 /* l4sq */
start local 35 // double l4sq
28: .line 866
dload 31 /* dotsq */
dload 33 /* l1sq */
dload 35 /* l4sq */
dmul
ldc 4.0
dload 31 /* dotsq */
invokestatic java.lang.Math.ulp:(D)D
dmul
invokestatic com.sun.marlin.DHelpers.within:(DDD)Z
ifeq 31
29: .line 867
aload 0 /* this */
dload 5 /* x1 */
dload 7 /* y1 */
dload 17 /* x4 */
dload 19 /* y4 */
aload 3 /* leftOff */
aload 4 /* rightOff */
invokevirtual com.sun.marlin.DStroker.getLineOffsets:(DDDD[D[D)V
30: .line 868
iconst_4
ireturn
31: .line 918
StackMap locals: double double double
StackMap stack:
dload 5 /* x1 */
ldc 3.0
dload 9 /* x2 */
dload 13 /* x3 */
dadd
dmul
dadd
dload 17 /* x4 */
dadd
ldc 8.0
ddiv
dstore 37 /* x */
start local 37 // double x
32: .line 919
dload 7 /* y1 */
ldc 3.0
dload 11 /* y2 */
dload 15 /* y3 */
dadd
dmul
dadd
dload 19 /* y4 */
dadd
ldc 8.0
ddiv
dstore 39 /* y */
start local 39 // double y
33: .line 922
dload 13 /* x3 */
dload 17 /* x4 */
dadd
dload 5 /* x1 */
dsub
dload 9 /* x2 */
dsub
dstore 41 /* dxm */
start local 41 // double dxm
34: dload 15 /* y3 */
dload 19 /* y4 */
dadd
dload 7 /* y1 */
dsub
dload 11 /* y2 */
dsub
dstore 43 /* dym */
start local 43 // double dym
35: .line 927
dload 25 /* dx1 */
dload 27 /* dy1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
36: .line 928
dload 41 /* dxm */
dload 43 /* dym */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
37: .line 929
dload 21 /* dx4 */
dload 23 /* dy4 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset2:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
38: .line 930
dload 5 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_0
daload
dadd
dstore 45 /* x1p */
start local 45 // double x1p
39: .line 931
dload 7 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_1
daload
dadd
dstore 47 /* y1p */
start local 47 // double y1p
40: .line 932
dload 37 /* x */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
iconst_0
daload
dadd
dstore 49 /* xi */
start local 49 // double xi
41: .line 933
dload 39 /* y */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
iconst_1
daload
dadd
dstore 51 /* yi */
start local 51 // double yi
42: .line 934
dload 17 /* x4 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset2:[D
iconst_0
daload
dadd
dstore 53 /* x4p */
start local 53 // double x4p
43: .line 935
dload 19 /* y4 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset2:[D
iconst_1
daload
dadd
dstore 55 /* y4p */
start local 55 // double y4p
44: .line 937
ldc 4.0
ldc 3.0
dload 25 /* dx1 */
dload 23 /* dy4 */
dmul
dload 27 /* dy1 */
dload 21 /* dx4 */
dmul
dsub
dmul
ddiv
dstore 57 /* invdet43 */
start local 57 // double invdet43
45: .line 939
ldc 2.0
dload 49 /* xi */
dmul
dload 45 /* x1p */
dsub
dload 53 /* x4p */
dsub
dstore 59 /* two_pi_m_p1_m_p4x */
start local 59 // double two_pi_m_p1_m_p4x
46: .line 940
ldc 2.0
dload 51 /* yi */
dmul
dload 47 /* y1p */
dsub
dload 55 /* y4p */
dsub
dstore 61 /* two_pi_m_p1_m_p4y */
start local 61 // double two_pi_m_p1_m_p4y
47: .line 941
dload 57 /* invdet43 */
dload 23 /* dy4 */
dload 59 /* two_pi_m_p1_m_p4x */
dmul
dload 21 /* dx4 */
dload 61 /* two_pi_m_p1_m_p4y */
dmul
dsub
dmul
dstore 63 /* c1 */
start local 63 // double c1
48: .line 942
dload 57 /* invdet43 */
dload 25 /* dx1 */
dload 61 /* two_pi_m_p1_m_p4y */
dmul
dload 27 /* dy1 */
dload 59 /* two_pi_m_p1_m_p4x */
dmul
dsub
dmul
dstore 65 /* c2 */
start local 65 // double c2
49: .line 945
dload 45 /* x1p */
dload 63 /* c1 */
dload 25 /* dx1 */
dmul
dadd
dstore 67 /* x2p */
start local 67 // double x2p
50: .line 946
dload 47 /* y1p */
dload 63 /* c1 */
dload 27 /* dy1 */
dmul
dadd
dstore 69 /* y2p */
start local 69 // double y2p
51: .line 947
dload 53 /* x4p */
dload 65 /* c2 */
dload 21 /* dx4 */
dmul
dadd
dstore 71 /* x3p */
start local 71 // double x3p
52: .line 948
dload 55 /* y4p */
dload 65 /* c2 */
dload 23 /* dy4 */
dmul
dadd
dstore 73 /* y3p */
start local 73 // double y3p
53: .line 950
aload 3 /* leftOff */
iconst_0
dload 45 /* x1p */
dastore
aload 3 /* leftOff */
iconst_1
dload 47 /* y1p */
dastore
54: .line 951
aload 3 /* leftOff */
iconst_2
dload 67 /* x2p */
dastore
aload 3 /* leftOff */
iconst_3
dload 69 /* y2p */
dastore
55: .line 952
aload 3 /* leftOff */
iconst_4
dload 71 /* x3p */
dastore
aload 3 /* leftOff */
iconst_5
dload 73 /* y3p */
dastore
56: .line 953
aload 3 /* leftOff */
bipush 6
dload 53 /* x4p */
dastore
aload 3 /* leftOff */
bipush 7
dload 55 /* y4p */
dastore
57: .line 955
dload 5 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_0
daload
dsub
dstore 45 /* x1p */
dload 7 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_1
daload
dsub
dstore 47 /* y1p */
58: .line 956
dload 49 /* xi */
ldc 2.0
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
iconst_0
daload
dmul
dsub
dstore 49 /* xi */
dload 51 /* yi */
ldc 2.0
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
iconst_1
daload
dmul
dsub
dstore 51 /* yi */
59: .line 957
dload 17 /* x4 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset2:[D
iconst_0
daload
dsub
dstore 53 /* x4p */
dload 19 /* y4 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset2:[D
iconst_1
daload
dsub
dstore 55 /* y4p */
60: .line 959
ldc 2.0
dload 49 /* xi */
dmul
dload 45 /* x1p */
dsub
dload 53 /* x4p */
dsub
dstore 59 /* two_pi_m_p1_m_p4x */
61: .line 960
ldc 2.0
dload 51 /* yi */
dmul
dload 47 /* y1p */
dsub
dload 55 /* y4p */
dsub
dstore 61 /* two_pi_m_p1_m_p4y */
62: .line 961
dload 57 /* invdet43 */
dload 23 /* dy4 */
dload 59 /* two_pi_m_p1_m_p4x */
dmul
dload 21 /* dx4 */
dload 61 /* two_pi_m_p1_m_p4y */
dmul
dsub
dmul
dstore 63 /* c1 */
63: .line 962
dload 57 /* invdet43 */
dload 25 /* dx1 */
dload 61 /* two_pi_m_p1_m_p4y */
dmul
dload 27 /* dy1 */
dload 59 /* two_pi_m_p1_m_p4x */
dmul
dsub
dmul
dstore 65 /* c2 */
64: .line 964
dload 45 /* x1p */
dload 63 /* c1 */
dload 25 /* dx1 */
dmul
dadd
dstore 67 /* x2p */
65: .line 965
dload 47 /* y1p */
dload 63 /* c1 */
dload 27 /* dy1 */
dmul
dadd
dstore 69 /* y2p */
66: .line 966
dload 53 /* x4p */
dload 65 /* c2 */
dload 21 /* dx4 */
dmul
dadd
dstore 71 /* x3p */
67: .line 967
dload 55 /* y4p */
dload 65 /* c2 */
dload 23 /* dy4 */
dmul
dadd
dstore 73 /* y3p */
68: .line 969
aload 4 /* rightOff */
iconst_0
dload 45 /* x1p */
dastore
aload 4 /* rightOff */
iconst_1
dload 47 /* y1p */
dastore
69: .line 970
aload 4 /* rightOff */
iconst_2
dload 67 /* x2p */
dastore
aload 4 /* rightOff */
iconst_3
dload 69 /* y2p */
dastore
70: .line 971
aload 4 /* rightOff */
iconst_4
dload 71 /* x3p */
dastore
aload 4 /* rightOff */
iconst_5
dload 73 /* y3p */
dastore
71: .line 972
aload 4 /* rightOff */
bipush 6
dload 53 /* x4p */
dastore
aload 4 /* rightOff */
bipush 7
dload 55 /* y4p */
dastore
72: .line 973
bipush 8
ireturn
end local 73 // double y3p
end local 71 // double x3p
end local 69 // double y2p
end local 67 // double x2p
end local 65 // double c2
end local 63 // double c1
end local 61 // double two_pi_m_p1_m_p4y
end local 59 // double two_pi_m_p1_m_p4x
end local 57 // double invdet43
end local 55 // double y4p
end local 53 // double x4p
end local 51 // double yi
end local 49 // double xi
end local 47 // double y1p
end local 45 // double x1p
end local 43 // double dym
end local 41 // double dxm
end local 39 // double y
end local 37 // double x
end local 35 // double l4sq
end local 33 // double l1sq
end local 31 // double dotsq
end local 30 // boolean p3eqp4
end local 29 // boolean p1eqp2
end local 27 // double dy1
end local 25 // double dx1
end local 23 // double dy4
end local 21 // double dx4
end local 19 // double y4
end local 17 // double x4
end local 15 // double y3
end local 13 // double x3
end local 11 // double y2
end local 9 // double x2
end local 7 // double y1
end local 5 // double x1
end local 4 // double[] rightOff
end local 3 // double[] leftOff
end local 2 // int off
end local 1 // double[] pts
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 73 0 this Lcom/sun/marlin/DStroker;
0 73 1 pts [D
0 73 2 off I
0 73 3 leftOff [D
0 73 4 rightOff [D
1 73 5 x1 D
2 73 7 y1 D
3 73 9 x2 D
4 73 11 y2 D
5 73 13 x3 D
6 73 15 y3 D
7 73 17 x4 D
8 73 19 y4 D
9 73 21 dx4 D
10 73 23 dy4 D
11 73 25 dx1 D
12 73 27 dy1 D
13 73 29 p1eqp2 Z
14 73 30 p3eqp4 Z
25 73 31 dotsq D
27 73 33 l1sq D
28 73 35 l4sq D
32 73 37 x D
33 73 39 y D
34 73 41 dxm D
35 73 43 dym D
39 73 45 x1p D
40 73 47 y1p D
41 73 49 xi D
42 73 51 yi D
43 73 53 x4p D
44 73 55 y4p D
45 73 57 invdet43 D
46 73 59 two_pi_m_p1_m_p4x D
47 73 61 two_pi_m_p1_m_p4y D
48 73 63 c1 D
49 73 65 c2 D
50 73 67 x2p D
51 73 69 y2p D
52 73 71 x3p D
53 73 73 y3p D
MethodParameters:
Name Flags
pts final
off final
leftOff final
rightOff final
private int computeOffsetQuad(double[], int, double[], double[]);
descriptor: ([DI[D[D)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=18, locals=41, args_size=5
start local 0 // com.sun.marlin.DStroker this
start local 1 // double[] pts
start local 2 // int off
start local 3 // double[] leftOff
start local 4 // double[] rightOff
0: .line 983
aload 1 /* pts */
iload 2 /* off */
daload
dstore 5 /* x1 */
start local 5 // double x1
1: aload 1 /* pts */
iload 2 /* off */
iconst_1
iadd
daload
dstore 7 /* y1 */
start local 7 // double y1
2: .line 984
aload 1 /* pts */
iload 2 /* off */
iconst_2
iadd
daload
dstore 9 /* x2 */
start local 9 // double x2
3: aload 1 /* pts */
iload 2 /* off */
iconst_3
iadd
daload
dstore 11 /* y2 */
start local 11 // double y2
4: .line 985
aload 1 /* pts */
iload 2 /* off */
iconst_4
iadd
daload
dstore 13 /* x3 */
start local 13 // double x3
5: aload 1 /* pts */
iload 2 /* off */
iconst_5
iadd
daload
dstore 15 /* y3 */
start local 15 // double y3
6: .line 987
dload 13 /* x3 */
dload 9 /* x2 */
dsub
dstore 17 /* dx3 */
start local 17 // double dx3
7: .line 988
dload 15 /* y3 */
dload 11 /* y2 */
dsub
dstore 19 /* dy3 */
start local 19 // double dy3
8: .line 989
dload 9 /* x2 */
dload 5 /* x1 */
dsub
dstore 21 /* dx1 */
start local 21 // double dx1
9: .line 990
dload 11 /* y2 */
dload 7 /* y1 */
dsub
dstore 23 /* dy1 */
start local 23 // double dy1
10: .line 1002
dload 5 /* x1 */
dload 7 /* y1 */
dload 9 /* x2 */
dload 11 /* y2 */
ldc 6.0
dload 11 /* y2 */
invokestatic java.lang.Math.ulp:(D)D
dmul
invokestatic com.sun.marlin.DStroker.within:(DDDDD)Z
istore 25 /* p1eqp2 */
start local 25 // boolean p1eqp2
11: .line 1003
dload 9 /* x2 */
dload 11 /* y2 */
dload 13 /* x3 */
dload 15 /* y3 */
ldc 6.0
dload 15 /* y3 */
invokestatic java.lang.Math.ulp:(D)D
dmul
invokestatic com.sun.marlin.DStroker.within:(DDDDD)Z
istore 26 /* p2eqp3 */
start local 26 // boolean p2eqp3
12: .line 1005
iload 25 /* p1eqp2 */
ifne 13
iload 26 /* p2eqp3 */
ifeq 15
13: .line 1006
StackMap locals: com.sun.marlin.DStroker double[] int double[] double[] double double double double double double double double double double int int
StackMap stack:
aload 0 /* this */
dload 5 /* x1 */
dload 7 /* y1 */
dload 13 /* x3 */
dload 15 /* y3 */
aload 3 /* leftOff */
aload 4 /* rightOff */
invokevirtual com.sun.marlin.DStroker.getLineOffsets:(DDDD[D[D)V
14: .line 1007
iconst_4
ireturn
15: .line 1011
StackMap locals:
StackMap stack:
dload 21 /* dx1 */
dload 17 /* dx3 */
dmul
dload 23 /* dy1 */
dload 19 /* dy3 */
dmul
dadd
dstore 27 /* dotsq */
start local 27 // double dotsq
16: .line 1012
dload 27 /* dotsq */
dload 27 /* dotsq */
dmul
dstore 27 /* dotsq */
17: .line 1013
dload 21 /* dx1 */
dload 21 /* dx1 */
dmul
dload 23 /* dy1 */
dload 23 /* dy1 */
dmul
dadd
dstore 29 /* l1sq */
start local 29 // double l1sq
18: dload 17 /* dx3 */
dload 17 /* dx3 */
dmul
dload 19 /* dy3 */
dload 19 /* dy3 */
dmul
dadd
dstore 31 /* l3sq */
start local 31 // double l3sq
19: .line 1015
dload 27 /* dotsq */
dload 29 /* l1sq */
dload 31 /* l3sq */
dmul
ldc 4.0
dload 27 /* dotsq */
invokestatic java.lang.Math.ulp:(D)D
dmul
invokestatic com.sun.marlin.DHelpers.within:(DDD)Z
ifeq 22
20: .line 1016
aload 0 /* this */
dload 5 /* x1 */
dload 7 /* y1 */
dload 13 /* x3 */
dload 15 /* y3 */
aload 3 /* leftOff */
aload 4 /* rightOff */
invokevirtual com.sun.marlin.DStroker.getLineOffsets:(DDDD[D[D)V
21: .line 1017
iconst_4
ireturn
22: .line 1023
StackMap locals: double double double
StackMap stack:
dload 21 /* dx1 */
dload 23 /* dy1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
23: .line 1024
dload 17 /* dx3 */
dload 19 /* dy3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
24: .line 1026
dload 5 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_0
daload
dadd
dstore 33 /* x1p */
start local 33 // double x1p
25: .line 1027
dload 7 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_1
daload
dadd
dstore 35 /* y1p */
start local 35 // double y1p
26: .line 1028
dload 13 /* x3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
iconst_0
daload
dadd
dstore 37 /* x3p */
start local 37 // double x3p
27: .line 1029
dload 15 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
iconst_1
daload
dadd
dstore 39 /* y3p */
start local 39 // double y3p
28: .line 1030
dload 33 /* x1p */
dload 35 /* y1p */
dload 33 /* x1p */
dload 21 /* dx1 */
dadd
dload 35 /* y1p */
dload 23 /* dy1 */
dadd
dload 37 /* x3p */
dload 39 /* y3p */
dload 37 /* x3p */
dload 17 /* dx3 */
dsub
dload 39 /* y3p */
dload 19 /* dy3 */
dsub
aload 3 /* leftOff */
invokestatic com.sun.marlin.DStroker.safeComputeMiter:(DDDDDDDD[D)V
29: .line 1031
aload 3 /* leftOff */
iconst_0
dload 33 /* x1p */
dastore
aload 3 /* leftOff */
iconst_1
dload 35 /* y1p */
dastore
30: .line 1032
aload 3 /* leftOff */
iconst_4
dload 37 /* x3p */
dastore
aload 3 /* leftOff */
iconst_5
dload 39 /* y3p */
dastore
31: .line 1034
dload 5 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_0
daload
dsub
dstore 33 /* x1p */
dload 7 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_1
daload
dsub
dstore 35 /* y1p */
32: .line 1035
dload 13 /* x3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
iconst_0
daload
dsub
dstore 37 /* x3p */
dload 15 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset1:[D
iconst_1
daload
dsub
dstore 39 /* y3p */
33: .line 1036
dload 33 /* x1p */
dload 35 /* y1p */
dload 33 /* x1p */
dload 21 /* dx1 */
dadd
dload 35 /* y1p */
dload 23 /* dy1 */
dadd
dload 37 /* x3p */
dload 39 /* y3p */
dload 37 /* x3p */
dload 17 /* dx3 */
dsub
dload 39 /* y3p */
dload 19 /* dy3 */
dsub
aload 4 /* rightOff */
invokestatic com.sun.marlin.DStroker.safeComputeMiter:(DDDDDDDD[D)V
34: .line 1037
aload 4 /* rightOff */
iconst_0
dload 33 /* x1p */
dastore
aload 4 /* rightOff */
iconst_1
dload 35 /* y1p */
dastore
35: .line 1038
aload 4 /* rightOff */
iconst_4
dload 37 /* x3p */
dastore
aload 4 /* rightOff */
iconst_5
dload 39 /* y3p */
dastore
36: .line 1039
bipush 6
ireturn
end local 39 // double y3p
end local 37 // double x3p
end local 35 // double y1p
end local 33 // double x1p
end local 31 // double l3sq
end local 29 // double l1sq
end local 27 // double dotsq
end local 26 // boolean p2eqp3
end local 25 // boolean p1eqp2
end local 23 // double dy1
end local 21 // double dx1
end local 19 // double dy3
end local 17 // double dx3
end local 15 // double y3
end local 13 // double x3
end local 11 // double y2
end local 9 // double x2
end local 7 // double y1
end local 5 // double x1
end local 4 // double[] rightOff
end local 3 // double[] leftOff
end local 2 // int off
end local 1 // double[] pts
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/marlin/DStroker;
0 37 1 pts [D
0 37 2 off I
0 37 3 leftOff [D
0 37 4 rightOff [D
1 37 5 x1 D
2 37 7 y1 D
3 37 9 x2 D
4 37 11 y2 D
5 37 13 x3 D
6 37 15 y3 D
7 37 17 dx3 D
8 37 19 dy3 D
9 37 21 dx1 D
10 37 23 dy1 D
11 37 25 p1eqp2 Z
12 37 26 p2eqp3 Z
16 37 27 dotsq D
18 37 29 l1sq D
19 37 31 l3sq D
25 37 33 x1p D
26 37 35 y1p D
27 37 37 x3p D
28 37 39 y3p D
MethodParameters:
Name Flags
pts final
off final
leftOff final
rightOff final
public void curveTo(double, double, double, double, double, double);
descriptor: (DDDDDD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=19, locals=20, args_size=7
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
start local 9 // double x3
start local 11 // double y3
0: .line 1047
aload 0 /* this */
getfield com.sun.marlin.DStroker.cOutCode:I
istore 13 /* outcode0 */
start local 13 // int outcode0
1: .line 1049
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
ifnull 23
2: .line 1050
dload 1 /* x1 */
dload 3 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
invokestatic com.sun.marlin.DHelpers.outcode:(DD[D)I
istore 14 /* outcode1 */
start local 14 // int outcode1
3: .line 1051
dload 5 /* x2 */
dload 7 /* y2 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
invokestatic com.sun.marlin.DHelpers.outcode:(DD[D)I
istore 15 /* outcode2 */
start local 15 // int outcode2
4: .line 1052
dload 9 /* x3 */
dload 11 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
invokestatic com.sun.marlin.DHelpers.outcode:(DD[D)I
istore 16 /* outcode3 */
start local 16 // int outcode3
5: .line 1055
iload 13 /* outcode0 */
iload 14 /* outcode1 */
ior
iload 15 /* outcode2 */
ior
iload 16 /* outcode3 */
ior
istore 17 /* orCode */
start local 17 // int orCode
6: .line 1056
iload 17 /* orCode */
ifeq 22
7: .line 1057
iload 13 /* outcode0 */
iload 14 /* outcode1 */
iand
iload 15 /* outcode2 */
iand
iload 16 /* outcode3 */
iand
istore 18 /* sideCode */
start local 18 // int sideCode
8: .line 1060
iload 18 /* sideCode */
ifne 18
9: .line 1062
aload 0 /* this */
getfield com.sun.marlin.DStroker.subdivide:Z
ifeq 22
10: .line 1064
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.subdivide:Z
11: .line 1066
aload 0 /* this */
getfield com.sun.marlin.DStroker.curveSplitter:Lcom/sun/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
12: .line 1067
dload 5 /* x2 */
dload 7 /* y2 */
dload 9 /* x3 */
dload 11 /* y3 */
13: .line 1068
iload 17 /* orCode */
aload 0 /* this */
14: .line 1066
invokevirtual com.sun.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitCurve:(DDDDDDDDILcom/sun/marlin/DPathConsumer2D;)Z
istore 19 /* ret */
start local 19 // boolean ret
15: .line 1070
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.subdivide:Z
16: .line 1071
iload 19 /* ret */
ifeq 22
17: .line 1072
return
end local 19 // boolean ret
18: .line 1077
StackMap locals: com.sun.marlin.DStroker double double double double double double int int int int int int
StackMap stack:
aload 0 /* this */
iload 16 /* outcode3 */
putfield com.sun.marlin.DStroker.cOutCode:I
19: .line 1078
aload 0 /* this */
dload 9 /* x3 */
dload 11 /* y3 */
iload 13 /* outcode0 */
invokevirtual com.sun.marlin.DStroker._moveTo:(DDI)V
20: .line 1079
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.opened:Z
21: .line 1080
return
end local 18 // int sideCode
22: .line 1084
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 16 /* outcode3 */
putfield com.sun.marlin.DStroker.cOutCode:I
end local 17 // int orCode
end local 16 // int outcode3
end local 15 // int outcode2
end local 14 // int outcode1
23: .line 1086
StackMap locals: com.sun.marlin.DStroker double double double double double double int
StackMap stack:
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
dload 9 /* x3 */
dload 11 /* y3 */
iload 13 /* outcode0 */
invokevirtual com.sun.marlin.DStroker._curveTo:(DDDDDDI)V
24: .line 1087
return
end local 13 // int outcode0
end local 11 // double y3
end local 9 // double x3
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/sun/marlin/DStroker;
0 25 1 x1 D
0 25 3 y1 D
0 25 5 x2 D
0 25 7 y2 D
0 25 9 x3 D
0 25 11 y3 D
1 25 13 outcode0 I
3 23 14 outcode1 I
4 23 15 outcode2 I
5 23 16 outcode3 I
6 23 17 orCode I
8 22 18 sideCode I
15 18 19 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
private void _curveTo(double, double, double, double, double, double, int);
descriptor: (DDDDDDI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=22, locals=29, args_size=8
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
start local 9 // double x3
start local 11 // double y3
start local 13 // int outcode0
0: .line 1095
dload 1 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dsub
dstore 14 /* dxs */
start local 14 // double dxs
1: .line 1096
dload 3 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dsub
dstore 16 /* dys */
start local 16 // double dys
2: .line 1097
dload 9 /* x3 */
dload 5 /* x2 */
dsub
dstore 18 /* dxf */
start local 18 // double dxf
3: .line 1098
dload 11 /* y3 */
dload 7 /* y2 */
dsub
dstore 20 /* dyf */
start local 20 // double dyf
4: .line 1100
dload 14 /* dxs */
dconst_0
dcmpl
ifne 10
dload 16 /* dys */
dconst_0
dcmpl
ifne 10
5: .line 1101
dload 5 /* x2 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dsub
dstore 14 /* dxs */
6: .line 1102
dload 7 /* y2 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dsub
dstore 16 /* dys */
7: .line 1103
dload 14 /* dxs */
dconst_0
dcmpl
ifne 10
dload 16 /* dys */
dconst_0
dcmpl
ifne 10
8: .line 1104
dload 9 /* x3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dsub
dstore 14 /* dxs */
9: .line 1105
dload 11 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dsub
dstore 16 /* dys */
10: .line 1108
StackMap locals: com.sun.marlin.DStroker double double double double double double int double double double double
StackMap stack:
dload 18 /* dxf */
dconst_0
dcmpl
ifne 16
dload 20 /* dyf */
dconst_0
dcmpl
ifne 16
11: .line 1109
dload 9 /* x3 */
dload 1 /* x1 */
dsub
dstore 18 /* dxf */
12: .line 1110
dload 11 /* y3 */
dload 3 /* y1 */
dsub
dstore 20 /* dyf */
13: .line 1111
dload 18 /* dxf */
dconst_0
dcmpl
ifne 16
dload 20 /* dyf */
dconst_0
dcmpl
ifne 16
14: .line 1112
dload 9 /* x3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dsub
dstore 18 /* dxf */
15: .line 1113
dload 11 /* y3 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dsub
dstore 20 /* dyf */
16: .line 1116
StackMap locals:
StackMap stack:
dload 14 /* dxs */
dconst_0
dcmpl
ifne 21
dload 16 /* dys */
dconst_0
dcmpl
ifne 21
17: .line 1119
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
ifnull 19
18: .line 1120
aload 0 /* this */
iload 13 /* outcode0 */
putfield com.sun.marlin.DStroker.cOutCode:I
19: .line 1122
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
invokevirtual com.sun.marlin.DStroker.lineTo:(DD)V
20: .line 1123
return
21: .line 1128
StackMap locals:
StackMap stack:
dload 14 /* dxs */
invokestatic java.lang.Math.abs:(D)D
ldc 0.1
dcmpg
ifge 25
dload 16 /* dys */
invokestatic java.lang.Math.abs:(D)D
ldc 0.1
dcmpg
ifge 25
22: .line 1129
dload 14 /* dxs */
dload 14 /* dxs */
dmul
dload 16 /* dys */
dload 16 /* dys */
dmul
dadd
invokestatic java.lang.Math.sqrt:(D)D
dstore 22 /* len */
start local 22 // double len
23: .line 1130
dload 14 /* dxs */
dload 22 /* len */
ddiv
dstore 14 /* dxs */
24: .line 1131
dload 16 /* dys */
dload 22 /* len */
ddiv
dstore 16 /* dys */
end local 22 // double len
25: .line 1133
StackMap locals:
StackMap stack:
dload 18 /* dxf */
invokestatic java.lang.Math.abs:(D)D
ldc 0.1
dcmpg
ifge 29
dload 20 /* dyf */
invokestatic java.lang.Math.abs:(D)D
ldc 0.1
dcmpg
ifge 29
26: .line 1134
dload 18 /* dxf */
dload 18 /* dxf */
dmul
dload 20 /* dyf */
dload 20 /* dyf */
dmul
dadd
invokestatic java.lang.Math.sqrt:(D)D
dstore 22 /* len */
start local 22 // double len
27: .line 1135
dload 18 /* dxf */
dload 22 /* len */
ddiv
dstore 18 /* dxf */
28: .line 1136
dload 20 /* dyf */
dload 22 /* len */
ddiv
dstore 20 /* dyf */
end local 22 // double len
29: .line 1139
StackMap locals:
StackMap stack:
dload 14 /* dxs */
dload 16 /* dys */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
30: .line 1140
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cdx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cdy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 14 /* dxs */
dload 16 /* dys */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_0
daload
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_1
daload
iload 13 /* outcode0 */
invokevirtual com.sun.marlin.DStroker.drawJoin:(DDDDDDDDDDI)V
31: .line 1142
iconst_0
istore 22 /* nSplits */
start local 22 // int nSplits
32: .line 1144
aload 0 /* this */
getfield com.sun.marlin.DStroker.lp:[D
astore 24 /* l */
start local 24 // double[] l
33: .line 1146
aload 0 /* this */
getfield com.sun.marlin.DStroker.monotonize:Z
ifeq 39
34: .line 1149
aload 0 /* this */
getfield com.sun.marlin.DStroker.rdrCtx:Lcom/sun/marlin/DRendererContext;
getfield com.sun.marlin.DRendererContext.monotonizer:Lcom/sun/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
dload 9 /* x3 */
dload 11 /* y3 */
invokevirtual com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.curve:(DDDDDDDD)Lcom/sun/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
35: .line 1148
astore 25 /* monotonizer */
start local 25 // com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
36: .line 1151
aload 25 /* monotonizer */
getfield com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 22 /* nSplits */
37: .line 1152
aload 25 /* monotonizer */
getfield com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.middle:[D
astore 23 /* mid */
end local 25 // com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
start local 23 // double[] mid
38: .line 1153
goto 44
end local 23 // double[] mid
39: .line 1155
StackMap locals: com.sun.marlin.DStroker double double double double double double int double double double double int top double[]
StackMap stack:
aload 24 /* l */
astore 23 /* mid */
start local 23 // double[] mid
40: .line 1156
aload 23 /* mid */
iconst_0
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dastore
aload 23 /* mid */
iconst_1
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dastore
41: .line 1157
aload 23 /* mid */
iconst_2
dload 1 /* x1 */
dastore
aload 23 /* mid */
iconst_3
dload 3 /* y1 */
dastore
42: .line 1158
aload 23 /* mid */
iconst_4
dload 5 /* x2 */
dastore
aload 23 /* mid */
iconst_5
dload 7 /* y2 */
dastore
43: .line 1159
aload 23 /* mid */
bipush 6
dload 9 /* x3 */
dastore
aload 23 /* mid */
bipush 7
dload 11 /* y3 */
dastore
44: .line 1161
StackMap locals: com.sun.marlin.DStroker double double double double double double int double double double double int double[] double[]
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.DStroker.rp:[D
astore 25 /* r */
start local 25 // double[] r
45: .line 1163
iconst_0
istore 26 /* kind */
start local 26 // int kind
46: .line 1164
iconst_0
istore 27 /* i */
start local 27 // int i
47: iconst_0
istore 28 /* off */
start local 28 // int off
48: goto 59
49: .line 1165
StackMap locals: com.sun.marlin.DStroker double double double double double double int double double double double int double[] double[] double[] int int int
StackMap stack:
aload 0 /* this */
aload 23 /* mid */
iload 28 /* off */
aload 24 /* l */
aload 25 /* r */
invokevirtual com.sun.marlin.DStroker.computeOffsetCubic:([DI[D[D)I
istore 26 /* kind */
50: .line 1167
aload 0 /* this */
aload 24 /* l */
iconst_0
daload
aload 24 /* l */
iconst_1
daload
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
51: .line 1169
iload 26 /* kind */
tableswitch { // 4 - 8
4: 55
5: 57
6: 57
7: 57
8: 52
default: 57
}
52: .line 1171
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 24 /* l */
iconst_2
daload
aload 24 /* l */
iconst_3
daload
aload 24 /* l */
iconst_4
daload
aload 24 /* l */
iconst_5
daload
aload 24 /* l */
bipush 6
daload
aload 24 /* l */
bipush 7
daload
invokevirtual com.sun.marlin.DStroker.emitCurveTo:(DDDDDD)V
53: .line 1172
aload 0 /* this */
aload 25 /* r */
iconst_0
daload
aload 25 /* r */
iconst_1
daload
aload 25 /* r */
iconst_2
daload
aload 25 /* r */
iconst_3
daload
aload 25 /* r */
iconst_4
daload
aload 25 /* r */
iconst_5
daload
invokevirtual com.sun.marlin.DStroker.emitCurveToRev:(DDDDDD)V
54: .line 1173
goto 57
55: .line 1175
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 24 /* l */
iconst_2
daload
aload 24 /* l */
iconst_3
daload
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
56: .line 1176
aload 0 /* this */
aload 25 /* r */
iconst_0
daload
aload 25 /* r */
iconst_1
daload
invokevirtual com.sun.marlin.DStroker.emitLineToRev:(DD)V
57: .line 1180
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 25 /* r */
iload 26 /* kind */
iconst_2
isub
daload
aload 25 /* r */
iload 26 /* kind */
iconst_1
isub
daload
invokevirtual com.sun.marlin.DStroker.emitLineToRev:(DD)V
58: .line 1164
iinc 27 /* i */ 1
iinc 28 /* off */ 6
StackMap locals:
StackMap stack:
59: iload 27 /* i */
iload 22 /* nSplits */
if_icmple 49
end local 28 // int off
end local 27 // int i
60: .line 1183
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.prev:I
61: .line 1184
aload 0 /* this */
dload 9 /* x3 */
putfield com.sun.marlin.DStroker.cx0:D
62: .line 1185
aload 0 /* this */
dload 11 /* y3 */
putfield com.sun.marlin.DStroker.cy0:D
63: .line 1186
aload 0 /* this */
dload 18 /* dxf */
putfield com.sun.marlin.DStroker.cdx:D
64: .line 1187
aload 0 /* this */
dload 20 /* dyf */
putfield com.sun.marlin.DStroker.cdy:D
65: .line 1188
aload 0 /* this */
aload 24 /* l */
iload 26 /* kind */
iconst_2
isub
daload
aload 25 /* r */
iload 26 /* kind */
iconst_2
isub
daload
dsub
ldc 2.0
ddiv
putfield com.sun.marlin.DStroker.cmx:D
66: .line 1189
aload 0 /* this */
aload 24 /* l */
iload 26 /* kind */
iconst_1
isub
daload
aload 25 /* r */
iload 26 /* kind */
iconst_1
isub
daload
dsub
ldc 2.0
ddiv
putfield com.sun.marlin.DStroker.cmy:D
67: .line 1190
return
end local 26 // int kind
end local 25 // double[] r
end local 24 // double[] l
end local 23 // double[] mid
end local 22 // int nSplits
end local 20 // double dyf
end local 18 // double dxf
end local 16 // double dys
end local 14 // double dxs
end local 13 // int outcode0
end local 11 // double y3
end local 9 // double x3
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 68 0 this Lcom/sun/marlin/DStroker;
0 68 1 x1 D
0 68 3 y1 D
0 68 5 x2 D
0 68 7 y2 D
0 68 9 x3 D
0 68 11 y3 D
0 68 13 outcode0 I
1 68 14 dxs D
2 68 16 dys D
3 68 18 dxf D
4 68 20 dyf D
23 25 22 len D
27 29 22 len D
32 68 22 nSplits I
38 39 23 mid [D
40 68 23 mid [D
33 68 24 l [D
36 38 25 monotonizer Lcom/sun/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
45 68 25 r [D
46 68 26 kind I
47 60 27 i I
48 60 28 off I
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
outcode0 final
public void quadTo(double, double, double, double);
descriptor: (DDDD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=15, locals=15, args_size=5
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
0: .line 1196
aload 0 /* this */
getfield com.sun.marlin.DStroker.cOutCode:I
istore 9 /* outcode0 */
start local 9 // int outcode0
1: .line 1198
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
ifnull 21
2: .line 1199
dload 1 /* x1 */
dload 3 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
invokestatic com.sun.marlin.DHelpers.outcode:(DD[D)I
istore 10 /* outcode1 */
start local 10 // int outcode1
3: .line 1200
dload 5 /* x2 */
dload 7 /* y2 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
invokestatic com.sun.marlin.DHelpers.outcode:(DD[D)I
istore 11 /* outcode2 */
start local 11 // int outcode2
4: .line 1203
iload 9 /* outcode0 */
iload 10 /* outcode1 */
ior
iload 11 /* outcode2 */
ior
istore 12 /* orCode */
start local 12 // int orCode
5: .line 1204
iload 12 /* orCode */
ifeq 20
6: .line 1205
iload 9 /* outcode0 */
iload 10 /* outcode1 */
iand
iload 11 /* outcode2 */
iand
istore 13 /* sideCode */
start local 13 // int sideCode
7: .line 1208
iload 13 /* sideCode */
ifne 16
8: .line 1210
aload 0 /* this */
getfield com.sun.marlin.DStroker.subdivide:Z
ifeq 20
9: .line 1212
aload 0 /* this */
iconst_0
putfield com.sun.marlin.DStroker.subdivide:Z
10: .line 1214
aload 0 /* this */
getfield com.sun.marlin.DStroker.curveSplitter:Lcom/sun/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
11: .line 1215
dload 5 /* x2 */
dload 7 /* y2 */
iload 12 /* orCode */
aload 0 /* this */
12: .line 1214
invokevirtual com.sun.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitQuad:(DDDDDDILcom/sun/marlin/DPathConsumer2D;)Z
istore 14 /* ret */
start local 14 // boolean ret
13: .line 1217
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.subdivide:Z
14: .line 1218
iload 14 /* ret */
ifeq 20
15: .line 1219
return
end local 14 // boolean ret
16: .line 1224
StackMap locals: com.sun.marlin.DStroker double double double double int int int int int
StackMap stack:
aload 0 /* this */
iload 11 /* outcode2 */
putfield com.sun.marlin.DStroker.cOutCode:I
17: .line 1225
aload 0 /* this */
dload 5 /* x2 */
dload 7 /* y2 */
iload 9 /* outcode0 */
invokevirtual com.sun.marlin.DStroker._moveTo:(DDI)V
18: .line 1226
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.opened:Z
19: .line 1227
return
end local 13 // int sideCode
20: .line 1231
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* outcode2 */
putfield com.sun.marlin.DStroker.cOutCode:I
end local 12 // int orCode
end local 11 // int outcode2
end local 10 // int outcode1
21: .line 1233
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
iload 9 /* outcode0 */
invokevirtual com.sun.marlin.DStroker._quadTo:(DDDDI)V
22: .line 1234
return
end local 9 // int outcode0
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/sun/marlin/DStroker;
0 23 1 x1 D
0 23 3 y1 D
0 23 5 x2 D
0 23 7 y2 D
1 23 9 outcode0 I
3 21 10 outcode1 I
4 21 11 outcode2 I
5 21 12 orCode I
7 20 13 sideCode I
13 16 14 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
private void _quadTo(double, double, double, double, int);
descriptor: (DDDDI)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=22, locals=25, args_size=6
start local 0 // com.sun.marlin.DStroker this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
start local 9 // int outcode0
0: .line 1241
dload 1 /* x1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dsub
dstore 10 /* dxs */
start local 10 // double dxs
1: .line 1242
dload 3 /* y1 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dsub
dstore 12 /* dys */
start local 12 // double dys
2: .line 1243
dload 5 /* x2 */
dload 1 /* x1 */
dsub
dstore 14 /* dxf */
start local 14 // double dxf
3: .line 1244
dload 7 /* y2 */
dload 3 /* y1 */
dsub
dstore 16 /* dyf */
start local 16 // double dyf
4: .line 1246
dload 10 /* dxs */
dconst_0
dcmpl
ifne 5
dload 12 /* dys */
dconst_0
dcmpl
ifeq 6
StackMap locals: com.sun.marlin.DStroker double double double double int double double double double
StackMap stack:
5: dload 14 /* dxf */
dconst_0
dcmpl
ifne 8
dload 16 /* dyf */
dconst_0
dcmpl
ifne 8
6: .line 1247
StackMap locals:
StackMap stack:
dload 5 /* x2 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dsub
dup2
dstore 14 /* dxf */
dstore 10 /* dxs */
7: .line 1248
dload 7 /* y2 */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dsub
dup2
dstore 16 /* dyf */
dstore 12 /* dys */
8: .line 1250
StackMap locals:
StackMap stack:
dload 10 /* dxs */
dconst_0
dcmpl
ifne 13
dload 12 /* dys */
dconst_0
dcmpl
ifne 13
9: .line 1253
aload 0 /* this */
getfield com.sun.marlin.DStroker.clipRect:[D
ifnull 11
10: .line 1254
aload 0 /* this */
iload 9 /* outcode0 */
putfield com.sun.marlin.DStroker.cOutCode:I
11: .line 1256
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
invokevirtual com.sun.marlin.DStroker.lineTo:(DD)V
12: .line 1257
return
13: .line 1261
StackMap locals:
StackMap stack:
dload 10 /* dxs */
invokestatic java.lang.Math.abs:(D)D
ldc 0.1
dcmpg
ifge 17
dload 12 /* dys */
invokestatic java.lang.Math.abs:(D)D
ldc 0.1
dcmpg
ifge 17
14: .line 1262
dload 10 /* dxs */
dload 10 /* dxs */
dmul
dload 12 /* dys */
dload 12 /* dys */
dmul
dadd
invokestatic java.lang.Math.sqrt:(D)D
dstore 18 /* len */
start local 18 // double len
15: .line 1263
dload 10 /* dxs */
dload 18 /* len */
ddiv
dstore 10 /* dxs */
16: .line 1264
dload 12 /* dys */
dload 18 /* len */
ddiv
dstore 12 /* dys */
end local 18 // double len
17: .line 1266
StackMap locals:
StackMap stack:
dload 14 /* dxf */
invokestatic java.lang.Math.abs:(D)D
ldc 0.1
dcmpg
ifge 21
dload 16 /* dyf */
invokestatic java.lang.Math.abs:(D)D
ldc 0.1
dcmpg
ifge 21
18: .line 1267
dload 14 /* dxf */
dload 14 /* dxf */
dmul
dload 16 /* dyf */
dload 16 /* dyf */
dmul
dadd
invokestatic java.lang.Math.sqrt:(D)D
dstore 18 /* len */
start local 18 // double len
19: .line 1268
dload 14 /* dxf */
dload 18 /* len */
ddiv
dstore 14 /* dxf */
20: .line 1269
dload 16 /* dyf */
dload 18 /* len */
ddiv
dstore 16 /* dyf */
end local 18 // double len
21: .line 1271
StackMap locals:
StackMap stack:
dload 10 /* dxs */
dload 12 /* dys */
aload 0 /* this */
getfield com.sun.marlin.DStroker.lineWidth2:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
invokestatic com.sun.marlin.DStroker.computeOffset:(DDD[D)V
22: .line 1272
aload 0 /* this */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cdx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cdy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 10 /* dxs */
dload 12 /* dys */
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmx:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cmy:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_0
daload
aload 0 /* this */
getfield com.sun.marlin.DStroker.offset0:[D
iconst_1
daload
iload 9 /* outcode0 */
invokevirtual com.sun.marlin.DStroker.drawJoin:(DDDDDDDDDDI)V
23: .line 1274
iconst_0
istore 18 /* nSplits */
start local 18 // int nSplits
24: .line 1276
aload 0 /* this */
getfield com.sun.marlin.DStroker.lp:[D
astore 20 /* l */
start local 20 // double[] l
25: .line 1278
aload 0 /* this */
getfield com.sun.marlin.DStroker.monotonize:Z
ifeq 31
26: .line 1281
aload 0 /* this */
getfield com.sun.marlin.DStroker.rdrCtx:Lcom/sun/marlin/DRendererContext;
getfield com.sun.marlin.DRendererContext.monotonizer:Lcom/sun/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
invokevirtual com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.quad:(DDDDDD)Lcom/sun/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
27: .line 1280
astore 21 /* monotonizer */
start local 21 // com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
28: .line 1283
aload 21 /* monotonizer */
getfield com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 18 /* nSplits */
29: .line 1284
aload 21 /* monotonizer */
getfield com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.middle:[D
astore 19 /* mid */
end local 21 // com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
start local 19 // double[] mid
30: .line 1285
goto 35
end local 19 // double[] mid
31: .line 1287
StackMap locals: com.sun.marlin.DStroker double double double double int double double double double int top double[]
StackMap stack:
aload 20 /* l */
astore 19 /* mid */
start local 19 // double[] mid
32: .line 1288
aload 19 /* mid */
iconst_0
aload 0 /* this */
getfield com.sun.marlin.DStroker.cx0:D
dastore
aload 19 /* mid */
iconst_1
aload 0 /* this */
getfield com.sun.marlin.DStroker.cy0:D
dastore
33: .line 1289
aload 19 /* mid */
iconst_2
dload 1 /* x1 */
dastore
aload 19 /* mid */
iconst_3
dload 3 /* y1 */
dastore
34: .line 1290
aload 19 /* mid */
iconst_4
dload 5 /* x2 */
dastore
aload 19 /* mid */
iconst_5
dload 7 /* y2 */
dastore
35: .line 1292
StackMap locals: com.sun.marlin.DStroker double double double double int double double double double int double[] double[]
StackMap stack:
aload 0 /* this */
getfield com.sun.marlin.DStroker.rp:[D
astore 21 /* r */
start local 21 // double[] r
36: .line 1294
iconst_0
istore 22 /* kind */
start local 22 // int kind
37: .line 1295
iconst_0
istore 23 /* i */
start local 23 // int i
38: iconst_0
istore 24 /* off */
start local 24 // int off
39: goto 50
40: .line 1296
StackMap locals: com.sun.marlin.DStroker double double double double int double double double double int double[] double[] double[] int int int
StackMap stack:
aload 0 /* this */
aload 19 /* mid */
iload 24 /* off */
aload 20 /* l */
aload 21 /* r */
invokevirtual com.sun.marlin.DStroker.computeOffsetQuad:([DI[D[D)I
istore 22 /* kind */
41: .line 1298
aload 0 /* this */
aload 20 /* l */
iconst_0
daload
aload 20 /* l */
iconst_1
daload
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
42: .line 1300
iload 22 /* kind */
tableswitch { // 4 - 6
4: 46
5: 48
6: 43
default: 48
}
43: .line 1302
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 20 /* l */
iconst_2
daload
aload 20 /* l */
iconst_3
daload
aload 20 /* l */
iconst_4
daload
aload 20 /* l */
iconst_5
daload
invokevirtual com.sun.marlin.DStroker.emitQuadTo:(DDDD)V
44: .line 1303
aload 0 /* this */
aload 21 /* r */
iconst_0
daload
aload 21 /* r */
iconst_1
daload
aload 21 /* r */
iconst_2
daload
aload 21 /* r */
iconst_3
daload
invokevirtual com.sun.marlin.DStroker.emitQuadToRev:(DDDD)V
45: .line 1304
goto 48
46: .line 1306
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 20 /* l */
iconst_2
daload
aload 20 /* l */
iconst_3
daload
invokevirtual com.sun.marlin.DStroker.emitLineTo:(DD)V
47: .line 1307
aload 0 /* this */
aload 21 /* r */
iconst_0
daload
aload 21 /* r */
iconst_1
daload
invokevirtual com.sun.marlin.DStroker.emitLineToRev:(DD)V
48: .line 1311
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 21 /* r */
iload 22 /* kind */
iconst_2
isub
daload
aload 21 /* r */
iload 22 /* kind */
iconst_1
isub
daload
invokevirtual com.sun.marlin.DStroker.emitLineToRev:(DD)V
49: .line 1295
iinc 23 /* i */ 1
iinc 24 /* off */ 4
StackMap locals:
StackMap stack:
50: iload 23 /* i */
iload 18 /* nSplits */
if_icmple 40
end local 24 // int off
end local 23 // int i
51: .line 1314
aload 0 /* this */
iconst_1
putfield com.sun.marlin.DStroker.prev:I
52: .line 1315
aload 0 /* this */
dload 5 /* x2 */
putfield com.sun.marlin.DStroker.cx0:D
53: .line 1316
aload 0 /* this */
dload 7 /* y2 */
putfield com.sun.marlin.DStroker.cy0:D
54: .line 1317
aload 0 /* this */
dload 14 /* dxf */
putfield com.sun.marlin.DStroker.cdx:D
55: .line 1318
aload 0 /* this */
dload 16 /* dyf */
putfield com.sun.marlin.DStroker.cdy:D
56: .line 1319
aload 0 /* this */
aload 20 /* l */
iload 22 /* kind */
iconst_2
isub
daload
aload 21 /* r */
iload 22 /* kind */
iconst_2
isub
daload
dsub
ldc 2.0
ddiv
putfield com.sun.marlin.DStroker.cmx:D
57: .line 1320
aload 0 /* this */
aload 20 /* l */
iload 22 /* kind */
iconst_1
isub
daload
aload 21 /* r */
iload 22 /* kind */
iconst_1
isub
daload
dsub
ldc 2.0
ddiv
putfield com.sun.marlin.DStroker.cmy:D
58: .line 1321
return
end local 22 // int kind
end local 21 // double[] r
end local 20 // double[] l
end local 19 // double[] mid
end local 18 // int nSplits
end local 16 // double dyf
end local 14 // double dxf
end local 12 // double dys
end local 10 // double dxs
end local 9 // int outcode0
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // com.sun.marlin.DStroker this
LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lcom/sun/marlin/DStroker;
0 59 1 x1 D
0 59 3 y1 D
0 59 5 x2 D
0 59 7 y2 D
0 59 9 outcode0 I
1 59 10 dxs D
2 59 12 dys D
3 59 14 dxf D
4 59 16 dyf D
15 17 18 len D
19 21 18 len D
24 59 18 nSplits I
30 31 19 mid [D
32 59 19 mid [D
25 59 20 l [D
28 30 21 monotonizer Lcom/sun/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
36 59 21 r [D
37 59 22 kind I
38 51 23 i I
39 51 24 off I
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
outcode0 final
}
SourceFile: "DStroker.java"
InnerClasses:
final PolyStack = com.sun.marlin.DHelpers$PolyStack of com.sun.marlin.DHelpers
public final CurveBasicMonotonizer = com.sun.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer of com.sun.marlin.DTransformingPathConsumer2D
final CurveClipSplitter = com.sun.marlin.DTransformingPathConsumer2D$CurveClipSplitter of com.sun.marlin.DTransformingPathConsumer2D