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 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 54
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 116
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 100
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.cOutCode:I
2: .line 102
aload 0 /* this */
getstatic sun.java2d.marlin.Dasher.DO_CLIP_SUBDIVIDER:Z
putfield sun.java2d.marlin.Dasher.subdivide:Z
3: .line 104
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 117
aload 0 /* this */
aload 1 /* rdrCtx */
putfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
5: .line 119
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 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.firstSegmentsBuffer_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
7: .line 122
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 126
aload 0 /* this */
bipush 16
newarray 6
putfield sun.java2d.marlin.Dasher.curCurvepts:[F
9: .line 128
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 129
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 144
aload 0 /* this */
aload 1 /* out */
putfield sun.java2d.marlin.Dasher.out:Lsun/awt/geom/PathConsumer2D;
1: .line 147
iconst_0
istore 6 /* sidx */
start local 6 // int sidx
2: .line 148
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.dashOn:Z
3: .line 151
fconst_0
fstore 7 /* sum */
start local 7 // float sum
4: .line 152
iconst_0
istore 8 /* i */
start local 8 // int i
5: goto 8
6: .line 153
StackMap locals: int float int
StackMap stack:
fload 7 /* sum */
aload 2 /* dash */
iload 8 /* i */
faload
fadd
fstore 7 /* sum */
7: .line 152
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 155
aload 0 /* this */
fload 7 /* sum */
putfield sun.java2d.marlin.Dasher.cycleLen:F
10: .line 157
fload 4 /* phase */
fload 7 /* sum */
fdiv
fstore 8 /* cycles */
start local 8 // float cycles
11: .line 158
fload 4 /* phase */
fconst_0
fcmpg
ifge 30
12: .line 159
fload 8 /* cycles */
fneg
ldc 1.6E7
fcmpl
iflt 15
13: .line 160
fconst_0
fstore 4 /* phase */
14: .line 161
goto 48
15: .line 162
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 163
iload 9 /* fullcycles */
iload 3 /* dashLen */
iand
iconst_1
iand
ifeq 20
17: .line 164
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 166
StackMap locals:
StackMap stack:
fload 4 /* phase */
iload 9 /* fullcycles */
i2f
fload 7 /* sum */
fmul
fadd
fstore 4 /* phase */
21: .line 167
goto 28
22: .line 168
StackMap locals:
StackMap stack:
iinc 6 /* sidx */ -1
iload 6 /* sidx */
ifge 24
23: .line 169
iload 3 /* dashLen */
iconst_1
isub
istore 6 /* sidx */
24: .line 171
StackMap locals:
StackMap stack:
fload 4 /* phase */
aload 2 /* dash */
iload 6 /* sidx */
faload
fadd
fstore 4 /* phase */
25: .line 172
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 167
StackMap locals:
StackMap stack:
fload 4 /* phase */
fconst_0
fcmpg
iflt 22
end local 9 // int fullcycles
29: .line 175
goto 48
StackMap locals:
StackMap stack:
30: fload 4 /* phase */
fconst_0
fcmpl
ifle 48
31: .line 176
fload 8 /* cycles */
ldc 1.6E7
fcmpl
iflt 34
32: .line 177
fconst_0
fstore 4 /* phase */
33: .line 178
goto 48
34: .line 179
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 180
iload 9 /* fullcycles */
iload 3 /* dashLen */
iand
iconst_1
iand
ifeq 39
36: .line 181
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 183
StackMap locals:
StackMap stack:
fload 4 /* phase */
iload 9 /* fullcycles */
i2f
fload 7 /* sum */
fmul
fsub
fstore 4 /* phase */
40: .line 185
goto 46
start local 10 // float d
41: .line 186
StackMap locals: float
StackMap stack:
fload 4 /* phase */
fload 10 /* d */
fsub
fstore 4 /* phase */
42: .line 187
iload 6 /* sidx */
iconst_1
iadd
iload 3 /* dashLen */
irem
istore 6 /* sidx */
43: .line 188
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 185
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 193
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 2 /* dash */
putfield sun.java2d.marlin.Dasher.dash:[F
49: .line 194
aload 0 /* this */
iload 3 /* dashLen */
putfield sun.java2d.marlin.Dasher.dashLen:I
50: .line 195
aload 0 /* this */
fload 4 /* phase */
putfield sun.java2d.marlin.Dasher.phase:F
51: .line 196
aload 0 /* this */
fload 4 /* phase */
putfield sun.java2d.marlin.Dasher.startPhase:F
52: .line 197
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
putfield sun.java2d.marlin.Dasher.startDashOn:Z
53: .line 198
aload 0 /* this */
iload 6 /* sidx */
putfield sun.java2d.marlin.Dasher.startIdx:I
54: .line 199
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.starting:Z
55: .line 200
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
56: .line 201
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.firstSegidx:I
57: .line 203
aload 0 /* this */
iload 5 /* recycleDashes */
putfield sun.java2d.marlin.Dasher.recycleDashes:Z
58: .line 205
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.doClip:Z
ifeq 61
59: .line 206
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 207
goto 63
61: .line 208
StackMap locals:
StackMap stack:
aload 0 /* this */
aconst_null
putfield sun.java2d.marlin.Dasher.clipRect:[F
62: .line 209
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.cOutCode:I
63: .line 211
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 224
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.recycleDashes:Z
ifeq 2
1: .line 225
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 227
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 228
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 231
aload 1 /* dashes */
arraylength
istore 2 /* len */
start local 2 // int len
1: .line 233
iload 2 /* len */
sipush 256
if_icmpgt 4
2: .line 234
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 235
goto 7
end local 3 // float[] newDashes
4: .line 236
StackMap locals: int
StackMap stack:
getstatic sun.java2d.marlin.Dasher.DO_STATS:Z
ifeq 6
5: .line 237
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 239
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 241
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 242
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 247
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
ifeq 3
1: .line 248
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 249
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.emitFirstSegments:()V
3: .line 251
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
4: .line 252
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.startIdx:I
putfield sun.java2d.marlin.Dasher.idx:I
5: .line 253
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.startDashOn:Z
putfield sun.java2d.marlin.Dasher.dashOn:Z
6: .line 254
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.startPhase:F
putfield sun.java2d.marlin.Dasher.phase:F
7: .line 255
aload 0 /* this */
fload 1 /* x0 */
putfield sun.java2d.marlin.Dasher.cx0:F
8: .line 256
aload 0 /* this */
fload 2 /* y0 */
putfield sun.java2d.marlin.Dasher.cy0:F
9: .line 259
aload 0 /* this */
fload 1 /* x0 */
putfield sun.java2d.marlin.Dasher.sx0:F
10: .line 260
aload 0 /* this */
fload 2 /* y0 */
putfield sun.java2d.marlin.Dasher.sy0:F
11: .line 261
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.starting:Z
12: .line 263
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
ifnull 17
13: .line 264
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 265
aload 0 /* this */
iload 3 /* outcode */
putfield sun.java2d.marlin.Dasher.cOutCode:I
15: .line 266
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.outside:Z
16: .line 267
aload 0 /* this */
fconst_0
putfield sun.java2d.marlin.Dasher.totalSkipLen:F
end local 3 // int outcode
17: .line 269
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 272
iload 3 /* type */
tableswitch { // 4 - 8
4: 10
5: 12
6: 6
7: 12
8: 1
default: 12
}
1: .line 274
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
2: .line 275
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
faload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
faload
3: .line 276
aload 1 /* buf */
iload 2 /* off */
iconst_4
iadd
faload
aload 1 /* buf */
iload 2 /* off */
iconst_5
iadd
faload
4: .line 274
invokeinterface sun.awt.geom.PathConsumer2D.curveTo:(FFFFFF)V
5: .line 277
return
6: .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
7: .line 280
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
faload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
faload
8: .line 279
invokeinterface sun.awt.geom.PathConsumer2D.quadTo:(FFFF)V
9: .line 281
return
10: .line 283
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
11: .line 284
return
12: .line 287
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 290
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
astore 1 /* fSegBuf */
start local 1 // float[] fSegBuf
1: .line 292
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 293
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 294
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 295
iload 2 /* i */
iload 4 /* type */
iconst_1
isub
iadd
istore 2 /* i */
end local 4 // int type
7: .line 292
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 297
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.firstSegidx:I
9: .line 298
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 304
iload 2 /* off */
iload 3 /* type */
iadd
istore 5 /* index */
start local 5 // int index
1: .line 305
aload 1 /* pts */
iload 5 /* index */
iconst_4
isub
faload
fstore 6 /* x */
start local 6 // float x
2: .line 306
aload 1 /* pts */
iload 5 /* index */
iconst_3
isub
faload
fstore 7 /* y */
start local 7 // float y
3: .line 308
iload 4 /* on */
ifeq 12
4: .line 309
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.starting:Z
ifeq 7
5: .line 310
aload 0 /* this */
aload 1 /* pts */
iload 2 /* off */
iload 3 /* type */
invokevirtual sun.java2d.marlin.Dasher.goTo_starting:([FII)V
6: .line 311
goto 15
7: .line 312
StackMap locals: int float float
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.needsMoveTo:Z
ifeq 10
8: .line 313
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
9: .line 314
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 316
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 318
goto 15
12: .line 319
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.starting:Z
ifeq 14
13: .line 321
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.starting:Z
14: .line 323
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
15: .line 325
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 6 /* x */
putfield sun.java2d.marlin.Dasher.cx0:F
16: .line 326
aload 0 /* this */
fload 7 /* y */
putfield sun.java2d.marlin.Dasher.cy0:F
17: .line 327
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 330
iload 3 /* type */
iconst_1
isub
istore 4 /* len */
start local 4 // int len
1: .line 331
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
istore 5 /* segIdx */
start local 5 // int segIdx
2: .line 332
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
astore 6 /* buf */
start local 6 // float[] buf
3: .line 334
iload 5 /* segIdx */
iload 4 /* len */
iadd
aload 6 /* buf */
arraylength
if_icmple 12
4: .line 335
getstatic sun.java2d.marlin.Dasher.DO_STATS:Z
ifeq 7
5: .line 336
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 337
iload 5 /* segIdx */
iload 4 /* len */
iadd
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
7: .line 339
StackMap locals: int int float[]
StackMap stack:
aload 0 /* this */
8: .line 340
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/FloatArrayCache$Reference;
aload 6 /* buf */
iload 5 /* segIdx */
9: .line 341
iload 5 /* segIdx */
iload 4 /* len */
iadd
10: .line 340
invokevirtual sun.java2d.marlin.FloatArrayCache$Reference.widenArray:([FII)[F
11: .line 339
dup
astore 6 /* buf */
putfield sun.java2d.marlin.Dasher.firstSegmentsBuffer:[F
12: .line 343
StackMap locals:
StackMap stack:
aload 6 /* buf */
iload 5 /* segIdx */
iinc 5 /* segIdx */ 1
iload 3 /* type */
i2f
fastore
13: .line 344
iinc 4 /* len */ -1
14: .line 346
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 347
aload 0 /* this */
iload 5 /* segIdx */
iload 4 /* len */
iadd
putfield sun.java2d.marlin.Dasher.firstSegidx:I
16: .line 348
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 352
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cOutCode:I
istore 3 /* outcode0 */
start local 3 // int outcode0
1: .line 354
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
ifnull 22
2: .line 355
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 358
iload 3 /* outcode0 */
iload 4 /* outcode1 */
ior
istore 5 /* orCode */
start local 5 // int orCode
4: .line 360
iload 5 /* orCode */
ifeq 18
5: .line 361
iload 3 /* outcode0 */
iload 4 /* outcode1 */
iand
istore 6 /* sideCode */
start local 6 // int sideCode
6: .line 364
iload 6 /* sideCode */
ifne 15
7: .line 366
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.subdivide:Z
ifeq 18
8: .line 368
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.subdivide:Z
9: .line 370
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 371
iload 5 /* orCode */
aload 0 /* this */
11: .line 370
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitLine:(FFFFILsun/awt/geom/PathConsumer2D;)Z
istore 7 /* ret */
start local 7 // boolean ret
12: .line 373
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.subdivide:Z
13: .line 374
iload 7 /* ret */
ifeq 18
14: .line 375
return
end local 7 // boolean ret
15: .line 380
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 381
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
invokevirtual sun.java2d.marlin.Dasher.skipLineTo:(FF)V
17: .line 382
return
end local 6 // int sideCode
18: .line 386
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* outcode1 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
19: .line 388
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.outside:Z
ifeq 22
20: .line 389
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.outside:Z
21: .line 391
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.skipLen:()V
end local 5 // int orCode
end local 4 // int outcode1
22: .line 394
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 1 /* x1 */
fload 2 /* y1 */
invokevirtual sun.java2d.marlin.Dasher._lineTo:(FF)V
23: .line 395
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 398
fload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
fsub
fstore 3 /* dx */
start local 3 // float dx
1: .line 399
fload 2 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fsub
fstore 4 /* dy */
start local 4 // float dy
2: .line 401
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 402
fload 5 /* len */
fconst_0
fcmpl
ifne 5
4: .line 403
return
5: .line 405
StackMap locals: float float float
StackMap stack:
fload 5 /* len */
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 5 /* len */
6: .line 409
fload 3 /* dx */
fload 5 /* len */
fdiv
fstore 6 /* cx */
start local 6 // float cx
7: .line 410
fload 4 /* dy */
fload 5 /* len */
fdiv
fstore 7 /* cy */
start local 7 // float cy
8: .line 412
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 8 /* _curCurvepts */
start local 8 // float[] _curCurvepts
9: .line 413
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dash:[F
astore 9 /* _dash */
start local 9 // float[] _dash
10: .line 414
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashLen:I
istore 10 /* _dashLen */
start local 10 // int _dashLen
11: .line 416
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.idx:I
istore 11 /* _idx */
start local 11 // int _idx
12: .line 417
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
istore 12 /* _dashOn */
start local 12 // boolean _dashOn
13: .line 418
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.phase:F
fstore 13 /* _phase */
start local 13 // float _phase
14: .line 423
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
fstore 15 /* d */
start local 15 // float d
15: .line 424
fload 15 /* d */
fload 13 /* _phase */
fsub
fstore 14 /* leftInThisDashSegment */
start local 14 // float leftInThisDashSegment
16: .line 426
fload 5 /* len */
fload 14 /* leftInThisDashSegment */
fcmpg
ifgt 28
17: .line 427
aload 8 /* _curCurvepts */
iconst_0
fload 1 /* x1 */
fastore
18: .line 428
aload 8 /* _curCurvepts */
iconst_1
fload 2 /* y1 */
fastore
19: .line 430
aload 0 /* this */
aload 8 /* _curCurvepts */
iconst_0
iconst_4
iload 12 /* _dashOn */
invokevirtual sun.java2d.marlin.Dasher.goTo:([FIIZ)V
20: .line 433
fload 13 /* _phase */
fload 5 /* len */
fadd
fstore 13 /* _phase */
21: .line 436
fload 5 /* len */
fload 14 /* leftInThisDashSegment */
fcmpl
ifne 42
22: .line 437
fconst_0
fstore 13 /* _phase */
23: .line 438
iload 11 /* _idx */
iconst_1
iadd
iload 10 /* _dashLen */
irem
istore 11 /* _idx */
24: .line 439
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 441
goto 42
28: .line 444
StackMap locals:
StackMap stack:
fload 13 /* _phase */
fconst_0
fcmpl
ifne 32
29: .line 445
aload 8 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
fload 15 /* d */
fload 6 /* cx */
fmul
fadd
fastore
30: .line 446
aload 8 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fload 15 /* d */
fload 7 /* cy */
fmul
fadd
fastore
31: .line 447
goto 34
32: .line 448
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
33: .line 449
aload 8 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fload 14 /* leftInThisDashSegment */
fload 7 /* cy */
fmul
fadd
fastore
34: .line 452
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 8 /* _curCurvepts */
iconst_0
iconst_4
iload 12 /* _dashOn */
invokevirtual sun.java2d.marlin.Dasher.goTo:([FIIZ)V
35: .line 454
fload 5 /* len */
fload 14 /* leftInThisDashSegment */
fsub
fstore 5 /* len */
36: .line 456
iload 11 /* _idx */
iconst_1
iadd
iload 10 /* _dashLen */
irem
istore 11 /* _idx */
37: .line 457
iload 12 /* _dashOn */
ifeq 38
iconst_0
goto 39
StackMap locals:
StackMap stack:
38: iconst_1
StackMap locals:
StackMap stack: int
39: istore 12 /* _dashOn */
40: .line 458
fconst_0
fstore 13 /* _phase */
end local 15 // float d
end local 14 // float leftInThisDashSegment
41: .line 422
goto 14
start local 14 // float leftInThisDashSegment
start local 15 // float d
42: .line 461
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* _idx */
putfield sun.java2d.marlin.Dasher.idx:I
43: .line 462
aload 0 /* this */
iload 12 /* _dashOn */
putfield sun.java2d.marlin.Dasher.dashOn:Z
44: .line 463
aload 0 /* this */
fload 13 /* _phase */
putfield sun.java2d.marlin.Dasher.phase:F
45: .line 464
return
end local 15 // float d
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 46 0 this Lsun/java2d/marlin/Dasher;
0 46 1 x1 F
0 46 2 y1 F
1 46 3 dx F
2 46 4 dy F
3 46 5 len F
7 46 6 cx F
8 46 7 cy F
9 46 8 _curCurvepts [F
10 46 9 _dash [F
11 46 10 _dashLen I
12 46 11 _idx I
13 46 12 _dashOn Z
14 46 13 _phase F
16 41 14 leftInThisDashSegment F
42 46 14 leftInThisDashSegment F
15 41 15 d F
42 46 15 d 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 467
fload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cx0:F
fsub
fstore 3 /* dx */
start local 3 // float dx
1: .line 468
fload 2 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cy0:F
fsub
fstore 4 /* dy */
start local 4 // float dy
2: .line 470
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 471
fload 5 /* len */
fconst_0
fcmpl
ifeq 5
4: .line 472
fload 5 /* len */
f2d
invokestatic java.lang.Math.sqrt:(D)D
d2f
fstore 5 /* len */
5: .line 476
StackMap locals: float float float
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.outside:Z
6: .line 477
aload 0 /* this */
dup
getfield sun.java2d.marlin.Dasher.totalSkipLen:F
fload 5 /* len */
fadd
putfield sun.java2d.marlin.Dasher.totalSkipLen:F
7: .line 480
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
8: .line 481
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.starting:Z
9: .line 483
aload 0 /* this */
fload 1 /* x1 */
putfield sun.java2d.marlin.Dasher.cx0:F
10: .line 484
aload 0 /* this */
fload 2 /* y1 */
putfield sun.java2d.marlin.Dasher.cy0:F
11: .line 485
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 488
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.totalSkipLen:F
fstore 1 /* len */
start local 1 // float len
1: .line 489
aload 0 /* this */
fconst_0
putfield sun.java2d.marlin.Dasher.totalSkipLen:F
2: .line 491
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dash:[F
astore 2 /* _dash */
start local 2 // float[] _dash
3: .line 492
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashLen:I
istore 3 /* _dashLen */
start local 3 // int _dashLen
4: .line 494
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.idx:I
istore 4 /* _idx */
start local 4 // int _idx
5: .line 495
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
istore 5 /* _dashOn */
start local 5 // boolean _dashOn
6: .line 496
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.phase:F
fstore 6 /* _phase */
start local 6 // float _phase
7: .line 500
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 502
lload 7 /* fullcycles */
lconst_0
lcmp
ifle 17
9: .line 503
fload 1 /* len */
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cycleLen:F
lload 7 /* fullcycles */
l2f
fmul
fsub
fstore 1 /* len */
10: .line 505
lload 7 /* fullcycles */
iload 3 /* _dashLen */
i2l
lmul
lstore 9 /* iterations */
start local 9 // long iterations
11: .line 506
lload 9 /* iterations */
iload 4 /* _idx */
i2l
ladd
l2i
iload 3 /* _dashLen */
irem
istore 4 /* _idx */
12: .line 507
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 513
StackMap locals:
StackMap stack:
aload 2 /* _dash */
iload 4 /* _idx */
faload
fstore 10 /* d */
start local 10 // float d
18: .line 514
fload 10 /* d */
fload 6 /* _phase */
fsub
fstore 9 /* leftInThisDashSegment */
start local 9 // float leftInThisDashSegment
19: .line 516
fload 1 /* len */
fload 9 /* leftInThisDashSegment */
fcmpg
ifgt 28
20: .line 518
fload 6 /* _phase */
fload 1 /* len */
fadd
fstore 6 /* _phase */
21: .line 521
fload 1 /* len */
fload 9 /* leftInThisDashSegment */
fcmpl
ifne 35
22: .line 522
fconst_0
fstore 6 /* _phase */
23: .line 523
iload 4 /* _idx */
iconst_1
iadd
iload 3 /* _dashLen */
irem
istore 4 /* _idx */
24: .line 524
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 526
goto 35
28: .line 529
StackMap locals:
StackMap stack:
fload 1 /* len */
fload 9 /* leftInThisDashSegment */
fsub
fstore 1 /* len */
29: .line 531
iload 4 /* _idx */
iconst_1
iadd
iload 3 /* _dashLen */
irem
istore 4 /* _idx */
30: .line 532
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 533
fconst_0
fstore 6 /* _phase */
end local 10 // float d
end local 9 // float leftInThisDashSegment
34: .line 512
goto 17
start local 9 // float leftInThisDashSegment
start local 10 // float d
35: .line 536
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 4 /* _idx */
putfield sun.java2d.marlin.Dasher.idx:I
36: .line 537
aload 0 /* this */
iload 5 /* _dashOn */
putfield sun.java2d.marlin.Dasher.dashOn:Z
37: .line 538
aload 0 /* this */
fload 6 /* _phase */
putfield sun.java2d.marlin.Dasher.phase:F
38: .line 539
return
end local 10 // float d
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
19 34 9 leftInThisDashSegment F
35 39 9 leftInThisDashSegment F
18 34 10 d F
35 39 10 d 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 544
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 2 /* _curCurvepts */
start local 2 // float[] _curCurvepts
1: .line 545
aload 2 /* _curCurvepts */
iload 1 /* type */
invokestatic sun.java2d.marlin.Dasher.pointCurve:([FI)Z
ifeq 3
2: .line 546
return
3: .line 548
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 549
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dash:[F
astore 4 /* _dash */
start local 4 // float[] _dash
5: .line 550
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashLen:I
istore 5 /* _dashLen */
start local 5 // int _dashLen
6: .line 552
aload 3 /* _li */
aload 2 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.initializeIterationOnCurve:([FI)V
7: .line 554
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.idx:I
istore 6 /* _idx */
start local 6 // int _idx
8: .line 555
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.dashOn:Z
istore 7 /* _dashOn */
start local 7 // boolean _dashOn
9: .line 556
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.phase:F
fstore 8 /* _phase */
start local 8 // float _phase
10: .line 559
iconst_0
istore 9 /* curCurveoff */
start local 9 // int curCurveoff
11: .line 560
fconst_0
fstore 10 /* prevT */
start local 10 // float prevT
12: .line 562
aload 4 /* _dash */
iload 6 /* _idx */
faload
fload 8 /* _phase */
fsub
fstore 12 /* leftInThisDashSegment */
start local 12 // float leftInThisDashSegment
13: .line 564
goto 28
start local 11 // float t
14: .line 565
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 566
fload 11 /* t */
fload 10 /* prevT */
fsub
fconst_1
fload 10 /* prevT */
fsub
fdiv
16: .line 567
aload 2 /* _curCurvepts */
iload 9 /* curCurveoff */
17: .line 568
aload 2 /* _curCurvepts */
iconst_0
iload 1 /* type */
18: .line 566
invokestatic sun.java2d.marlin.Helpers.subdivideAt:(F[FI[FII)V
19: .line 569
fload 11 /* t */
fstore 10 /* prevT */
20: .line 570
aload 0 /* this */
aload 2 /* _curCurvepts */
iconst_2
iload 1 /* type */
iload 7 /* _dashOn */
invokevirtual sun.java2d.marlin.Dasher.goTo:([FIIZ)V
21: .line 571
iload 1 /* type */
istore 9 /* curCurveoff */
22: .line 574
StackMap locals:
StackMap stack:
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
23: .line 575
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 576
fconst_0
fstore 8 /* _phase */
27: .line 577
aload 4 /* _dash */
iload 6 /* _idx */
faload
fstore 12 /* leftInThisDashSegment */
end local 11 // float t
28: .line 564
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 580
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 582
fload 8 /* _phase */
aload 3 /* _li */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.lastSegLen:()F
fadd
fstore 8 /* _phase */
32: .line 583
fload 8 /* _phase */
aload 4 /* _dash */
iload 6 /* _idx */
faload
fcmpl
iflt 38
33: .line 584
fconst_0
fstore 8 /* _phase */
34: .line 585
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
35: .line 586
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 589
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 6 /* _idx */
putfield sun.java2d.marlin.Dasher.idx:I
39: .line 590
aload 0 /* this */
iload 7 /* _dashOn */
putfield sun.java2d.marlin.Dasher.dashOn:Z
40: .line 591
aload 0 /* this */
fload 8 /* _phase */
putfield sun.java2d.marlin.Dasher.phase:F
41: .line 594
aload 3 /* _li */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.reset:()V
42: .line 595
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 598
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 2 /* _curCurvepts */
start local 2 // float[] _curCurvepts
1: .line 599
aload 2 /* _curCurvepts */
iload 1 /* type */
invokestatic sun.java2d.marlin.Dasher.pointCurve:([FI)Z
ifeq 3
2: .line 600
return
3: .line 602
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 604
aload 3 /* _li */
aload 2 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.initializeIterationOnCurve:([FI)V
5: .line 608
aload 3 /* _li */
invokevirtual sun.java2d.marlin.Dasher$LengthIterator.totalLength:()F
fstore 4 /* len */
start local 4 // float len
6: .line 611
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.outside:Z
7: .line 612
aload 0 /* this */
dup
getfield sun.java2d.marlin.Dasher.totalSkipLen:F
fload 4 /* len */
fadd
putfield sun.java2d.marlin.Dasher.totalSkipLen:F
8: .line 615
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.needsMoveTo:Z
9: .line 616
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.starting:Z
10: .line 617
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 620
iconst_2
istore 2 /* i */
start local 2 // int i
1: goto 5
2: .line 621
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 622
iconst_0
ireturn
4: .line 620
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 625
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 928
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cOutCode:I
istore 7 /* outcode0 */
start local 7 // int outcode0
1: .line 930
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
ifnull 24
2: .line 931
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 932
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 933
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 936
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 937
iload 11 /* orCode */
ifeq 20
7: .line 938
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 941
iload 12 /* sideCode */
ifne 17
9: .line 943
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.subdivide:Z
ifeq 20
10: .line 945
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.subdivide:Z
11: .line 947
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 948
iload 11 /* orCode */
aload 0 /* this */
13: .line 947
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitCurve:(FFFFFFFFILsun/awt/geom/PathConsumer2D;)Z
istore 13 /* ret */
start local 13 // boolean ret
14: .line 950
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.subdivide:Z
15: .line 951
iload 13 /* ret */
ifeq 20
16: .line 952
return
end local 13 // boolean ret
17: .line 957
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 958
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 959
return
end local 12 // int sideCode
20: .line 963
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 10 /* outcode3 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
21: .line 965
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.outside:Z
ifeq 24
22: .line 966
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.outside:Z
23: .line 968
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 971
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 972
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 978
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 7 /* _curCurvepts */
start local 7 // float[] _curCurvepts
1: .line 982
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 981
astore 8 /* monotonizer */
start local 8 // sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
3: .line 984
aload 8 /* monotonizer */
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 9 /* nSplits */
start local 9 // int nSplits
4: .line 985
aload 8 /* monotonizer */
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
astore 10 /* mid */
start local 10 // float[] mid
5: .line 987
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 989
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 991
aload 0 /* this */
bipush 8
invokevirtual sun.java2d.marlin.Dasher.somethingTo:(I)V
10: .line 987
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 993
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 999
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 7 /* _curCurvepts */
start local 7 // float[] _curCurvepts
1: .line 1000
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 1001
aload 7 /* _curCurvepts */
iconst_2
fload 1 /* x1 */
fastore
aload 7 /* _curCurvepts */
iconst_3
fload 2 /* y1 */
fastore
3: .line 1002
aload 7 /* _curCurvepts */
iconst_4
fload 3 /* x2 */
fastore
aload 7 /* _curCurvepts */
iconst_5
fload 4 /* y2 */
fastore
4: .line 1003
aload 7 /* _curCurvepts */
bipush 6
fload 5 /* x3 */
fastore
aload 7 /* _curCurvepts */
bipush 7
fload 6 /* y3 */
fastore
5: .line 1005
aload 0 /* this */
bipush 8
invokevirtual sun.java2d.marlin.Dasher.skipSomethingTo:(I)V
6: .line 1007
aload 0 /* this */
fload 5 /* x3 */
putfield sun.java2d.marlin.Dasher.cx0:F
7: .line 1008
aload 0 /* this */
fload 6 /* y3 */
putfield sun.java2d.marlin.Dasher.cy0:F
8: .line 1009
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 1015
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.cOutCode:I
istore 5 /* outcode0 */
start local 5 // int outcode0
1: .line 1017
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.clipRect:[F
ifnull 23
2: .line 1018
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 1019
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 1022
iload 5 /* outcode0 */
iload 6 /* outcode1 */
ior
iload 7 /* outcode2 */
ior
istore 8 /* orCode */
start local 8 // int orCode
5: .line 1023
iload 8 /* orCode */
ifeq 19
6: .line 1024
iload 5 /* outcode0 */
iload 6 /* outcode1 */
iand
iload 7 /* outcode2 */
iand
istore 9 /* sideCode */
start local 9 // int sideCode
7: .line 1027
iload 9 /* sideCode */
ifne 16
8: .line 1029
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.subdivide:Z
ifeq 19
9: .line 1031
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.subdivide:Z
10: .line 1033
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 1034
fload 3 /* x2 */
fload 4 /* y2 */
iload 8 /* orCode */
aload 0 /* this */
12: .line 1033
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.splitQuad:(FFFFFFILsun/awt/geom/PathConsumer2D;)Z
istore 10 /* ret */
start local 10 // boolean ret
13: .line 1036
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.Dasher.subdivide:Z
14: .line 1037
iload 10 /* ret */
ifeq 19
15: .line 1038
return
end local 10 // boolean ret
16: .line 1043
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 1044
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 1045
return
end local 9 // int sideCode
19: .line 1049
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 7 /* outcode2 */
putfield sun.java2d.marlin.Dasher.cOutCode:I
20: .line 1051
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.outside:Z
ifeq 23
21: .line 1052
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.Dasher.outside:Z
22: .line 1054
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 1057
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 1058
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 1063
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 5 /* _curCurvepts */
start local 5 // float[] _curCurvepts
1: .line 1067
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 1066
astore 6 /* monotonizer */
start local 6 // sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
3: .line 1069
aload 6 /* monotonizer */
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 7 /* nSplits */
start local 7 // int nSplits
4: .line 1070
aload 6 /* monotonizer */
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveBasicMonotonizer.middle:[F
astore 8 /* mid */
start local 8 // float[] mid
5: .line 1072
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 1074
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 1076
aload 0 /* this */
bipush 6
invokevirtual sun.java2d.marlin.Dasher.somethingTo:(I)V
10: .line 1072
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 1078
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 1083
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.curCurvepts:[F
astore 5 /* _curCurvepts */
start local 5 // float[] _curCurvepts
1: .line 1084
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 1085
aload 5 /* _curCurvepts */
iconst_2
fload 1 /* x1 */
fastore
aload 5 /* _curCurvepts */
iconst_3
fload 2 /* y1 */
fastore
3: .line 1086
aload 5 /* _curCurvepts */
iconst_4
fload 3 /* x2 */
fastore
aload 5 /* _curCurvepts */
iconst_5
fload 4 /* y2 */
fastore
4: .line 1088
aload 0 /* this */
bipush 6
invokevirtual sun.java2d.marlin.Dasher.skipSomethingTo:(I)V
5: .line 1090
aload 0 /* this */
fload 3 /* x2 */
putfield sun.java2d.marlin.Dasher.cx0:F
6: .line 1091
aload 0 /* this */
fload 4 /* y2 */
putfield sun.java2d.marlin.Dasher.cy0:F
7: .line 1092
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 1096
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 1097
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 1099
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
ifeq 6
3: .line 1100
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 1101
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 1103
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.emitFirstSegments:()V
6: .line 1105
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 1106
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 1110
aload 0 /* this */
getfield sun.java2d.marlin.Dasher.firstSegidx:I
ifeq 3
1: .line 1111
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 1112
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.emitFirstSegments:()V
3: .line 1114
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 1117
aload 0 /* this */
invokevirtual sun.java2d.marlin.Dasher.dispose:()V
5: .line 1118
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 1122
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