final class sun.java2d.marlin.Dasher implements sun.awt.geom.PathConsumer2D, sun.java2d.marlin.MarlinConst
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.java2d.marlin.Dasher
super_class: java.lang.Object
{
static final int REC_LIMIT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16
static final float CURVE_LEN_ERR;
descriptor: F
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final float MIN_T_INC;
descriptor: F
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1.5258789E-5
static final float EPS;
descriptor: F
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1.0E-6
static final float MAX_CYCLES;
descriptor: F
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1.6E7
private sun.awt.geom.PathConsumer2D out;
descriptor: Lsun/awt/geom/PathConsumer2D;
flags: (0x0002) ACC_PRIVATE
private float[] dash;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private int dashLen;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float startPhase;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private boolean startDashOn;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int startIdx;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean starting;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean needsMoveTo;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int idx;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean dashOn;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private float phase;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float sx0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float sy0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float cx0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float cy0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private final float[] curCurvepts;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final sun.java2d.marlin.RendererContext rdrCtx;
descriptor: Lsun/java2d/marlin/RendererContext;
flags: (0x0010) ACC_FINAL
boolean recycleDashes;
descriptor: Z
flags: (0x0000)
private float[] firstSegmentsBuffer;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private int firstSegidx;
descriptor: I
flags: (0x0002) ACC_PRIVATE
final sun.java2d.marlin.FloatArrayCache$Reference dashes_ref;
descriptor: Lsun/java2d/marlin/FloatArrayCache$Reference;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.FloatArrayCache$Reference firstSegmentsBuffer_ref;
descriptor: Lsun/java2d/marlin/FloatArrayCache$Reference;
flags: (0x0010) ACC_FINAL
private float[] clipRect;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private int cOutCode;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean subdivide;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final sun.java2d.marlin.Dasher$LengthIterator li;
descriptor: Lsun/java2d/marlin/Dasher$LengthIterator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter curveSplitter;
descriptor: Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private float cycleLen;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private boolean outside;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private float totalSkipLen;
descriptor: F
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 48
invokestatic sun.java2d.marlin.MarlinProperties.getCurveLengthError:()F
putstatic sun.java2d.marlin.Dasher.CURVE_LEN_ERR:F
1: .line 56
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.java2d.marlin.RendererContext);
descriptor: (Lsun/java2d/marlin/RendererContext;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // sun.java2d.marlin.RendererContext rdrCtx
0: .line 118
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 102
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.cOutCode:I
2: .line 104
aload 0 /* this */
getstatic sun.java2d.marlin.Dasher.DO_CLIP_SUBDIVIDER:Z
putfield sun.java2d.marlin.Dasher.subdivide:Z
3: .line 106
aload 0 /* this */
new sun.java2d.marlin.Dasher$LengthIterator
dup
invokespecial sun.java2d.marlin.Dasher$LengthIterator.<init>:()V
putfield sun.java2d.marlin.Dasher.li:Lsun/java2d/marlin/Dasher$LengthIterator;
4: .line 119
aload 0 /* this */
aload 1 /* rdrCtx */
putfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
5: .line 121
aload 0 /* this */
aload 1 /* rdrCtx */
sipush 256
invokevirtual sun.java2d.marlin.RendererContext.newDirtyFloatArrayRef:(I)Lsun/java2d/marlin/FloatArrayCache$Reference;
putfield sun.java2d.marlin.Dasher.dashes_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
6: .line 123
aload 0 /* this */
aload 1 /* rdrCtx */
sipush 256
invokevirtual sun.java2d.marlin.RendererContext.newDirtyFloatArrayRef:(I)Lsun/java2d/marlin/FloatArrayCache$Reference;
putfield sun.java2d.marlin.Dasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
7: .line 124
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
getfield sun.java2d.marlin.FloatArrayCache$Reference.initial:[F
putfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
8: .line 128
aload 0 /* this */
bipush 16
newarray 6
putfield sun.java2d.marlin.Dasher.curCurvepts:[F
9: .line 130
aload 0 /* this */
aload 1 /* rdrCtx */
getfield sun.java2d.marlin.RendererContext.curveClipSplitter:Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
putfield sun.java2d.marlin.Dasher.curveSplitter:Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
10: .line 131
return
end local 1 // sun.java2d.marlin.RendererContext rdrCtx
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/java2d/marlin/Dasher;
0 11 1 rdrCtx Lsun/java2d/marlin/RendererContext;
MethodParameters:
Name Flags
rdrCtx final
sun.java2d.marlin.Dasher init(sun.awt.geom.PathConsumer2D, float[], int, float, boolean);
descriptor: (Lsun/awt/geom/PathConsumer2D;[FIFZ)Lsun/java2d/marlin/Dasher;
flags: (0x0000)
Code:
stack=3, locals=11, args_size=6
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // sun.awt.geom.PathConsumer2D out
start local 2 // float[] dash
start local 3 // int dashLen
start local 4 // float phase
start local 5 // boolean recycleDashes
0: .line 146
aload 0 /* this */
aload 1 /* out */
putfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
1: .line 149
iconst_0
istore 6 /* sidx */
start local 6 // int sidx
2: .line 150
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.dashOn:Z
3: .line 153
fconst_0
fstore 7 /* sum */
start local 7 // float sum
4: .line 154
iconst_0
istore 8 /* i */
start local 8 // int i
5: goto 8
6: .line 155
StackMap locals: int float int
StackMap stack:
fload 7 /* sum */
aload 2 /* dash */
iload 8 /* i */
faload
fadd
fstore 7 /* sum */
7: .line 154
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 8 /* i */
iload 3 /* dashLen */
if_icmplt 6
end local 8 // int i
9: .line 157
aload 0 /* this */
fload 7 /* sum */
putfield sun.java2d.marlin.Dasher.cycleLen:F
10: .line 159
fload 4 /* phase */
fload 7 /* sum */
fdiv
fstore 8 /* cycles */
start local 8 // float cycles
11: .line 160
fload 4 /* phase */
fconst_0
fcmpg
ifge 30
12: .line 161
fload 8 /* cycles */
fneg
ldc 1.6E7
fcmpl
iflt 15
13: .line 162
fconst_0
fstore 4 /* phase */
14: .line 163
goto 48
15: .line 164
StackMap locals: sun.java2d.marlin.Dasher sun.awt.geom.PathConsumer2D float[] int float int int float float
StackMap stack:
fload 8 /* cycles */
fneg
invokestatic sun.java2d.marlin.FloatMath.floor_int:(F)I
istore 9 /* fullcycles */
start local 9 // int fullcycles
16: .line 165
iload 9 /* fullcycles */
iload 3 /* dashLen */
iand
iconst_1
iand
ifeq 20
17: .line 166
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
ifeq 18
iconst_0
goto 19
StackMap locals: sun.java2d.marlin.Dasher sun.awt.geom.PathConsumer2D float[] int float int int float float int
StackMap stack: sun.java2d.marlin.Dasher
18: iconst_1
StackMap locals: sun.java2d.marlin.Dasher sun.awt.geom.PathConsumer2D float[] int float int int float float int
StackMap stack: sun.java2d.marlin.Dasher int
19: putfield sun.java2d.marlin.Dasher.dashOn:Z
20: .line 168
StackMap locals:
StackMap stack:
fload 4 /* phase */
iload 9 /* fullcycles */
i2f
fload 7 /* sum */
fmul
fadd
fstore 4 /* phase */
21: .line 169
goto 28
22: .line 170
StackMap locals:
StackMap stack:
iinc 6 /* sidx */ -1
iload 6 /* sidx */
ifge 24
23: .line 171
iload 3 /* dashLen */
iconst_1
isub
istore 6 /* sidx */
24: .line 173
StackMap locals:
StackMap stack:
fload 4 /* phase */
aload 2 /* dash */
iload 6 /* sidx */
faload
fadd
fstore 4 /* phase */
25: .line 174
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
ifeq 26
iconst_0
goto 27
StackMap locals:
StackMap stack: sun.java2d.marlin.Dasher
26: iconst_1
StackMap locals: sun.java2d.marlin.Dasher sun.awt.geom.PathConsumer2D float[] int float int int float float int
StackMap stack: sun.java2d.marlin.Dasher int
27: putfield sun.java2d.marlin.Dasher.dashOn:Z
28: .line 169
StackMap locals:
StackMap stack:
fload 4 /* phase */
fconst_0
fcmpg
iflt 22
end local 9 // int fullcycles
29: .line 177
goto 48
StackMap locals:
StackMap stack:
30: fload 4 /* phase */
fconst_0
fcmpl
ifle 48
31: .line 178
fload 8 /* cycles */
ldc 1.6E7
fcmpl
iflt 34
32: .line 179
fconst_0
fstore 4 /* phase */
33: .line 180
goto 48
34: .line 181
StackMap locals:
StackMap stack:
fload 8 /* cycles */
invokestatic sun.java2d.marlin.FloatMath.floor_int:(F)I
istore 9 /* fullcycles */
start local 9 // int fullcycles
35: .line 182
iload 9 /* fullcycles */
iload 3 /* dashLen */
iand
iconst_1
iand
ifeq 39
36: .line 183
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
ifeq 37
iconst_0
goto 38
StackMap locals: sun.java2d.marlin.Dasher sun.awt.geom.PathConsumer2D float[] int float int int float float int
StackMap stack: sun.java2d.marlin.Dasher
37: iconst_1
StackMap locals: sun.java2d.marlin.Dasher sun.awt.geom.PathConsumer2D float[] int float int int float float int
StackMap stack: sun.java2d.marlin.Dasher int
38: putfield sun.java2d.marlin.Dasher.dashOn:Z
39: .line 185
StackMap locals:
StackMap stack:
fload 4 /* phase */
iload 9 /* fullcycles */
i2f
fload 7 /* sum */
fmul
fsub
fstore 4 /* phase */
40: .line 187
goto 46
start local 10 // float d
41: .line 188
StackMap locals: float
StackMap stack:
fload 4 /* phase */
fload 10 /* d */
fsub
fstore 4 /* phase */
42: .line 189
iload 6 /* sidx */
iconst_1
iadd
iload 3 /* dashLen */
irem
istore 6 /* sidx */
43: .line 190
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
ifeq 44
iconst_0
goto 45
StackMap locals:
StackMap stack: sun.java2d.marlin.Dasher
44: iconst_1
StackMap locals: sun.java2d.marlin.Dasher sun.awt.geom.PathConsumer2D float[] int float int int float float int float
StackMap stack: sun.java2d.marlin.Dasher int
45: putfield sun.java2d.marlin.Dasher.dashOn:Z
end local 10 // float d
46: .line 187
StackMap locals:
StackMap stack:
fload 4 /* phase */
aload 2 /* dash */
iload 6 /* sidx */
faload
dup
fstore 10 /* d */
start local 10 // float d
47: fcmpl
ifge 41
end local 10 // float d
end local 9 // int fullcycles
48: .line 195
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 2 /* dash */
putfield sun.java2d.marlin.Dasher.dash:[F
49: .line 196
aload 0 /* this */
iload 3 /* dashLen */
putfield sun.java2d.marlin.Dasher.dashLen:I
50: .line 197
aload 0 /* this */
fload 4 /* phase */
putfield sun.java2d.marlin.Dasher.phase:F
51: .line 198
aload 0 /* this */
fload 4 /* phase */
putfield sun.java2d.marlin.Dasher.startPhase:F
52: .line 199
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
putfield sun.java2d.marlin.Dasher.startDashOn:Z
53: .line 200
aload 0 /* this */
iload 6 /* sidx */
putfield sun.java2d.marlin.Dasher.startIdx:I
54: .line 201
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.starting:Z
55: .line 202
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
56: .line 203
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.firstSegidx:I
57: .line 205
aload 0 /* this */
iload 5 /* recycleDashes */
putfield sun.java2d.marlin.Dasher.recycleDashes:Z
58: .line 207
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.doClip:Z
ifeq 61
59: .line 208
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.clipRect:[F
putfield sun.java2d.marlin.Dasher.clipRect:[F
60: .line 209
goto 63
61: .line 210
StackMap locals:
StackMap stack:
aload 0 /* this */
aconst_null
putfield sun.java2d.marlin.Dasher.clipRect:[F
62: .line 211
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.cOutCode:I
63: .line 213
StackMap locals:
StackMap stack:
aload 0 /* this */
areturn
end local 8 // float cycles
end local 7 // float sum
end local 6 // int sidx
end local 5 // boolean recycleDashes
end local 4 // float phase
end local 3 // int dashLen
end local 2 // float[] dash
end local 1 // sun.awt.geom.PathConsumer2D out
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 64 0 this Lsun/java2d/marlin/Dasher;
0 64 1 out Lsun/awt/geom/PathConsumer2D;
0 64 2 dash [F
0 64 3 dashLen I
0 64 4 phase F
0 64 5 recycleDashes Z
2 64 6 sidx I
4 64 7 sum F
5 9 8 i I
11 64 8 cycles F
16 29 9 fullcycles I
35 48 9 fullcycles I
41 46 10 d F
47 48 10 d F
MethodParameters:
Name Flags
out final
dash final
dashLen final
phase
recycleDashes final
void dispose();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.java2d.marlin.Dasher this
0: .line 226
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.recycleDashes:Z
ifeq 2
1: .line 227
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashes_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dash:[F
invokevirtual sun.java2d.marlin.FloatArrayCache$Reference.putArray:([F)[F
putfield sun.java2d.marlin.Dasher.dash:[F
2: .line 229
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
invokevirtual sun.java2d.marlin.FloatArrayCache$Reference.putArray:([F)[F
putfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
3: .line 230
return
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/java2d/marlin/Dasher;
float[] copyDashArray(float[]);
descriptor: ([F)[F
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float[] dashes
0: .line 233
aload 1 /* dashes */
arraylength
istore 2 /* len */
start local 2 // int len
1: .line 235
iload 2 /* len */
sipush 256
if_icmpgt 4
2: .line 236
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashes_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
getfield sun.java2d.marlin.FloatArrayCache$Reference.initial:[F
astore 3 /* newDashes */
start local 3 // float[] newDashes
3: .line 237
goto 7
end local 3 // float[] newDashes
4: .line 238
StackMap locals: int
StackMap stack:
getstatic sun.java2d.marlin.Dasher.DO_STATS:Z
ifeq 6
5: .line 239
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_array_dasher_dasher:Lsun/java2d/marlin/stats/StatLong;
iload 2 /* len */
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
6: .line 241
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashes_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
iload 2 /* len */
invokevirtual sun.java2d.marlin.FloatArrayCache$Reference.getArray:(I)[F
astore 3 /* newDashes */
start local 3 // float[] newDashes
7: .line 243
StackMap locals: float[]
StackMap stack:
aload 1 /* dashes */
iconst_0
aload 3 /* newDashes */
iconst_0
iload 2 /* len */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: .line 244
aload 3 /* newDashes */
areturn
end local 3 // float[] newDashes
end local 2 // int len
end local 1 // float[] dashes
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/java2d/marlin/Dasher;
0 9 1 dashes [F
1 9 2 len I
3 4 3 newDashes [F
7 9 3 newDashes [F
MethodParameters:
Name Flags
dashes final
public void moveTo(float, float);
descriptor: (FF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x0
start local 2 // float y0
0: .line 249
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
ifeq 3
1: .line 250
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sy0:F
invokeinterface sun.awt.geom.PathConsumer2D.moveTo:(FF)V
2: .line 251
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.emitFirstSegments:()V
3: .line 253
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
4: .line 254
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.startIdx:I
putfield sun.java2d.marlin.Dasher.idx:I
5: .line 255
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.startDashOn:Z
putfield sun.java2d.marlin.Dasher.dashOn:Z
6: .line 256
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.startPhase:F
putfield sun.java2d.marlin.Dasher.phase:F
7: .line 257
aload 0 /* this */
fload 1 /* x0 */
putfield sun.java2d.marlin.Dasher.cx0:F
8: .line 258
aload 0 /* this */
fload 2 /* y0 */
putfield sun.java2d.marlin.Dasher.cy0:F
9: .line 261
aload 0 /* this */
fload 1 /* x0 */
putfield sun.java2d.marlin.Dasher.sx0:F
10: .line 262
aload 0 /* this */
fload 2 /* y0 */
putfield sun.java2d.marlin.Dasher.sy0:F
11: .line 263
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.starting:Z
12: .line 265
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
ifnull 17
13: .line 266
fload 1 /* x0 */
fload 2 /* y0 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
invokestatic sun.java2d.marlin.Helpers.outcode:(FF[F)I
istore 3 /* outcode */
start local 3 // int outcode
14: .line 267
aload 0 /* this */
iload 3 /* outcode */
putfield sun.java2d.marlin.Dasher.cOutCode:I
15: .line 268
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.outside:Z
16: .line 269
aload 0 /* this */
fconst_0
putfield sun.java2d.marlin.Dasher.totalSkipLen:F
end local 3 // int outcode
17: .line 271
StackMap locals:
StackMap stack:
return
end local 2 // float y0
end local 1 // float x0
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/java2d/marlin/Dasher;
0 18 1 x0 F
0 18 2 y0 F
14 17 3 outcode I
MethodParameters:
Name Flags
x0 final
y0 final
private void emitSeg(float[], int, int);
descriptor: ([FII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=4, args_size=4
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float[] buf
start local 2 // int off
start local 3 // int type
0: .line 274
iload 3 /* type */
tableswitch { // 4 - 8
4: 1
5: 12
6: 8
7: 12
8: 3
default: 12
}
1: .line 276
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
aload 1 /* buf */
iload 2 /* off */
faload
aload 1 /* buf */
iload 2 /* off */
iconst_1
iadd
faload
invokeinterface sun.awt.geom.PathConsumer2D.lineTo:(FF)V
2: .line 277
return
3: .line 279
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
aload 1 /* buf */
iload 2 /* off */
faload
aload 1 /* buf */
iload 2 /* off */
iconst_1
iadd
faload
4: .line 280
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
faload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
faload
5: .line 281
aload 1 /* buf */
iload 2 /* off */
iconst_4
iadd
faload
aload 1 /* buf */
iload 2 /* off */
iconst_5
iadd
faload
6: .line 279
invokeinterface sun.awt.geom.PathConsumer2D.curveTo:(FFFFFF)V
7: .line 282
return
8: .line 284
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
aload 1 /* buf */
iload 2 /* off */
faload
aload 1 /* buf */
iload 2 /* off */
iconst_1
iadd
faload
9: .line 285
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
faload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
faload
10: .line 284
invokeinterface sun.awt.geom.PathConsumer2D.quadTo:(FFFF)V
11: .line 286
return
12: .line 289
StackMap locals:
StackMap stack:
return
end local 3 // int type
end local 2 // int off
end local 1 // float[] buf
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/java2d/marlin/Dasher;
0 13 1 buf [F
0 13 2 off I
0 13 3 type I
MethodParameters:
Name Flags
buf
off
type
private void emitFirstSegments();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 // sun.java2d.marlin.Dasher this
0: .line 292
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
astore 1 /* fSegBuf */
start local 1 // float[] fSegBuf
1: .line 294
iconst_0
istore 2 /* i */
start local 2 // int i
2: aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
istore 3 /* len */
start local 3 // int len
3: goto 7
4: .line 295
StackMap locals: float[] int int
StackMap stack:
aload 1 /* fSegBuf */
iload 2 /* i */
faload
f2i
istore 4 /* type */
start local 4 // int type
5: .line 296
aload 0 /* this */
aload 1 /* fSegBuf */
iload 2 /* i */
iconst_1
iadd
iload 4 /* type */
invokevirtual sun.java2d.marlin.Dasher.emitSeg:([FII)V
6: .line 297
iload 2 /* i */
iload 4 /* type */
iconst_1
isub
iadd
istore 2 /* i */
end local 4 // int type
7: .line 294
StackMap locals:
StackMap stack:
iload 2 /* i */
iload 3 /* len */
if_icmplt 4
end local 3 // int len
end local 2 // int i
8: .line 299
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.firstSegidx:I
9: .line 300
return
end local 1 // float[] fSegBuf
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/java2d/marlin/Dasher;
1 10 1 fSegBuf [F
2 8 2 i I
3 8 3 len I
5 7 4 type I
private void goTo(float[], int, int, boolean);
descriptor: ([FIIZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=5
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float[] pts
start local 2 // int off
start local 3 // int type
start local 4 // boolean on
0: .line 306
iload 2 /* off */
iload 3 /* type */
iadd
istore 5 /* index */
start local 5 // int index
1: .line 307
aload 1 /* pts */
iload 5 /* index */
iconst_4
isub
faload
fstore 6 /* x */
start local 6 // float x
2: .line 308
aload 1 /* pts */
iload 5 /* index */
iconst_3
isub
faload
fstore 7 /* y */
start local 7 // float y
3: .line 310
iload 4 /* on */
ifeq 12
4: .line 311
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.starting:Z
ifeq 7
5: .line 312
aload 0 /* this */
aload 1 /* pts */
iload 2 /* off */
iload 3 /* type */
invokevirtual sun.java2d.marlin.Dasher.goTo_starting:([FII)V
6: .line 313
goto 15
7: .line 314
StackMap locals: int float float
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.needsMoveTo:Z
ifeq 10
8: .line 315
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
9: .line 316
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
invokeinterface sun.awt.geom.PathConsumer2D.moveTo:(FF)V
10: .line 318
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* pts */
iload 2 /* off */
iload 3 /* type */
invokevirtual sun.java2d.marlin.Dasher.emitSeg:([FII)V
11: .line 320
goto 15
12: .line 321
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.starting:Z
ifeq 14
13: .line 323
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.starting:Z
14: .line 325
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
15: .line 327
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 6 /* x */
putfield sun.java2d.marlin.Dasher.cx0:F
16: .line 328
aload 0 /* this */
fload 7 /* y */
putfield sun.java2d.marlin.Dasher.cy0:F
17: .line 329
return
end local 7 // float y
end local 6 // float x
end local 5 // int index
end local 4 // boolean on
end local 3 // int type
end local 2 // int off
end local 1 // float[] pts
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/java2d/marlin/Dasher;
0 18 1 pts [F
0 18 2 off I
0 18 3 type I
0 18 4 on Z
1 18 5 index I
2 18 6 x F
3 18 7 y F
MethodParameters:
Name Flags
pts final
off final
type final
on final
private void goTo_starting(float[], int, int);
descriptor: ([FII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=4
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float[] pts
start local 2 // int off
start local 3 // int type
0: .line 332
iload 3 /* type */
iconst_1
isub
istore 4 /* len */
start local 4 // int len
1: .line 333
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
istore 5 /* segIdx */
start local 5 // int segIdx
2: .line 334
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
astore 6 /* buf */
start local 6 // float[] buf
3: .line 336
iload 5 /* segIdx */
iload 4 /* len */
iadd
aload 6 /* buf */
arraylength
if_icmple 12
4: .line 337
getstatic sun.java2d.marlin.Dasher.DO_STATS:Z
ifeq 7
5: .line 338
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_array_dasher_firstSegmentsBuffer:Lsun/java2d/marlin/stats/StatLong;
6: .line 339
iload 5 /* segIdx */
iload 4 /* len */
iadd
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
7: .line 341
StackMap locals: int int float[]
StackMap stack:
aload 0 /* this */
8: .line 342
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
aload 6 /* buf */
iload 5 /* segIdx */
9: .line 343
iload 5 /* segIdx */
iload 4 /* len */
iadd
10: .line 342
invokevirtual sun.java2d.marlin.FloatArrayCache$Reference.widenArray:([FII)[F
11: .line 341
dup
astore 6 /* buf */
putfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
12: .line 345
StackMap locals:
StackMap stack:
aload 6 /* buf */
iload 5 /* segIdx */
iinc 5 /* segIdx */ 1
iload 3 /* type */
i2f
fastore
13: .line 346
iinc 4 /* len */ -1
14: .line 348
aload 1 /* pts */
iload 2 /* off */
aload 6 /* buf */
iload 5 /* segIdx */
iload 4 /* len */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
15: .line 349
aload 0 /* this */
iload 5 /* segIdx */
iload 4 /* len */
iadd
putfield sun.java2d.marlin.Dasher.firstSegidx:I
16: .line 350
return
end local 6 // float[] buf
end local 5 // int segIdx
end local 4 // int len
end local 3 // int type
end local 2 // int off
end local 1 // float[] pts
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/java2d/marlin/Dasher;
0 17 1 pts [F
0 17 2 off I
0 17 3 type I
1 17 4 len I
2 17 5 segIdx I
3 17 6 buf [F
MethodParameters:
Name Flags
pts final
off final
type final
public void lineTo(float, float);
descriptor: (FF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=3
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
0: .line 354
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cOutCode:I
istore 3 /* outcode0 */
start local 3 // int outcode0
1: .line 356
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
ifnull 22
2: .line 357
fload 1 /* x1 */
fload 2 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
invokestatic sun.java2d.marlin.Helpers.outcode:(FF[F)I
istore 4 /* outcode1 */
start local 4 // int outcode1
3: .line 360
iload 3 /* outcode0 */
iload 4 /* outcode1 */
ior
istore 5 /* orCode */
start local 5 // int orCode
4: .line 362
iload 5 /* orCode */
ifeq 18
5: .line 363
iload 3 /* outcode0 */
iload 4 /* outcode1 */
iand
istore 6 /* sideCode */
start local 6 // int sideCode
6: .line 366
iload 6 /* sideCode */
ifne 15
7: .line 368
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.subdivide:Z
ifeq 18
8: .line 370
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.subdivide:Z
9: .line 372
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curveSplitter:Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
10: .line 373
iload 5 /* orCode */
aload 0 /* this */
11: .line 372
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitLine:(FFFFILsun/awt/geom/PathConsumer2D;)Z
istore 7 /* ret */
start local 7 // boolean ret
12: .line 375
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.subdivide:Z
13: .line 376
iload 7 /* ret */
ifeq 18
14: .line 377
return
end local 7 // boolean ret
15: .line 382
StackMap locals: sun.java2d.marlin.Dasher float float int int int int
StackMap stack:
aload 0 /* this */
iload 4 /* outcode1 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
16: .line 383
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
invokevirtual sun.java2d.marlin.Dasher.skipLineTo:(FF)V
17: .line 384
return
end local 6 // int sideCode
18: .line 388
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* outcode1 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
19: .line 390
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.outside:Z
ifeq 22
20: .line 391
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.outside:Z
21: .line 393
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.skipLen:()V
end local 5 // int orCode
end local 4 // int outcode1
22: .line 396
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
invokevirtual sun.java2d.marlin.Dasher._lineTo:(FF)V
23: .line 397
return
end local 3 // int outcode0
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/java2d/marlin/Dasher;
0 24 1 x1 F
0 24 2 y1 F
1 24 3 outcode0 I
3 22 4 outcode1 I
4 22 5 orCode I
6 18 6 sideCode I
12 15 7 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
private void _lineTo(float, float);
descriptor: (FF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=16, args_size=3
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
0: .line 400
fload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
fsub
fstore 3 /* dx */
start local 3 // float dx
1: .line 401
fload 2 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fsub
fstore 4 /* dy */
start local 4 // float dy
2: .line 403
fload 3 /* dx */
fload 3 /* dx */
fmul
fload 4 /* dy */
fload 4 /* dy */
fmul
fadd
fstore 5 /* len */
start local 5 // float len
3: .line 404
fload 5 /* len */
fconst_0
fcmpl
ifne 5
4: .line 405
return
5: .line 407
StackMap locals: float float float
StackMap stack:
fload 5 /* len */
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 5 /* len */
6: .line 411
fload 3 /* dx */
fload 5 /* len */
fdiv
fstore 6 /* cx */
start local 6 // float cx
7: .line 412
fload 4 /* dy */
fload 5 /* len */
fdiv
fstore 7 /* cy */
start local 7 // float cy
8: .line 414
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 8 /* _curCurvepts */
start local 8 // float[] _curCurvepts
9: .line 415
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dash:[F
astore 9 /* _dash */
start local 9 // float[] _dash
10: .line 416
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashLen:I
istore 10 /* _dashLen */
start local 10 // int _dashLen
11: .line 418
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.idx:I
istore 11 /* _idx */
start local 11 // int _idx
12: .line 419
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
istore 12 /* _dashOn */
start local 12 // boolean _dashOn
13: .line 420
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.phase:F
fstore 13 /* _phase */
start local 13 // float _phase
14: .line 425
StackMap locals: sun.java2d.marlin.Dasher float float float float float float float float[] float[] int int int float
StackMap stack:
aload 9 /* _dash */
iload 11 /* _idx */
faload
fload 13 /* _phase */
fsub
fstore 14 /* leftInThisDashSegment */
start local 14 // float leftInThisDashSegment
15: .line 426
fload 5 /* len */
fload 14 /* leftInThisDashSegment */
fsub
fstore 15 /* rem */
start local 15 // float rem
16: .line 428
fload 15 /* rem */
ldc 1.0E-6
fcmpg
ifgt 28
17: .line 429
aload 8 /* _curCurvepts */
iconst_0
fload 1 /* x1 */
fastore
18: .line 430
aload 8 /* _curCurvepts */
iconst_1
fload 2 /* y1 */
fastore
19: .line 432
aload 0 /* this */
aload 8 /* _curCurvepts */
iconst_0
iconst_4
iload 12 /* _dashOn */
invokevirtual sun.java2d.marlin.Dasher.goTo:([FIIZ)V
20: .line 435
fload 13 /* _phase */
fload 5 /* len */
fadd
fstore 13 /* _phase */
21: .line 438
fload 15 /* rem */
invokestatic java.lang.Math.abs:(F)F
ldc 1.0E-6
fcmpg
ifgt 38
22: .line 439
fconst_0
fstore 13 /* _phase */
23: .line 440
iload 11 /* _idx */
iconst_1
iadd
iload 10 /* _dashLen */
irem
istore 11 /* _idx */
24: .line 441
iload 12 /* _dashOn */
ifeq 25
iconst_0
goto 26
StackMap locals: float float
StackMap stack:
25: iconst_1
StackMap locals:
StackMap stack: int
26: istore 12 /* _dashOn */
27: .line 443
goto 38
28: .line 446
StackMap locals:
StackMap stack:
aload 8 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
fload 14 /* leftInThisDashSegment */
fload 6 /* cx */
fmul
fadd
fastore
29: .line 447
aload 8 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fload 14 /* leftInThisDashSegment */
fload 7 /* cy */
fmul
fadd
fastore
30: .line 449
aload 0 /* this */
aload 8 /* _curCurvepts */
iconst_0
iconst_4
iload 12 /* _dashOn */
invokevirtual sun.java2d.marlin.Dasher.goTo:([FIIZ)V
31: .line 451
fload 15 /* rem */
fstore 5 /* len */
32: .line 453
iload 11 /* _idx */
iconst_1
iadd
iload 10 /* _dashLen */
irem
istore 11 /* _idx */
33: .line 454
iload 12 /* _dashOn */
ifeq 34
iconst_0
goto 35
StackMap locals:
StackMap stack:
34: iconst_1
StackMap locals:
StackMap stack: int
35: istore 12 /* _dashOn */
36: .line 455
fconst_0
fstore 13 /* _phase */
end local 15 // float rem
end local 14 // float leftInThisDashSegment
37: .line 424
goto 14
start local 14 // float leftInThisDashSegment
start local 15 // float rem
38: .line 458
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* _idx */
putfield sun.java2d.marlin.Dasher.idx:I
39: .line 459
aload 0 /* this */
iload 12 /* _dashOn */
putfield sun.java2d.marlin.Dasher.dashOn:Z
40: .line 460
aload 0 /* this */
fload 13 /* _phase */
putfield sun.java2d.marlin.Dasher.phase:F
41: .line 461
return
end local 15 // float rem
end local 14 // float leftInThisDashSegment
end local 13 // float _phase
end local 12 // boolean _dashOn
end local 11 // int _idx
end local 10 // int _dashLen
end local 9 // float[] _dash
end local 8 // float[] _curCurvepts
end local 7 // float cy
end local 6 // float cx
end local 5 // float len
end local 4 // float dy
end local 3 // float dx
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lsun/java2d/marlin/Dasher;
0 42 1 x1 F
0 42 2 y1 F
1 42 3 dx F
2 42 4 dy F
3 42 5 len F
7 42 6 cx F
8 42 7 cy F
9 42 8 _curCurvepts [F
10 42 9 _dash [F
11 42 10 _dashLen I
12 42 11 _idx I
13 42 12 _dashOn Z
14 42 13 _phase F
15 37 14 leftInThisDashSegment F
38 42 14 leftInThisDashSegment F
16 37 15 rem F
38 42 15 rem F
MethodParameters:
Name Flags
x1 final
y1 final
private void skipLineTo(float, float);
descriptor: (FF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
0: .line 464
fload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
fsub
fstore 3 /* dx */
start local 3 // float dx
1: .line 465
fload 2 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fsub
fstore 4 /* dy */
start local 4 // float dy
2: .line 467
fload 3 /* dx */
fload 3 /* dx */
fmul
fload 4 /* dy */
fload 4 /* dy */
fmul
fadd
fstore 5 /* len */
start local 5 // float len
3: .line 468
fload 5 /* len */
fconst_0
fcmpl
ifeq 5
4: .line 469
fload 5 /* len */
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 5 /* len */
5: .line 473
StackMap locals: float float float
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.outside:Z
6: .line 474
aload 0 /* this */
dup
getfield sun.java2d.marlin.Dasher.totalSkipLen:F
fload 5 /* len */
fadd
putfield sun.java2d.marlin.Dasher.totalSkipLen:F
7: .line 477
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
8: .line 478
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.starting:Z
9: .line 480
aload 0 /* this */
fload 1 /* x1 */
putfield sun.java2d.marlin.Dasher.cx0:F
10: .line 481
aload 0 /* this */
fload 2 /* y1 */
putfield sun.java2d.marlin.Dasher.cy0:F
11: .line 482
return
end local 5 // float len
end local 4 // float dy
end local 3 // float dx
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/java2d/marlin/Dasher;
0 12 1 x1 F
0 12 2 y1 F
1 12 3 dx F
2 12 4 dy F
3 12 5 len F
MethodParameters:
Name Flags
x1 final
y1 final
public void skipLen();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=1
start local 0 // sun.java2d.marlin.Dasher this
0: .line 485
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.totalSkipLen:F
fstore 1 /* len */
start local 1 // float len
1: .line 486
aload 0 /* this */
fconst_0
putfield sun.java2d.marlin.Dasher.totalSkipLen:F
2: .line 488
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dash:[F
astore 2 /* _dash */
start local 2 // float[] _dash
3: .line 489
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashLen:I
istore 3 /* _dashLen */
start local 3 // int _dashLen
4: .line 491
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.idx:I
istore 4 /* _idx */
start local 4 // int _idx
5: .line 492
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
istore 5 /* _dashOn */
start local 5 // boolean _dashOn
6: .line 493
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.phase:F
fstore 6 /* _phase */
start local 6 // float _phase
7: .line 497
fload 1 /* len */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cycleLen:F
fdiv
f2d
invokestatic java.lang.Math.floor:(D)D
d2l
ldc 2
lsub
lstore 7 /* fullcycles */
start local 7 // long fullcycles
8: .line 499
lload 7 /* fullcycles */
lconst_0
lcmp
ifle 17
9: .line 500
fload 1 /* len */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cycleLen:F
lload 7 /* fullcycles */
l2f
fmul
fsub
fstore 1 /* len */
10: .line 502
lload 7 /* fullcycles */
iload 3 /* _dashLen */
i2l
lmul
lstore 9 /* iterations */
start local 9 // long iterations
11: .line 503
lload 9 /* iterations */
iload 4 /* _idx */
i2l
ladd
l2i
iload 3 /* _dashLen */
irem
istore 4 /* _idx */
12: .line 504
lload 9 /* iterations */
iload 5 /* _dashOn */
ifeq 13
lconst_1
goto 14
StackMap locals: sun.java2d.marlin.Dasher float float[] int int int float long long
StackMap stack: long
13: lconst_0
StackMap locals: sun.java2d.marlin.Dasher float float[] int int int float long long
StackMap stack: long long
14: ladd
lconst_1
land
lconst_1
lcmp
ifne 15
iconst_1
goto 16
StackMap locals:
StackMap stack:
15: iconst_0
StackMap locals:
StackMap stack: int
16: istore 5 /* _dashOn */
end local 9 // long iterations
17: .line 510
StackMap locals:
StackMap stack:
aload 2 /* _dash */
iload 4 /* _idx */
faload
fload 6 /* _phase */
fsub
fstore 9 /* leftInThisDashSegment */
start local 9 // float leftInThisDashSegment
18: .line 511
fload 1 /* len */
fload 9 /* leftInThisDashSegment */
fsub
fstore 10 /* rem */
start local 10 // float rem
19: .line 513
fload 10 /* rem */
ldc 1.0E-6
fcmpg
ifgt 28
20: .line 515
fload 6 /* _phase */
fload 1 /* len */
fadd
fstore 6 /* _phase */
21: .line 518
fload 10 /* rem */
invokestatic java.lang.Math.abs:(F)F
ldc 1.0E-6
fcmpg
ifgt 35
22: .line 519
fconst_0
fstore 6 /* _phase */
23: .line 520
iload 4 /* _idx */
iconst_1
iadd
iload 3 /* _dashLen */
irem
istore 4 /* _idx */
24: .line 521
iload 5 /* _dashOn */
ifeq 25
iconst_0
goto 26
StackMap locals: float float
StackMap stack:
25: iconst_1
StackMap locals:
StackMap stack: int
26: istore 5 /* _dashOn */
27: .line 523
goto 35
28: .line 526
StackMap locals:
StackMap stack:
fload 10 /* rem */
fstore 1 /* len */
29: .line 528
iload 4 /* _idx */
iconst_1
iadd
iload 3 /* _dashLen */
irem
istore 4 /* _idx */
30: .line 529
iload 5 /* _dashOn */
ifeq 31
iconst_0
goto 32
StackMap locals:
StackMap stack:
31: iconst_1
StackMap locals:
StackMap stack: int
32: istore 5 /* _dashOn */
33: .line 530
fconst_0
fstore 6 /* _phase */
end local 10 // float rem
end local 9 // float leftInThisDashSegment
34: .line 509
goto 17
start local 9 // float leftInThisDashSegment
start local 10 // float rem
35: .line 533
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* _idx */
putfield sun.java2d.marlin.Dasher.idx:I
36: .line 534
aload 0 /* this */
iload 5 /* _dashOn */
putfield sun.java2d.marlin.Dasher.dashOn:Z
37: .line 535
aload 0 /* this */
fload 6 /* _phase */
putfield sun.java2d.marlin.Dasher.phase:F
38: .line 536
return
end local 10 // float rem
end local 9 // float leftInThisDashSegment
end local 7 // long fullcycles
end local 6 // float _phase
end local 5 // boolean _dashOn
end local 4 // int _idx
end local 3 // int _dashLen
end local 2 // float[] _dash
end local 1 // float len
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/java2d/marlin/Dasher;
1 39 1 len F
3 39 2 _dash [F
4 39 3 _dashLen I
5 39 4 _idx I
6 39 5 _dashOn Z
7 39 6 _phase F
8 39 7 fullcycles J
11 17 9 iterations J
18 34 9 leftInThisDashSegment F
35 39 9 leftInThisDashSegment F
19 34 10 rem F
35 39 10 rem F
private void somethingTo(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=2
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // int type
0: .line 541
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 2 /* _curCurvepts */
start local 2 // float[] _curCurvepts
1: .line 542
aload 2 /* _curCurvepts */
iload 1 /* type */
invokestatic sun.java2d.marlin.Dasher.pointCurve:([FI)Z
ifeq 3
2: .line 543
return
3: .line 545
StackMap locals: float[]
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.li:Lsun/java2d/marlin/Dasher$LengthIterator;
astore 3 /* _li */
start local 3 // sun.java2d.marlin.Dasher$LengthIterator _li
4: .line 546
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dash:[F
astore 4 /* _dash */
start local 4 // float[] _dash
5: .line 547
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashLen:I
istore 5 /* _dashLen */
start local 5 // int _dashLen
6: .line 549
aload 3 /* _li */
aload 2 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.initializeIterationOnCurve:([FI)V
7: .line 551
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.idx:I
istore 6 /* _idx */
start local 6 // int _idx
8: .line 552
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
istore 7 /* _dashOn */
start local 7 // boolean _dashOn
9: .line 553
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.phase:F
fstore 8 /* _phase */
start local 8 // float _phase
10: .line 556
iconst_0
istore 9 /* curCurveoff */
start local 9 // int curCurveoff
11: .line 557
fconst_0
fstore 10 /* prevT */
start local 10 // float prevT
12: .line 559
aload 4 /* _dash */
iload 6 /* _idx */
faload
fload 8 /* _phase */
fsub
fstore 12 /* leftInThisDashSegment */
start local 12 // float leftInThisDashSegment
13: .line 561
goto 28
start local 11 // float t
14: .line 562
StackMap locals: sun.java2d.marlin.Dasher int float[] sun.java2d.marlin.Dasher$LengthIterator float[] int int int float int float float float
StackMap stack:
fload 11 /* t */
fconst_0
fcmpl
ifeq 22
15: .line 563
fload 11 /* t */
fload 10 /* prevT */
fsub
fconst_1
fload 10 /* prevT */
fsub
fdiv
16: .line 564
aload 2 /* _curCurvepts */
iload 9 /* curCurveoff */
17: .line 565
aload 2 /* _curCurvepts */
iconst_0
iload 1 /* type */
18: .line 563
invokestatic sun.java2d.marlin.Helpers.subdivideAt:(F[FI[FII)V
19: .line 566
fload 11 /* t */
fstore 10 /* prevT */
20: .line 567
aload 0 /* this */
aload 2 /* _curCurvepts */
iconst_2
iload 1 /* type */
iload 7 /* _dashOn */
invokevirtual sun.java2d.marlin.Dasher.goTo:([FIIZ)V
21: .line 568
iload 1 /* type */
istore 9 /* curCurveoff */
22: .line 571
StackMap locals:
StackMap stack:
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
23: .line 572
iload 7 /* _dashOn */
ifeq 24
iconst_0
goto 25
StackMap locals:
StackMap stack:
24: iconst_1
StackMap locals:
StackMap stack: int
25: istore 7 /* _dashOn */
26: .line 573
fconst_0
fstore 8 /* _phase */
27: .line 574
aload 4 /* _dash */
iload 6 /* _idx */
faload
fstore 12 /* leftInThisDashSegment */
end local 11 // float t
28: .line 561
StackMap locals: sun.java2d.marlin.Dasher int float[] sun.java2d.marlin.Dasher$LengthIterator float[] int int int float int float top float
StackMap stack:
aload 3 /* _li */
fload 12 /* leftInThisDashSegment */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.next:(F)F
dup
fstore 11 /* t */
start local 11 // float t
29: fconst_1
fcmpg
iflt 14
30: .line 577
aload 0 /* this */
aload 2 /* _curCurvepts */
iload 9 /* curCurveoff */
iconst_2
iadd
iload 1 /* type */
iload 7 /* _dashOn */
invokevirtual sun.java2d.marlin.Dasher.goTo:([FIIZ)V
31: .line 579
fload 8 /* _phase */
aload 3 /* _li */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.lastSegLen:()F
fadd
fstore 8 /* _phase */
32: .line 582
fload 8 /* _phase */
ldc 1.0E-6
fadd
aload 4 /* _dash */
iload 6 /* _idx */
faload
fcmpl
iflt 38
33: .line 583
fconst_0
fstore 8 /* _phase */
34: .line 584
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
35: .line 585
iload 7 /* _dashOn */
ifeq 36
iconst_0
goto 37
StackMap locals: sun.java2d.marlin.Dasher int float[] sun.java2d.marlin.Dasher$LengthIterator float[] int int int float int float float float
StackMap stack:
36: iconst_1
StackMap locals:
StackMap stack: int
37: istore 7 /* _dashOn */
38: .line 588
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 6 /* _idx */
putfield sun.java2d.marlin.Dasher.idx:I
39: .line 589
aload 0 /* this */
iload 7 /* _dashOn */
putfield sun.java2d.marlin.Dasher.dashOn:Z
40: .line 590
aload 0 /* this */
fload 8 /* _phase */
putfield sun.java2d.marlin.Dasher.phase:F
41: .line 593
aload 3 /* _li */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.reset:()V
42: .line 594
return
end local 12 // float leftInThisDashSegment
end local 11 // float t
end local 10 // float prevT
end local 9 // int curCurveoff
end local 8 // float _phase
end local 7 // boolean _dashOn
end local 6 // int _idx
end local 5 // int _dashLen
end local 4 // float[] _dash
end local 3 // sun.java2d.marlin.Dasher$LengthIterator _li
end local 2 // float[] _curCurvepts
end local 1 // int type
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/java2d/marlin/Dasher;
0 43 1 type I
1 43 2 _curCurvepts [F
4 43 3 _li Lsun/java2d/marlin/Dasher$LengthIterator;
5 43 4 _dash [F
6 43 5 _dashLen I
8 43 6 _idx I
9 43 7 _dashOn Z
10 43 8 _phase F
11 43 9 curCurveoff I
12 43 10 prevT F
14 28 11 t F
29 43 11 t F
13 43 12 leftInThisDashSegment F
MethodParameters:
Name Flags
type final
private void skipSomethingTo(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // int type
0: .line 597
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 2 /* _curCurvepts */
start local 2 // float[] _curCurvepts
1: .line 598
aload 2 /* _curCurvepts */
iload 1 /* type */
invokestatic sun.java2d.marlin.Dasher.pointCurve:([FI)Z
ifeq 3
2: .line 599
return
3: .line 601
StackMap locals: float[]
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.li:Lsun/java2d/marlin/Dasher$LengthIterator;
astore 3 /* _li */
start local 3 // sun.java2d.marlin.Dasher$LengthIterator _li
4: .line 603
aload 3 /* _li */
aload 2 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.initializeIterationOnCurve:([FI)V
5: .line 607
aload 3 /* _li */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.totalLength:()F
fstore 4 /* len */
start local 4 // float len
6: .line 610
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.outside:Z
7: .line 611
aload 0 /* this */
dup
getfield sun.java2d.marlin.Dasher.totalSkipLen:F
fload 4 /* len */
fadd
putfield sun.java2d.marlin.Dasher.totalSkipLen:F
8: .line 614
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
9: .line 615
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.starting:Z
10: .line 616
return
end local 4 // float len
end local 3 // sun.java2d.marlin.Dasher$LengthIterator _li
end local 2 // float[] _curCurvepts
end local 1 // int type
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/java2d/marlin/Dasher;
0 11 1 type I
1 11 2 _curCurvepts [F
4 11 3 _li Lsun/java2d/marlin/Dasher$LengthIterator;
6 11 4 len F
MethodParameters:
Name Flags
type final
private static boolean pointCurve(float[], int);
descriptor: ([FI)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 // float[] curve
start local 1 // int type
0: .line 619
iconst_2
istore 2 /* i */
start local 2 // int i
1: goto 5
2: .line 620
StackMap locals: int
StackMap stack:
aload 0 /* curve */
iload 2 /* i */
faload
aload 0 /* curve */
iload 2 /* i */
iconst_2
isub
faload
fcmpl
ifeq 4
3: .line 621
iconst_0
ireturn
4: .line 619
StackMap locals:
StackMap stack:
iinc 2 /* i */ 1
StackMap locals:
StackMap stack:
5: iload 2 /* i */
iload 1 /* type */
if_icmplt 2
end local 2 // int i
6: .line 624
iconst_1
ireturn
end local 1 // int type
end local 0 // float[] curve
LocalVariableTable:
Start End Slot Name Signature
0 7 0 curve [F
0 7 1 type I
1 6 2 i I
MethodParameters:
Name Flags
curve final
type final
public void curveTo(float, float, float, float, float, float);
descriptor: (FFFFFF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=14, args_size=7
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // float x3
start local 6 // float y3
0: .line 927
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cOutCode:I
istore 7 /* outcode0 */
start local 7 // int outcode0
1: .line 929
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
ifnull 24
2: .line 930
fload 1 /* x1 */
fload 2 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
invokestatic sun.java2d.marlin.Helpers.outcode:(FF[F)I
istore 8 /* outcode1 */
start local 8 // int outcode1
3: .line 931
fload 3 /* x2 */
fload 4 /* y2 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
invokestatic sun.java2d.marlin.Helpers.outcode:(FF[F)I
istore 9 /* outcode2 */
start local 9 // int outcode2
4: .line 932
fload 5 /* x3 */
fload 6 /* y3 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
invokestatic sun.java2d.marlin.Helpers.outcode:(FF[F)I
istore 10 /* outcode3 */
start local 10 // int outcode3
5: .line 935
iload 7 /* outcode0 */
iload 8 /* outcode1 */
ior
iload 9 /* outcode2 */
ior
iload 10 /* outcode3 */
ior
istore 11 /* orCode */
start local 11 // int orCode
6: .line 936
iload 11 /* orCode */
ifeq 20
7: .line 937
iload 7 /* outcode0 */
iload 8 /* outcode1 */
iand
iload 9 /* outcode2 */
iand
iload 10 /* outcode3 */
iand
istore 12 /* sideCode */
start local 12 // int sideCode
8: .line 940
iload 12 /* sideCode */
ifne 17
9: .line 942
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.subdivide:Z
ifeq 20
10: .line 944
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.subdivide:Z
11: .line 946
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curveSplitter:Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
fload 5 /* x3 */
fload 6 /* y3 */
12: .line 947
iload 11 /* orCode */
aload 0 /* this */
13: .line 946
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitCurve:(FFFFFFFFILsun/awt/geom/PathConsumer2D;)Z
istore 13 /* ret */
start local 13 // boolean ret
14: .line 949
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.subdivide:Z
15: .line 950
iload 13 /* ret */
ifeq 20
16: .line 951
return
end local 13 // boolean ret
17: .line 956
StackMap locals: sun.java2d.marlin.Dasher float float float float float float int int int int int int
StackMap stack:
aload 0 /* this */
iload 10 /* outcode3 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
18: .line 957
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
fload 5 /* x3 */
fload 6 /* y3 */
invokevirtual sun.java2d.marlin.Dasher.skipCurveTo:(FFFFFF)V
19: .line 958
return
end local 12 // int sideCode
20: .line 962
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 10 /* outcode3 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
21: .line 964
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.outside:Z
ifeq 24
22: .line 965
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.outside:Z
23: .line 967
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.skipLen:()V
end local 11 // int orCode
end local 10 // int outcode3
end local 9 // int outcode2
end local 8 // int outcode1
24: .line 970
StackMap locals: sun.java2d.marlin.Dasher float float float float float float int
StackMap stack:
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
fload 5 /* x3 */
fload 6 /* y3 */
invokevirtual sun.java2d.marlin.Dasher._curveTo:(FFFFFF)V
25: .line 971
return
end local 7 // int outcode0
end local 6 // float y3
end local 5 // float x3
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/java2d/marlin/Dasher;
0 26 1 x1 F
0 26 2 y1 F
0 26 3 x2 F
0 26 4 y2 F
0 26 5 x3 F
0 26 6 y3 F
1 26 7 outcode0 I
3 24 8 outcode1 I
4 24 9 outcode2 I
5 24 10 outcode3 I
6 24 11 orCode I
8 20 12 sideCode I
14 17 13 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
private void _curveTo(float, float, float, float, float, float);
descriptor: (FFFFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=13, args_size=7
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // float x3
start local 6 // float y3
0: .line 977
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 7 /* _curCurvepts */
start local 7 // float[] _curCurvepts
1: .line 981
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.monotonizer:Lsun/java2d/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
fload 5 /* x3 */
fload 6 /* y3 */
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.curve:(FFFFFFFF)Lsun/java2d/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
2: .line 980
astore 8 /* monotonizer */
start local 8 // sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
3: .line 983
aload 8 /* monotonizer */
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 9 /* nSplits */
start local 9 // int nSplits
4: .line 984
aload 8 /* monotonizer */
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
astore 10 /* mid */
start local 10 // float[] mid
5: .line 986
iconst_0
istore 11 /* i */
start local 11 // int i
6: iconst_0
istore 12 /* off */
start local 12 // int off
7: goto 11
8: .line 988
StackMap locals: sun.java2d.marlin.Dasher float float float float float float float[] sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer int float[] int int
StackMap stack:
aload 10 /* mid */
iload 12 /* off */
aload 7 /* _curCurvepts */
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: .line 990
aload 0 /* this */
bipush 8
invokevirtual sun.java2d.marlin.Dasher.somethingTo:(I)V
10: .line 986
iinc 11 /* i */ 1
iinc 12 /* off */ 6
StackMap locals:
StackMap stack:
11: iload 11 /* i */
iload 9 /* nSplits */
if_icmple 8
end local 12 // int off
end local 11 // int i
12: .line 992
return
end local 10 // float[] mid
end local 9 // int nSplits
end local 8 // sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
end local 7 // float[] _curCurvepts
end local 6 // float y3
end local 5 // float x3
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/java2d/marlin/Dasher;
0 13 1 x1 F
0 13 2 y1 F
0 13 3 x2 F
0 13 4 y2 F
0 13 5 x3 F
0 13 6 y3 F
1 13 7 _curCurvepts [F
3 13 8 monotonizer Lsun/java2d/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
4 13 9 nSplits I
5 13 10 mid [F
6 12 11 i I
7 12 12 off I
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
private void skipCurveTo(float, float, float, float, float, float);
descriptor: (FFFFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=7
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // float x3
start local 6 // float y3
0: .line 998
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 7 /* _curCurvepts */
start local 7 // float[] _curCurvepts
1: .line 999
aload 7 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
fastore
aload 7 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fastore
2: .line 1000
aload 7 /* _curCurvepts */
iconst_2
fload 1 /* x1 */
fastore
aload 7 /* _curCurvepts */
iconst_3
fload 2 /* y1 */
fastore
3: .line 1001
aload 7 /* _curCurvepts */
iconst_4
fload 3 /* x2 */
fastore
aload 7 /* _curCurvepts */
iconst_5
fload 4 /* y2 */
fastore
4: .line 1002
aload 7 /* _curCurvepts */
bipush 6
fload 5 /* x3 */
fastore
aload 7 /* _curCurvepts */
bipush 7
fload 6 /* y3 */
fastore
5: .line 1004
aload 0 /* this */
bipush 8
invokevirtual sun.java2d.marlin.Dasher.skipSomethingTo:(I)V
6: .line 1006
aload 0 /* this */
fload 5 /* x3 */
putfield sun.java2d.marlin.Dasher.cx0:F
7: .line 1007
aload 0 /* this */
fload 6 /* y3 */
putfield sun.java2d.marlin.Dasher.cy0:F
8: .line 1008
return
end local 7 // float[] _curCurvepts
end local 6 // float y3
end local 5 // float x3
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/java2d/marlin/Dasher;
0 9 1 x1 F
0 9 2 y1 F
0 9 3 x2 F
0 9 4 y2 F
0 9 5 x3 F
0 9 6 y3 F
1 9 7 _curCurvepts [F
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
public void quadTo(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=5
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
0: .line 1014
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cOutCode:I
istore 5 /* outcode0 */
start local 5 // int outcode0
1: .line 1016
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
ifnull 23
2: .line 1017
fload 1 /* x1 */
fload 2 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
invokestatic sun.java2d.marlin.Helpers.outcode:(FF[F)I
istore 6 /* outcode1 */
start local 6 // int outcode1
3: .line 1018
fload 3 /* x2 */
fload 4 /* y2 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
invokestatic sun.java2d.marlin.Helpers.outcode:(FF[F)I
istore 7 /* outcode2 */
start local 7 // int outcode2
4: .line 1021
iload 5 /* outcode0 */
iload 6 /* outcode1 */
ior
iload 7 /* outcode2 */
ior
istore 8 /* orCode */
start local 8 // int orCode
5: .line 1022
iload 8 /* orCode */
ifeq 19
6: .line 1023
iload 5 /* outcode0 */
iload 6 /* outcode1 */
iand
iload 7 /* outcode2 */
iand
istore 9 /* sideCode */
start local 9 // int sideCode
7: .line 1026
iload 9 /* sideCode */
ifne 16
8: .line 1028
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.subdivide:Z
ifeq 19
9: .line 1030
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.subdivide:Z
10: .line 1032
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curveSplitter:Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
11: .line 1033
fload 3 /* x2 */
fload 4 /* y2 */
iload 8 /* orCode */
aload 0 /* this */
12: .line 1032
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitQuad:(FFFFFFILsun/awt/geom/PathConsumer2D;)Z
istore 10 /* ret */
start local 10 // boolean ret
13: .line 1035
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.subdivide:Z
14: .line 1036
iload 10 /* ret */
ifeq 19
15: .line 1037
return
end local 10 // boolean ret
16: .line 1042
StackMap locals: sun.java2d.marlin.Dasher float float float float int int int int int
StackMap stack:
aload 0 /* this */
iload 7 /* outcode2 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
17: .line 1043
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
invokevirtual sun.java2d.marlin.Dasher.skipQuadTo:(FFFF)V
18: .line 1044
return
end local 9 // int sideCode
19: .line 1048
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 7 /* outcode2 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
20: .line 1050
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.outside:Z
ifeq 23
21: .line 1051
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.outside:Z
22: .line 1053
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.skipLen:()V
end local 8 // int orCode
end local 7 // int outcode2
end local 6 // int outcode1
23: .line 1056
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
invokevirtual sun.java2d.marlin.Dasher._quadTo:(FFFF)V
24: .line 1057
return
end local 5 // int outcode0
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/java2d/marlin/Dasher;
0 25 1 x1 F
0 25 2 y1 F
0 25 3 x2 F
0 25 4 y2 F
1 25 5 outcode0 I
3 23 6 outcode1 I
4 23 7 outcode2 I
5 23 8 orCode I
7 19 9 sideCode I
13 16 10 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
private void _quadTo(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=5
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
0: .line 1062
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 5 /* _curCurvepts */
start local 5 // float[] _curCurvepts
1: .line 1066
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.monotonizer:Lsun/java2d/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fload 1 /* x1 */
fload 2 /* y1 */
fload 3 /* x2 */
fload 4 /* y2 */
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.quad:(FFFFFF)Lsun/java2d/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
2: .line 1065
astore 6 /* monotonizer */
start local 6 // sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
3: .line 1068
aload 6 /* monotonizer */
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 7 /* nSplits */
start local 7 // int nSplits
4: .line 1069
aload 6 /* monotonizer */
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
astore 8 /* mid */
start local 8 // float[] mid
5: .line 1071
iconst_0
istore 9 /* i */
start local 9 // int i
6: iconst_0
istore 10 /* off */
start local 10 // int off
7: goto 11
8: .line 1073
StackMap locals: sun.java2d.marlin.Dasher float float float float float[] sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer int float[] int int
StackMap stack:
aload 8 /* mid */
iload 10 /* off */
aload 5 /* _curCurvepts */
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
9: .line 1075
aload 0 /* this */
bipush 6
invokevirtual sun.java2d.marlin.Dasher.somethingTo:(I)V
10: .line 1071
iinc 9 /* i */ 1
iinc 10 /* off */ 4
StackMap locals:
StackMap stack:
11: iload 9 /* i */
iload 7 /* nSplits */
if_icmple 8
end local 10 // int off
end local 9 // int i
12: .line 1077
return
end local 8 // float[] mid
end local 7 // int nSplits
end local 6 // sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
end local 5 // float[] _curCurvepts
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/java2d/marlin/Dasher;
0 13 1 x1 F
0 13 2 y1 F
0 13 3 x2 F
0 13 4 y2 F
1 13 5 _curCurvepts [F
3 13 6 monotonizer Lsun/java2d/marlin/TransformingPathConsumer2D$CurveBasicMonotonizer;
4 13 7 nSplits I
5 13 8 mid [F
6 12 9 i I
7 12 10 off I
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
private void skipQuadTo(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=5
start local 0 // sun.java2d.marlin.Dasher this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
0: .line 1082
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 5 /* _curCurvepts */
start local 5 // float[] _curCurvepts
1: .line 1083
aload 5 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
fastore
aload 5 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fastore
2: .line 1084
aload 5 /* _curCurvepts */
iconst_2
fload 1 /* x1 */
fastore
aload 5 /* _curCurvepts */
iconst_3
fload 2 /* y1 */
fastore
3: .line 1085
aload 5 /* _curCurvepts */
iconst_4
fload 3 /* x2 */
fastore
aload 5 /* _curCurvepts */
iconst_5
fload 4 /* y2 */
fastore
4: .line 1087
aload 0 /* this */
bipush 6
invokevirtual sun.java2d.marlin.Dasher.skipSomethingTo:(I)V
5: .line 1089
aload 0 /* this */
fload 3 /* x2 */
putfield sun.java2d.marlin.Dasher.cx0:F
6: .line 1090
aload 0 /* this */
fload 4 /* y2 */
putfield sun.java2d.marlin.Dasher.cy0:F
7: .line 1091
return
end local 5 // float[] _curCurvepts
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/java2d/marlin/Dasher;
0 8 1 x1 F
0 8 2 y1 F
0 8 3 x2 F
0 8 4 y2 F
1 8 5 _curCurvepts [F
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
public void closePath();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.java2d.marlin.Dasher this
0: .line 1095
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sx0:F
fcmpl
ifne 1
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sy0:F
fcmpl
ifeq 2
1: .line 1096
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sy0:F
invokevirtual sun.java2d.marlin.Dasher.lineTo:(FF)V
2: .line 1098
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
ifeq 6
3: .line 1099
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
ifeq 4
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.needsMoveTo:Z
ifeq 5
4: .line 1100
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sy0:F
invokeinterface sun.awt.geom.PathConsumer2D.moveTo:(FF)V
5: .line 1102
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.emitFirstSegments:()V
6: .line 1104
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sy0:F
invokevirtual sun.java2d.marlin.Dasher.moveTo:(FF)V
7: .line 1105
return
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/java2d/marlin/Dasher;
public void pathDone();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.java2d.marlin.Dasher this
0: .line 1109
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
ifeq 3
1: .line 1110
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sx0:F
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.sy0:F
invokeinterface sun.awt.geom.PathConsumer2D.moveTo:(FF)V
2: .line 1111
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.emitFirstSegments:()V
3: .line 1113
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
invokeinterface sun.awt.geom.PathConsumer2D.pathDone:()V
4: .line 1116
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.dispose:()V
5: .line 1117
return
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/java2d/marlin/Dasher;
public long getNativeConsumer();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.java2d.marlin.Dasher this
0: .line 1121
new java.lang.InternalError
dup
ldc "Dasher does not use a native consumer"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 0 // sun.java2d.marlin.Dasher this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/java2d/marlin/Dasher;
}
SourceFile: "Dasher.java"
NestMembers:
sun.java2d.marlin.Dasher$LengthIterator
InnerClasses:
final LengthIterator = sun.java2d.marlin.Dasher$LengthIterator of sun.java2d.marlin.Dasher
final Reference = sun.java2d.marlin.FloatArrayCache$Reference of sun.java2d.marlin.FloatArrayCache
final CurveBasicMonotonizer = sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer of sun.java2d.marlin.TransformingPathConsumer2D
final CurveClipSplitter = sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter of sun.java2d.marlin.TransformingPathConsumer2D