final class sun.java2d.marlin.DDasher implements sun.java2d.marlin.DPathConsumer2D, sun.java2d.marlin.MarlinConst
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.java2d.marlin.DDasher
super_class: java.lang.Object
{
static final int REC_LIMIT;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16
static final double CURVE_LEN_ERR;
descriptor: D
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final double MIN_T_INC;
descriptor: D
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1.52587890625E-5
static final double MAX_CYCLES;
descriptor: D
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1.6E7
private sun.java2d.marlin.DPathConsumer2D out;
descriptor: Lsun/java2d/marlin/DPathConsumer2D;
flags: (0x0002) ACC_PRIVATE
private double[] dash;
descriptor: [D
flags: (0x0002) ACC_PRIVATE
private int dashLen;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private double startPhase;
descriptor: D
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 double phase;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double sx0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double sy0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double cx0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double cy0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private final double[] curCurvepts;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final sun.java2d.marlin.DRendererContext rdrCtx;
descriptor: Lsun/java2d/marlin/DRendererContext;
flags: (0x0010) ACC_FINAL
boolean recycleDashes;
descriptor: Z
flags: (0x0000)
private double[] firstSegmentsBuffer;
descriptor: [D
flags: (0x0002) ACC_PRIVATE
private int firstSegidx;
descriptor: I
flags: (0x0002) ACC_PRIVATE
final sun.java2d.marlin.DoubleArrayCache$Reference dashes_ref;
descriptor: Lsun/java2d/marlin/DoubleArrayCache$Reference;
flags: (0x0010) ACC_FINAL
final sun.java2d.marlin.DoubleArrayCache$Reference firstSegmentsBuffer_ref;
descriptor: Lsun/java2d/marlin/DoubleArrayCache$Reference;
flags: (0x0010) ACC_FINAL
private double[] clipRect;
descriptor: [D
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.DDasher$LengthIterator li;
descriptor: Lsun/java2d/marlin/DDasher$LengthIterator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.java2d.marlin.DTransformingPathConsumer2D$CurveClipSplitter curveSplitter;
descriptor: Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private double cycleLen;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private boolean outside;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private double totalSkipLen;
descriptor: D
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: .line 47
invokestatic sun.java2d.marlin.MarlinProperties.getCurveLengthError:()F
f2d
putstatic sun.java2d.marlin.DDasher.CURVE_LEN_ERR:D
1: .line 53
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.java2d.marlin.DRendererContext);
descriptor: (Lsun/java2d/marlin/DRendererContext;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // sun.java2d.marlin.DRendererContext rdrCtx
0: .line 115
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 99
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.cOutCode:I
2: .line 101
aload 0 /* this */
getstatic sun.java2d.marlin.DDasher.DO_CLIP_SUBDIVIDER:Z
putfield sun.java2d.marlin.DDasher.subdivide:Z
3: .line 103
aload 0 /* this */
new sun.java2d.marlin.DDasher$LengthIterator
dup
invokespecial sun.java2d.marlin.DDasher$LengthIterator.<init>:()V
putfield sun.java2d.marlin.DDasher.li:Lsun/java2d/marlin/DDasher$LengthIterator;
4: .line 116
aload 0 /* this */
aload 1 /* rdrCtx */
putfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
5: .line 118
aload 0 /* this */
aload 1 /* rdrCtx */
sipush 256
invokevirtual sun.java2d.marlin.DRendererContext.newDirtyDoubleArrayRef:(I)Lsun/java2d/marlin/DoubleArrayCache$Reference;
putfield sun.java2d.marlin.DDasher.dashes_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
6: .line 120
aload 0 /* this */
aload 1 /* rdrCtx */
sipush 256
invokevirtual sun.java2d.marlin.DRendererContext.newDirtyDoubleArrayRef:(I)Lsun/java2d/marlin/DoubleArrayCache$Reference;
putfield sun.java2d.marlin.DDasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
7: .line 121
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
getfield sun.java2d.marlin.DoubleArrayCache$Reference.initial:[D
putfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
8: .line 125
aload 0 /* this */
bipush 16
newarray 7
putfield sun.java2d.marlin.DDasher.curCurvepts:[D
9: .line 127
aload 0 /* this */
aload 1 /* rdrCtx */
getfield sun.java2d.marlin.DRendererContext.curveClipSplitter:Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
putfield sun.java2d.marlin.DDasher.curveSplitter:Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
10: .line 128
return
end local 1 // sun.java2d.marlin.DRendererContext rdrCtx
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/java2d/marlin/DDasher;
0 11 1 rdrCtx Lsun/java2d/marlin/DRendererContext;
MethodParameters:
Name Flags
rdrCtx final
sun.java2d.marlin.DDasher init(sun.java2d.marlin.DPathConsumer2D, double[], int, double, boolean);
descriptor: (Lsun/java2d/marlin/DPathConsumer2D;[DIDZ)Lsun/java2d/marlin/DDasher;
flags: (0x0000)
Code:
stack=6, locals=15, args_size=6
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // sun.java2d.marlin.DPathConsumer2D out
start local 2 // double[] dash
start local 3 // int dashLen
start local 4 // double phase
start local 6 // boolean recycleDashes
0: .line 143
aload 0 /* this */
aload 1 /* out */
putfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
1: .line 146
iconst_0
istore 7 /* sidx */
start local 7 // int sidx
2: .line 147
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.dashOn:Z
3: .line 150
dconst_0
dstore 8 /* sum */
start local 8 // double sum
4: .line 151
iconst_0
istore 10 /* i */
start local 10 // int i
5: goto 8
6: .line 152
StackMap locals: int double int
StackMap stack:
dload 8 /* sum */
aload 2 /* dash */
iload 10 /* i */
daload
dadd
dstore 8 /* sum */
7: .line 151
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 10 /* i */
iload 3 /* dashLen */
if_icmplt 6
end local 10 // int i
9: .line 154
aload 0 /* this */
dload 8 /* sum */
putfield sun.java2d.marlin.DDasher.cycleLen:D
10: .line 156
dload 4 /* phase */
dload 8 /* sum */
ddiv
dstore 10 /* cycles */
start local 10 // double cycles
11: .line 157
dload 4 /* phase */
dconst_0
dcmpg
ifge 30
12: .line 158
dload 10 /* cycles */
dneg
ldc 1.6E7
dcmpl
iflt 15
13: .line 159
dconst_0
dstore 4 /* phase */
14: .line 160
goto 48
15: .line 161
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double
StackMap stack:
dload 10 /* cycles */
dneg
invokestatic sun.java2d.marlin.FloatMath.floor_int:(D)I
istore 12 /* fullcycles */
start local 12 // int fullcycles
16: .line 162
iload 12 /* fullcycles */
iload 3 /* dashLen */
iand
iconst_1
iand
ifeq 20
17: .line 163
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 18
iconst_0
goto 19
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double int
StackMap stack: sun.java2d.marlin.DDasher
18: iconst_1
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double int
StackMap stack: sun.java2d.marlin.DDasher int
19: putfield sun.java2d.marlin.DDasher.dashOn:Z
20: .line 165
StackMap locals:
StackMap stack:
dload 4 /* phase */
iload 12 /* fullcycles */
i2d
dload 8 /* sum */
dmul
dadd
dstore 4 /* phase */
21: .line 166
goto 28
22: .line 167
StackMap locals:
StackMap stack:
iinc 7 /* sidx */ -1
iload 7 /* sidx */
ifge 24
23: .line 168
iload 3 /* dashLen */
iconst_1
isub
istore 7 /* sidx */
24: .line 170
StackMap locals:
StackMap stack:
dload 4 /* phase */
aload 2 /* dash */
iload 7 /* sidx */
daload
dadd
dstore 4 /* phase */
25: .line 171
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 26
iconst_0
goto 27
StackMap locals:
StackMap stack: sun.java2d.marlin.DDasher
26: iconst_1
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double int
StackMap stack: sun.java2d.marlin.DDasher int
27: putfield sun.java2d.marlin.DDasher.dashOn:Z
28: .line 166
StackMap locals:
StackMap stack:
dload 4 /* phase */
dconst_0
dcmpg
iflt 22
end local 12 // int fullcycles
29: .line 174
goto 48
StackMap locals:
StackMap stack:
30: dload 4 /* phase */
dconst_0
dcmpl
ifle 48
31: .line 175
dload 10 /* cycles */
ldc 1.6E7
dcmpl
iflt 34
32: .line 176
dconst_0
dstore 4 /* phase */
33: .line 177
goto 48
34: .line 178
StackMap locals:
StackMap stack:
dload 10 /* cycles */
invokestatic sun.java2d.marlin.FloatMath.floor_int:(D)I
istore 12 /* fullcycles */
start local 12 // int fullcycles
35: .line 179
iload 12 /* fullcycles */
iload 3 /* dashLen */
iand
iconst_1
iand
ifeq 39
36: .line 180
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 37
iconst_0
goto 38
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double int
StackMap stack: sun.java2d.marlin.DDasher
37: iconst_1
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double int
StackMap stack: sun.java2d.marlin.DDasher int
38: putfield sun.java2d.marlin.DDasher.dashOn:Z
39: .line 182
StackMap locals:
StackMap stack:
dload 4 /* phase */
iload 12 /* fullcycles */
i2d
dload 8 /* sum */
dmul
dsub
dstore 4 /* phase */
40: .line 184
goto 46
start local 13 // double d
41: .line 185
StackMap locals: double
StackMap stack:
dload 4 /* phase */
dload 13 /* d */
dsub
dstore 4 /* phase */
42: .line 186
iload 7 /* sidx */
iconst_1
iadd
iload 3 /* dashLen */
irem
istore 7 /* sidx */
43: .line 187
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 44
iconst_0
goto 45
StackMap locals:
StackMap stack: sun.java2d.marlin.DDasher
44: iconst_1
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double int double
StackMap stack: sun.java2d.marlin.DDasher int
45: putfield sun.java2d.marlin.DDasher.dashOn:Z
end local 13 // double d
46: .line 184
StackMap locals:
StackMap stack:
dload 4 /* phase */
aload 2 /* dash */
iload 7 /* sidx */
daload
dup2
dstore 13 /* d */
start local 13 // double d
47: dcmpl
ifge 41
end local 13 // double d
end local 12 // int fullcycles
48: .line 192
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 2 /* dash */
putfield sun.java2d.marlin.DDasher.dash:[D
49: .line 193
aload 0 /* this */
iload 3 /* dashLen */
putfield sun.java2d.marlin.DDasher.dashLen:I
50: .line 194
aload 0 /* this */
dload 4 /* phase */
putfield sun.java2d.marlin.DDasher.phase:D
51: .line 195
aload 0 /* this */
dload 4 /* phase */
putfield sun.java2d.marlin.DDasher.startPhase:D
52: .line 196
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
putfield sun.java2d.marlin.DDasher.startDashOn:Z
53: .line 197
aload 0 /* this */
iload 7 /* sidx */
putfield sun.java2d.marlin.DDasher.startIdx:I
54: .line 198
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.starting:Z
55: .line 199
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
56: .line 200
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.firstSegidx:I
57: .line 202
aload 0 /* this */
iload 6 /* recycleDashes */
putfield sun.java2d.marlin.DDasher.recycleDashes:Z
58: .line 204
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
getfield sun.java2d.marlin.DRendererContext.doClip:Z
ifeq 61
59: .line 205
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
getfield sun.java2d.marlin.DRendererContext.clipRect:[D
putfield sun.java2d.marlin.DDasher.clipRect:[D
60: .line 206
goto 63
61: .line 207
StackMap locals:
StackMap stack:
aload 0 /* this */
aconst_null
putfield sun.java2d.marlin.DDasher.clipRect:[D
62: .line 208
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.cOutCode:I
63: .line 210
StackMap locals:
StackMap stack:
aload 0 /* this */
areturn
end local 10 // double cycles
end local 8 // double sum
end local 7 // int sidx
end local 6 // boolean recycleDashes
end local 4 // double phase
end local 3 // int dashLen
end local 2 // double[] dash
end local 1 // sun.java2d.marlin.DPathConsumer2D out
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 64 0 this Lsun/java2d/marlin/DDasher;
0 64 1 out Lsun/java2d/marlin/DPathConsumer2D;
0 64 2 dash [D
0 64 3 dashLen I
0 64 4 phase D
0 64 6 recycleDashes Z
2 64 7 sidx I
4 64 8 sum D
5 9 10 i I
11 64 10 cycles D
16 29 12 fullcycles I
35 48 12 fullcycles I
41 46 13 d D
47 48 13 d D
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.DDasher this
0: .line 223
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.recycleDashes:Z
ifeq 2
1: .line 224
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashes_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
invokevirtual sun.java2d.marlin.DoubleArrayCache$Reference.putArray:([D)[D
putfield sun.java2d.marlin.DDasher.dash:[D
2: .line 226
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
invokevirtual sun.java2d.marlin.DoubleArrayCache$Reference.putArray:([D)[D
putfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
3: .line 227
return
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/java2d/marlin/DDasher;
double[] copyDashArray(float[]);
descriptor: ([F)[D
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // float[] dashes
0: .line 230
aload 1 /* dashes */
arraylength
istore 2 /* len */
start local 2 // int len
1: .line 232
iload 2 /* len */
sipush 256
if_icmpgt 4
2: .line 233
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashes_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
getfield sun.java2d.marlin.DoubleArrayCache$Reference.initial:[D
astore 3 /* newDashes */
start local 3 // double[] newDashes
3: .line 234
goto 7
end local 3 // double[] newDashes
4: .line 235
StackMap locals: int
StackMap stack:
getstatic sun.java2d.marlin.DDasher.DO_STATS:Z
ifeq 6
5: .line 236
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
getfield sun.java2d.marlin.DRendererContext.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 238
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashes_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
iload 2 /* len */
invokevirtual sun.java2d.marlin.DoubleArrayCache$Reference.getArray:(I)[D
astore 3 /* newDashes */
start local 3 // double[] newDashes
7: .line 240
StackMap locals: double[]
StackMap stack:
iconst_0
istore 4 /* i */
start local 4 // int i
8: goto 10
StackMap locals: int
StackMap stack:
9: aload 3 /* newDashes */
iload 4 /* i */
aload 1 /* dashes */
iload 4 /* i */
faload
f2d
dastore
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
10: iload 4 /* i */
iload 2 /* len */
if_icmplt 9
end local 4 // int i
11: .line 241
aload 3 /* newDashes */
areturn
end local 3 // double[] newDashes
end local 2 // int len
end local 1 // float[] dashes
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/java2d/marlin/DDasher;
0 12 1 dashes [F
1 12 2 len I
3 4 3 newDashes [D
7 12 3 newDashes [D
8 11 4 i I
MethodParameters:
Name Flags
dashes final
public void moveTo(double, double);
descriptor: (DD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x0
start local 3 // double y0
0: .line 246
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 3
1: .line 247
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy0:D
invokeinterface sun.java2d.marlin.DPathConsumer2D.moveTo:(DD)V
2: .line 248
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
3: .line 250
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
4: .line 251
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startIdx:I
putfield sun.java2d.marlin.DDasher.idx:I
5: .line 252
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startDashOn:Z
putfield sun.java2d.marlin.DDasher.dashOn:Z
6: .line 253
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startPhase:D
putfield sun.java2d.marlin.DDasher.phase:D
7: .line 254
aload 0 /* this */
dload 1 /* x0 */
putfield sun.java2d.marlin.DDasher.cx0:D
8: .line 255
aload 0 /* this */
dload 3 /* y0 */
putfield sun.java2d.marlin.DDasher.cy0:D
9: .line 258
aload 0 /* this */
dload 1 /* x0 */
putfield sun.java2d.marlin.DDasher.sx0:D
10: .line 259
aload 0 /* this */
dload 3 /* y0 */
putfield sun.java2d.marlin.DDasher.sy0:D
11: .line 260
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.starting:Z
12: .line 262
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
ifnull 17
13: .line 263
dload 1 /* x0 */
dload 3 /* y0 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
invokestatic sun.java2d.marlin.DHelpers.outcode:(DD[D)I
istore 5 /* outcode */
start local 5 // int outcode
14: .line 264
aload 0 /* this */
iload 5 /* outcode */
putfield sun.java2d.marlin.DDasher.cOutCode:I
15: .line 265
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.outside:Z
16: .line 266
aload 0 /* this */
dconst_0
putfield sun.java2d.marlin.DDasher.totalSkipLen:D
end local 5 // int outcode
17: .line 268
StackMap locals:
StackMap stack:
return
end local 3 // double y0
end local 1 // double x0
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/java2d/marlin/DDasher;
0 18 1 x0 D
0 18 3 y0 D
14 17 5 outcode I
MethodParameters:
Name Flags
x0 final
y0 final
private void emitSeg(double[], int, int);
descriptor: ([DII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=14, locals=4, args_size=4
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double[] buf
start local 2 // int off
start local 3 // int type
0: .line 271
iload 3 /* type */
tableswitch { // 4 - 8
4: 10
5: 12
6: 6
7: 12
8: 1
default: 12
}
1: .line 273
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 1 /* buf */
iload 2 /* off */
daload
aload 1 /* buf */
iload 2 /* off */
iconst_1
iadd
daload
2: .line 274
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
daload
3: .line 275
aload 1 /* buf */
iload 2 /* off */
iconst_4
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_5
iadd
daload
4: .line 273
invokeinterface sun.java2d.marlin.DPathConsumer2D.curveTo:(DDDDDD)V
5: .line 276
return
6: .line 278
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 1 /* buf */
iload 2 /* off */
daload
aload 1 /* buf */
iload 2 /* off */
iconst_1
iadd
daload
7: .line 279
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
daload
8: .line 278
invokeinterface sun.java2d.marlin.DPathConsumer2D.quadTo:(DDDD)V
9: .line 280
return
10: .line 282
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 1 /* buf */
iload 2 /* off */
daload
aload 1 /* buf */
iload 2 /* off */
iconst_1
iadd
daload
invokeinterface sun.java2d.marlin.DPathConsumer2D.lineTo:(DD)V
11: .line 283
return
12: .line 286
StackMap locals:
StackMap stack:
return
end local 3 // int type
end local 2 // int off
end local 1 // double[] buf
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/java2d/marlin/DDasher;
0 13 1 buf [D
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.DDasher this
0: .line 289
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
astore 1 /* fSegBuf */
start local 1 // double[] fSegBuf
1: .line 291
iconst_0
istore 2 /* i */
start local 2 // int i
2: aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
istore 3 /* len */
start local 3 // int len
3: goto 7
4: .line 292
StackMap locals: double[] int int
StackMap stack:
aload 1 /* fSegBuf */
iload 2 /* i */
daload
d2i
istore 4 /* type */
start local 4 // int type
5: .line 293
aload 0 /* this */
aload 1 /* fSegBuf */
iload 2 /* i */
iconst_1
iadd
iload 4 /* type */
invokevirtual sun.java2d.marlin.DDasher.emitSeg:([DII)V
6: .line 294
iload 2 /* i */
iload 4 /* type */
iconst_1
isub
iadd
istore 2 /* i */
end local 4 // int type
7: .line 291
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 296
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.firstSegidx:I
9: .line 297
return
end local 1 // double[] fSegBuf
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/java2d/marlin/DDasher;
1 10 1 fSegBuf [D
2 8 2 i I
3 8 3 len I
5 7 4 type I
private void goTo(double[], int, int, boolean);
descriptor: ([DIIZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=5
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double[] pts
start local 2 // int off
start local 3 // int type
start local 4 // boolean on
0: .line 303
iload 2 /* off */
iload 3 /* type */
iadd
istore 5 /* index */
start local 5 // int index
1: .line 304
aload 1 /* pts */
iload 5 /* index */
iconst_4
isub
daload
dstore 6 /* x */
start local 6 // double x
2: .line 305
aload 1 /* pts */
iload 5 /* index */
iconst_3
isub
daload
dstore 8 /* y */
start local 8 // double y
3: .line 307
iload 4 /* on */
ifeq 12
4: .line 308
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.starting:Z
ifeq 7
5: .line 309
aload 0 /* this */
aload 1 /* pts */
iload 2 /* off */
iload 3 /* type */
invokevirtual sun.java2d.marlin.DDasher.goTo_starting:([DII)V
6: .line 310
goto 15
7: .line 311
StackMap locals: int double double
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.needsMoveTo:Z
ifeq 10
8: .line 312
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
9: .line 313
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
invokeinterface sun.java2d.marlin.DPathConsumer2D.moveTo:(DD)V
10: .line 315
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* pts */
iload 2 /* off */
iload 3 /* type */
invokevirtual sun.java2d.marlin.DDasher.emitSeg:([DII)V
11: .line 317
goto 15
12: .line 318
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.starting:Z
ifeq 14
13: .line 320
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.starting:Z
14: .line 322
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
15: .line 324
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 6 /* x */
putfield sun.java2d.marlin.DDasher.cx0:D
16: .line 325
aload 0 /* this */
dload 8 /* y */
putfield sun.java2d.marlin.DDasher.cy0:D
17: .line 326
return
end local 8 // double y
end local 6 // double x
end local 5 // int index
end local 4 // boolean on
end local 3 // int type
end local 2 // int off
end local 1 // double[] pts
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lsun/java2d/marlin/DDasher;
0 18 1 pts [D
0 18 2 off I
0 18 3 type I
0 18 4 on Z
1 18 5 index I
2 18 6 x D
3 18 8 y D
MethodParameters:
Name Flags
pts final
off final
type final
on final
private void goTo_starting(double[], int, int);
descriptor: ([DII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=4
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double[] pts
start local 2 // int off
start local 3 // int type
0: .line 329
iload 3 /* type */
iconst_1
isub
istore 4 /* len */
start local 4 // int len
1: .line 330
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
istore 5 /* segIdx */
start local 5 // int segIdx
2: .line 331
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
astore 6 /* buf */
start local 6 // double[] buf
3: .line 333
iload 5 /* segIdx */
iload 4 /* len */
iadd
aload 6 /* buf */
arraylength
if_icmple 12
4: .line 334
getstatic sun.java2d.marlin.DDasher.DO_STATS:Z
ifeq 7
5: .line 335
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
getfield sun.java2d.marlin.DRendererContext.stats:Lsun/java2d/marlin/RendererStats;
getfield sun.java2d.marlin.RendererStats.stat_array_dasher_firstSegmentsBuffer:Lsun/java2d/marlin/stats/StatLong;
6: .line 336
iload 5 /* segIdx */
iload 4 /* len */
iadd
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
7: .line 338
StackMap locals: int int double[]
StackMap stack:
aload 0 /* this */
8: .line 339
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
aload 6 /* buf */
iload 5 /* segIdx */
9: .line 340
iload 5 /* segIdx */
iload 4 /* len */
iadd
10: .line 339
invokevirtual sun.java2d.marlin.DoubleArrayCache$Reference.widenArray:([DII)[D
11: .line 338
dup
astore 6 /* buf */
putfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
12: .line 342
StackMap locals:
StackMap stack:
aload 6 /* buf */
iload 5 /* segIdx */
iinc 5 /* segIdx */ 1
iload 3 /* type */
i2d
dastore
13: .line 343
iinc 4 /* len */ -1
14: .line 345
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 346
aload 0 /* this */
iload 5 /* segIdx */
iload 4 /* len */
iadd
putfield sun.java2d.marlin.DDasher.firstSegidx:I
16: .line 347
return
end local 6 // double[] buf
end local 5 // int segIdx
end local 4 // int len
end local 3 // int type
end local 2 // int off
end local 1 // double[] pts
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/java2d/marlin/DDasher;
0 17 1 pts [D
0 17 2 off I
0 17 3 type I
1 17 4 len I
2 17 5 segIdx I
3 17 6 buf [D
MethodParameters:
Name Flags
pts final
off final
type final
public void lineTo(double, double);
descriptor: (DD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=10, args_size=3
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
0: .line 351
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cOutCode:I
istore 5 /* outcode0 */
start local 5 // int outcode0
1: .line 353
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
ifnull 22
2: .line 354
dload 1 /* x1 */
dload 3 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
invokestatic sun.java2d.marlin.DHelpers.outcode:(DD[D)I
istore 6 /* outcode1 */
start local 6 // int outcode1
3: .line 357
iload 5 /* outcode0 */
iload 6 /* outcode1 */
ior
istore 7 /* orCode */
start local 7 // int orCode
4: .line 359
iload 7 /* orCode */
ifeq 18
5: .line 360
iload 5 /* outcode0 */
iload 6 /* outcode1 */
iand
istore 8 /* sideCode */
start local 8 // int sideCode
6: .line 363
iload 8 /* sideCode */
ifne 15
7: .line 365
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.subdivide:Z
ifeq 18
8: .line 367
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.subdivide:Z
9: .line 369
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curveSplitter:Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
10: .line 370
iload 7 /* orCode */
aload 0 /* this */
11: .line 369
invokevirtual sun.java2d.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitLine:(DDDDILsun/java2d/marlin/DPathConsumer2D;)Z
istore 9 /* ret */
start local 9 // boolean ret
12: .line 372
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.subdivide:Z
13: .line 373
iload 9 /* ret */
ifeq 18
14: .line 374
return
end local 9 // boolean ret
15: .line 379
StackMap locals: sun.java2d.marlin.DDasher double double int int int int
StackMap stack:
aload 0 /* this */
iload 6 /* outcode1 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
16: .line 380
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
invokevirtual sun.java2d.marlin.DDasher.skipLineTo:(DD)V
17: .line 381
return
end local 8 // int sideCode
18: .line 385
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 6 /* outcode1 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
19: .line 387
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.outside:Z
ifeq 22
20: .line 388
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.outside:Z
21: .line 390
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.skipLen:()V
end local 7 // int orCode
end local 6 // int outcode1
22: .line 393
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
invokevirtual sun.java2d.marlin.DDasher._lineTo:(DD)V
23: .line 394
return
end local 5 // int outcode0
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/java2d/marlin/DDasher;
0 24 1 x1 D
0 24 3 y1 D
1 24 5 outcode0 I
3 22 6 outcode1 I
4 22 7 orCode I
6 18 8 sideCode I
12 15 9 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
private void _lineTo(double, double);
descriptor: (DD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=26, args_size=3
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
0: .line 397
dload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
dsub
dstore 5 /* dx */
start local 5 // double dx
1: .line 398
dload 3 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dsub
dstore 7 /* dy */
start local 7 // double dy
2: .line 400
dload 5 /* dx */
dload 5 /* dx */
dmul
dload 7 /* dy */
dload 7 /* dy */
dmul
dadd
dstore 9 /* len */
start local 9 // double len
3: .line 401
dload 9 /* len */
dconst_0
dcmpl
ifne 5
4: .line 402
return
5: .line 404
StackMap locals: double double double
StackMap stack:
dload 9 /* len */
invokestatic java.lang.Math.sqrt:(D)D
dstore 9 /* len */
6: .line 408
dload 5 /* dx */
dload 9 /* len */
ddiv
dstore 11 /* cx */
start local 11 // double cx
7: .line 409
dload 7 /* dy */
dload 9 /* len */
ddiv
dstore 13 /* cy */
start local 13 // double cy
8: .line 411
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 15 /* _curCurvepts */
start local 15 // double[] _curCurvepts
9: .line 412
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
astore 16 /* _dash */
start local 16 // double[] _dash
10: .line 413
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashLen:I
istore 17 /* _dashLen */
start local 17 // int _dashLen
11: .line 415
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.idx:I
istore 18 /* _idx */
start local 18 // int _idx
12: .line 416
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
istore 19 /* _dashOn */
start local 19 // boolean _dashOn
13: .line 417
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.phase:D
dstore 20 /* _phase */
start local 20 // double _phase
14: .line 422
StackMap locals: sun.java2d.marlin.DDasher double double double double double double double double[] double[] int int int double
StackMap stack:
aload 16 /* _dash */
iload 18 /* _idx */
daload
dstore 24 /* d */
start local 24 // double d
15: .line 423
dload 24 /* d */
dload 20 /* _phase */
dsub
dstore 22 /* leftInThisDashSegment */
start local 22 // double leftInThisDashSegment
16: .line 425
dload 9 /* len */
dload 22 /* leftInThisDashSegment */
dcmpg
ifgt 28
17: .line 426
aload 15 /* _curCurvepts */
iconst_0
dload 1 /* x1 */
dastore
18: .line 427
aload 15 /* _curCurvepts */
iconst_1
dload 3 /* y1 */
dastore
19: .line 429
aload 0 /* this */
aload 15 /* _curCurvepts */
iconst_0
iconst_4
iload 19 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
20: .line 432
dload 20 /* _phase */
dload 9 /* len */
dadd
dstore 20 /* _phase */
21: .line 435
dload 9 /* len */
dload 22 /* leftInThisDashSegment */
dcmpl
ifne 42
22: .line 436
dconst_0
dstore 20 /* _phase */
23: .line 437
iload 18 /* _idx */
iconst_1
iadd
iload 17 /* _dashLen */
irem
istore 18 /* _idx */
24: .line 438
iload 19 /* _dashOn */
ifeq 25
iconst_0
goto 26
StackMap locals: double double
StackMap stack:
25: iconst_1
StackMap locals:
StackMap stack: int
26: istore 19 /* _dashOn */
27: .line 440
goto 42
28: .line 443
StackMap locals:
StackMap stack:
dload 20 /* _phase */
dconst_0
dcmpl
ifne 32
29: .line 444
aload 15 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
dload 24 /* d */
dload 11 /* cx */
dmul
dadd
dastore
30: .line 445
aload 15 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dload 24 /* d */
dload 13 /* cy */
dmul
dadd
dastore
31: .line 446
goto 34
32: .line 447
StackMap locals:
StackMap stack:
aload 15 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
dload 22 /* leftInThisDashSegment */
dload 11 /* cx */
dmul
dadd
dastore
33: .line 448
aload 15 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dload 22 /* leftInThisDashSegment */
dload 13 /* cy */
dmul
dadd
dastore
34: .line 451
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 15 /* _curCurvepts */
iconst_0
iconst_4
iload 19 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
35: .line 453
dload 9 /* len */
dload 22 /* leftInThisDashSegment */
dsub
dstore 9 /* len */
36: .line 455
iload 18 /* _idx */
iconst_1
iadd
iload 17 /* _dashLen */
irem
istore 18 /* _idx */
37: .line 456
iload 19 /* _dashOn */
ifeq 38
iconst_0
goto 39
StackMap locals:
StackMap stack:
38: iconst_1
StackMap locals:
StackMap stack: int
39: istore 19 /* _dashOn */
40: .line 457
dconst_0
dstore 20 /* _phase */
end local 24 // double d
end local 22 // double leftInThisDashSegment
41: .line 421
goto 14
start local 22 // double leftInThisDashSegment
start local 24 // double d
42: .line 460
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 18 /* _idx */
putfield sun.java2d.marlin.DDasher.idx:I
43: .line 461
aload 0 /* this */
iload 19 /* _dashOn */
putfield sun.java2d.marlin.DDasher.dashOn:Z
44: .line 462
aload 0 /* this */
dload 20 /* _phase */
putfield sun.java2d.marlin.DDasher.phase:D
45: .line 463
return
end local 24 // double d
end local 22 // double leftInThisDashSegment
end local 20 // double _phase
end local 19 // boolean _dashOn
end local 18 // int _idx
end local 17 // int _dashLen
end local 16 // double[] _dash
end local 15 // double[] _curCurvepts
end local 13 // double cy
end local 11 // double cx
end local 9 // double len
end local 7 // double dy
end local 5 // double dx
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lsun/java2d/marlin/DDasher;
0 46 1 x1 D
0 46 3 y1 D
1 46 5 dx D
2 46 7 dy D
3 46 9 len D
7 46 11 cx D
8 46 13 cy D
9 46 15 _curCurvepts [D
10 46 16 _dash [D
11 46 17 _dashLen I
12 46 18 _idx I
13 46 19 _dashOn Z
14 46 20 _phase D
16 41 22 leftInThisDashSegment D
42 46 22 leftInThisDashSegment D
15 41 24 d D
42 46 24 d D
MethodParameters:
Name Flags
x1 final
y1 final
private void skipLineTo(double, double);
descriptor: (DD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=3
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
0: .line 466
dload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
dsub
dstore 5 /* dx */
start local 5 // double dx
1: .line 467
dload 3 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dsub
dstore 7 /* dy */
start local 7 // double dy
2: .line 469
dload 5 /* dx */
dload 5 /* dx */
dmul
dload 7 /* dy */
dload 7 /* dy */
dmul
dadd
dstore 9 /* len */
start local 9 // double len
3: .line 470
dload 9 /* len */
dconst_0
dcmpl
ifeq 5
4: .line 471
dload 9 /* len */
invokestatic java.lang.Math.sqrt:(D)D
dstore 9 /* len */
5: .line 475
StackMap locals: double double double
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.outside:Z
6: .line 476
aload 0 /* this */
dup
getfield sun.java2d.marlin.DDasher.totalSkipLen:D
dload 9 /* len */
dadd
putfield sun.java2d.marlin.DDasher.totalSkipLen:D
7: .line 479
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
8: .line 480
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.starting:Z
9: .line 482
aload 0 /* this */
dload 1 /* x1 */
putfield sun.java2d.marlin.DDasher.cx0:D
10: .line 483
aload 0 /* this */
dload 3 /* y1 */
putfield sun.java2d.marlin.DDasher.cy0:D
11: .line 484
return
end local 9 // double len
end local 7 // double dy
end local 5 // double dx
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/java2d/marlin/DDasher;
0 12 1 x1 D
0 12 3 y1 D
1 12 5 dx D
2 12 7 dy D
3 12 9 len D
MethodParameters:
Name Flags
x1 final
y1 final
public void skipLen();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=15, args_size=1
start local 0 // sun.java2d.marlin.DDasher this
0: .line 487
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.totalSkipLen:D
dstore 1 /* len */
start local 1 // double len
1: .line 488
aload 0 /* this */
dconst_0
putfield sun.java2d.marlin.DDasher.totalSkipLen:D
2: .line 490
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
astore 3 /* _dash */
start local 3 // double[] _dash
3: .line 491
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashLen:I
istore 4 /* _dashLen */
start local 4 // int _dashLen
4: .line 493
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.idx:I
istore 5 /* _idx */
start local 5 // int _idx
5: .line 494
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
istore 6 /* _dashOn */
start local 6 // boolean _dashOn
6: .line 495
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.phase:D
dstore 7 /* _phase */
start local 7 // double _phase
7: .line 499
dload 1 /* len */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cycleLen:D
ddiv
invokestatic java.lang.Math.floor:(D)D
d2l
ldc 2
lsub
lstore 9 /* fullcycles */
start local 9 // long fullcycles
8: .line 501
lload 9 /* fullcycles */
lconst_0
lcmp
ifle 17
9: .line 502
dload 1 /* len */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cycleLen:D
lload 9 /* fullcycles */
l2d
dmul
dsub
dstore 1 /* len */
10: .line 504
lload 9 /* fullcycles */
iload 4 /* _dashLen */
i2l
lmul
lstore 11 /* iterations */
start local 11 // long iterations
11: .line 505
lload 11 /* iterations */
iload 5 /* _idx */
i2l
ladd
l2i
iload 4 /* _dashLen */
irem
istore 5 /* _idx */
12: .line 506
lload 11 /* iterations */
iload 6 /* _dashOn */
ifeq 13
lconst_1
goto 14
StackMap locals: sun.java2d.marlin.DDasher double double[] int int int double long long
StackMap stack: long
13: lconst_0
StackMap locals: sun.java2d.marlin.DDasher double double[] int int int double 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 6 /* _dashOn */
end local 11 // long iterations
17: .line 512
StackMap locals:
StackMap stack:
aload 3 /* _dash */
iload 5 /* _idx */
daload
dstore 13 /* d */
start local 13 // double d
18: .line 513
dload 13 /* d */
dload 7 /* _phase */
dsub
dstore 11 /* leftInThisDashSegment */
start local 11 // double leftInThisDashSegment
19: .line 515
dload 1 /* len */
dload 11 /* leftInThisDashSegment */
dcmpg
ifgt 28
20: .line 517
dload 7 /* _phase */
dload 1 /* len */
dadd
dstore 7 /* _phase */
21: .line 520
dload 1 /* len */
dload 11 /* leftInThisDashSegment */
dcmpl
ifne 35
22: .line 521
dconst_0
dstore 7 /* _phase */
23: .line 522
iload 5 /* _idx */
iconst_1
iadd
iload 4 /* _dashLen */
irem
istore 5 /* _idx */
24: .line 523
iload 6 /* _dashOn */
ifeq 25
iconst_0
goto 26
StackMap locals: double double
StackMap stack:
25: iconst_1
StackMap locals:
StackMap stack: int
26: istore 6 /* _dashOn */
27: .line 525
goto 35
28: .line 528
StackMap locals:
StackMap stack:
dload 1 /* len */
dload 11 /* leftInThisDashSegment */
dsub
dstore 1 /* len */
29: .line 530
iload 5 /* _idx */
iconst_1
iadd
iload 4 /* _dashLen */
irem
istore 5 /* _idx */
30: .line 531
iload 6 /* _dashOn */
ifeq 31
iconst_0
goto 32
StackMap locals:
StackMap stack:
31: iconst_1
StackMap locals:
StackMap stack: int
32: istore 6 /* _dashOn */
33: .line 532
dconst_0
dstore 7 /* _phase */
end local 13 // double d
end local 11 // double leftInThisDashSegment
34: .line 511
goto 17
start local 11 // double leftInThisDashSegment
start local 13 // double d
35: .line 535
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 5 /* _idx */
putfield sun.java2d.marlin.DDasher.idx:I
36: .line 536
aload 0 /* this */
iload 6 /* _dashOn */
putfield sun.java2d.marlin.DDasher.dashOn:Z
37: .line 537
aload 0 /* this */
dload 7 /* _phase */
putfield sun.java2d.marlin.DDasher.phase:D
38: .line 538
return
end local 13 // double d
end local 11 // double leftInThisDashSegment
end local 9 // long fullcycles
end local 7 // double _phase
end local 6 // boolean _dashOn
end local 5 // int _idx
end local 4 // int _dashLen
end local 3 // double[] _dash
end local 1 // double len
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lsun/java2d/marlin/DDasher;
1 39 1 len D
3 39 3 _dash [D
4 39 4 _dashLen I
5 39 5 _idx I
6 39 6 _dashOn Z
7 39 7 _phase D
8 39 9 fullcycles J
11 17 11 iterations J
19 34 11 leftInThisDashSegment D
35 39 11 leftInThisDashSegment D
18 34 13 d D
35 39 13 d D
private void somethingTo(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=17, args_size=2
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // int type
0: .line 543
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 2 /* _curCurvepts */
start local 2 // double[] _curCurvepts
1: .line 544
aload 2 /* _curCurvepts */
iload 1 /* type */
invokestatic sun.java2d.marlin.DDasher.pointCurve:([DI)Z
ifeq 3
2: .line 545
return
3: .line 547
StackMap locals: double[]
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.li:Lsun/java2d/marlin/DDasher$LengthIterator;
astore 3 /* _li */
start local 3 // sun.java2d.marlin.DDasher$LengthIterator _li
4: .line 548
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
astore 4 /* _dash */
start local 4 // double[] _dash
5: .line 549
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashLen:I
istore 5 /* _dashLen */
start local 5 // int _dashLen
6: .line 551
aload 3 /* _li */
aload 2 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.initializeIterationOnCurve:([DI)V
7: .line 553
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.idx:I
istore 6 /* _idx */
start local 6 // int _idx
8: .line 554
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
istore 7 /* _dashOn */
start local 7 // boolean _dashOn
9: .line 555
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.phase:D
dstore 8 /* _phase */
start local 8 // double _phase
10: .line 558
iconst_0
istore 10 /* curCurveoff */
start local 10 // int curCurveoff
11: .line 559
dconst_0
dstore 11 /* prevT */
start local 11 // double prevT
12: .line 561
aload 4 /* _dash */
iload 6 /* _idx */
daload
dload 8 /* _phase */
dsub
dstore 15 /* leftInThisDashSegment */
start local 15 // double leftInThisDashSegment
13: .line 563
goto 28
start local 13 // double t
14: .line 564
StackMap locals: sun.java2d.marlin.DDasher int double[] sun.java2d.marlin.DDasher$LengthIterator double[] int int int double int double double double
StackMap stack:
dload 13 /* t */
dconst_0
dcmpl
ifeq 22
15: .line 565
dload 13 /* t */
dload 11 /* prevT */
dsub
dconst_1
dload 11 /* prevT */
dsub
ddiv
16: .line 566
aload 2 /* _curCurvepts */
iload 10 /* curCurveoff */
17: .line 567
aload 2 /* _curCurvepts */
iconst_0
iload 1 /* type */
18: .line 565
invokestatic sun.java2d.marlin.DHelpers.subdivideAt:(D[DI[DII)V
19: .line 568
dload 13 /* t */
dstore 11 /* prevT */
20: .line 569
aload 0 /* this */
aload 2 /* _curCurvepts */
iconst_2
iload 1 /* type */
iload 7 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
21: .line 570
iload 1 /* type */
istore 10 /* curCurveoff */
22: .line 573
StackMap locals:
StackMap stack:
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
23: .line 574
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 575
dconst_0
dstore 8 /* _phase */
27: .line 576
aload 4 /* _dash */
iload 6 /* _idx */
daload
dstore 15 /* leftInThisDashSegment */
end local 13 // double t
28: .line 563
StackMap locals: sun.java2d.marlin.DDasher int double[] sun.java2d.marlin.DDasher$LengthIterator double[] int int int double int double top top double
StackMap stack:
aload 3 /* _li */
dload 15 /* leftInThisDashSegment */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.next:(D)D
dup2
dstore 13 /* t */
start local 13 // double t
29: dconst_1
dcmpg
iflt 14
30: .line 579
aload 0 /* this */
aload 2 /* _curCurvepts */
iload 10 /* curCurveoff */
iconst_2
iadd
iload 1 /* type */
iload 7 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
31: .line 581
dload 8 /* _phase */
aload 3 /* _li */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.lastSegLen:()D
dadd
dstore 8 /* _phase */
32: .line 582
dload 8 /* _phase */
aload 4 /* _dash */
iload 6 /* _idx */
daload
dcmpl
iflt 38
33: .line 583
dconst_0
dstore 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.DDasher int double[] sun.java2d.marlin.DDasher$LengthIterator double[] int int int double int double double double
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.DDasher.idx:I
39: .line 589
aload 0 /* this */
iload 7 /* _dashOn */
putfield sun.java2d.marlin.DDasher.dashOn:Z
40: .line 590
aload 0 /* this */
dload 8 /* _phase */
putfield sun.java2d.marlin.DDasher.phase:D
41: .line 593
aload 3 /* _li */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.reset:()V
42: .line 594
return
end local 15 // double leftInThisDashSegment
end local 13 // double t
end local 11 // double prevT
end local 10 // int curCurveoff
end local 8 // double _phase
end local 7 // boolean _dashOn
end local 6 // int _idx
end local 5 // int _dashLen
end local 4 // double[] _dash
end local 3 // sun.java2d.marlin.DDasher$LengthIterator _li
end local 2 // double[] _curCurvepts
end local 1 // int type
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/java2d/marlin/DDasher;
0 43 1 type I
1 43 2 _curCurvepts [D
4 43 3 _li Lsun/java2d/marlin/DDasher$LengthIterator;
5 43 4 _dash [D
6 43 5 _dashLen I
8 43 6 _idx I
9 43 7 _dashOn Z
10 43 8 _phase D
11 43 10 curCurveoff I
12 43 11 prevT D
14 28 13 t D
29 43 13 t D
13 43 15 leftInThisDashSegment D
MethodParameters:
Name Flags
type final
private void skipSomethingTo(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // int type
0: .line 597
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 2 /* _curCurvepts */
start local 2 // double[] _curCurvepts
1: .line 598
aload 2 /* _curCurvepts */
iload 1 /* type */
invokestatic sun.java2d.marlin.DDasher.pointCurve:([DI)Z
ifeq 3
2: .line 599
return
3: .line 601
StackMap locals: double[]
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.li:Lsun/java2d/marlin/DDasher$LengthIterator;
astore 3 /* _li */
start local 3 // sun.java2d.marlin.DDasher$LengthIterator _li
4: .line 603
aload 3 /* _li */
aload 2 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.initializeIterationOnCurve:([DI)V
5: .line 607
aload 3 /* _li */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.totalLength:()D
dstore 4 /* len */
start local 4 // double len
6: .line 610
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.outside:Z
7: .line 611
aload 0 /* this */
dup
getfield sun.java2d.marlin.DDasher.totalSkipLen:D
dload 4 /* len */
dadd
putfield sun.java2d.marlin.DDasher.totalSkipLen:D
8: .line 614
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
9: .line 615
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.starting:Z
10: .line 616
return
end local 4 // double len
end local 3 // sun.java2d.marlin.DDasher$LengthIterator _li
end local 2 // double[] _curCurvepts
end local 1 // int type
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/java2d/marlin/DDasher;
0 11 1 type I
1 11 2 _curCurvepts [D
4 11 3 _li Lsun/java2d/marlin/DDasher$LengthIterator;
6 11 4 len D
MethodParameters:
Name Flags
type final
private static boolean pointCurve(double[], int);
descriptor: ([DI)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 // double[] 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 */
daload
aload 0 /* curve */
iload 2 /* i */
iconst_2
isub
daload
dcmpl
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 // double[] curve
LocalVariableTable:
Start End Slot Name Signature
0 7 0 curve [D
0 7 1 type I
1 6 2 i I
MethodParameters:
Name Flags
curve final
type final
public void curveTo(double, double, double, double, double, double);
descriptor: (DDDDDD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=19, locals=20, args_size=7
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
start local 9 // double x3
start local 11 // double y3
0: .line 927
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cOutCode:I
istore 13 /* outcode0 */
start local 13 // int outcode0
1: .line 929
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
ifnull 24
2: .line 930
dload 1 /* x1 */
dload 3 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
invokestatic sun.java2d.marlin.DHelpers.outcode:(DD[D)I
istore 14 /* outcode1 */
start local 14 // int outcode1
3: .line 931
dload 5 /* x2 */
dload 7 /* y2 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
invokestatic sun.java2d.marlin.DHelpers.outcode:(DD[D)I
istore 15 /* outcode2 */
start local 15 // int outcode2
4: .line 932
dload 9 /* x3 */
dload 11 /* y3 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
invokestatic sun.java2d.marlin.DHelpers.outcode:(DD[D)I
istore 16 /* outcode3 */
start local 16 // int outcode3
5: .line 935
iload 13 /* outcode0 */
iload 14 /* outcode1 */
ior
iload 15 /* outcode2 */
ior
iload 16 /* outcode3 */
ior
istore 17 /* orCode */
start local 17 // int orCode
6: .line 936
iload 17 /* orCode */
ifeq 20
7: .line 937
iload 13 /* outcode0 */
iload 14 /* outcode1 */
iand
iload 15 /* outcode2 */
iand
iload 16 /* outcode3 */
iand
istore 18 /* sideCode */
start local 18 // int sideCode
8: .line 940
iload 18 /* sideCode */
ifne 17
9: .line 942
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.subdivide:Z
ifeq 20
10: .line 944
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.subdivide:Z
11: .line 946
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curveSplitter:Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
dload 9 /* x3 */
dload 11 /* y3 */
12: .line 947
iload 17 /* orCode */
aload 0 /* this */
13: .line 946
invokevirtual sun.java2d.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitCurve:(DDDDDDDDILsun/java2d/marlin/DPathConsumer2D;)Z
istore 19 /* ret */
start local 19 // boolean ret
14: .line 949
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.subdivide:Z
15: .line 950
iload 19 /* ret */
ifeq 20
16: .line 951
return
end local 19 // boolean ret
17: .line 956
StackMap locals: sun.java2d.marlin.DDasher double double double double double double int int int int int int
StackMap stack:
aload 0 /* this */
iload 16 /* outcode3 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
18: .line 957
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
dload 9 /* x3 */
dload 11 /* y3 */
invokevirtual sun.java2d.marlin.DDasher.skipCurveTo:(DDDDDD)V
19: .line 958
return
end local 18 // int sideCode
20: .line 962
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 16 /* outcode3 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
21: .line 964
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.outside:Z
ifeq 24
22: .line 965
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.outside:Z
23: .line 967
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.skipLen:()V
end local 17 // int orCode
end local 16 // int outcode3
end local 15 // int outcode2
end local 14 // int outcode1
24: .line 970
StackMap locals: sun.java2d.marlin.DDasher double double double double double double int
StackMap stack:
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
dload 9 /* x3 */
dload 11 /* y3 */
invokevirtual sun.java2d.marlin.DDasher._curveTo:(DDDDDD)V
25: .line 971
return
end local 13 // int outcode0
end local 11 // double y3
end local 9 // double x3
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lsun/java2d/marlin/DDasher;
0 26 1 x1 D
0 26 3 y1 D
0 26 5 x2 D
0 26 7 y2 D
0 26 9 x3 D
0 26 11 y3 D
1 26 13 outcode0 I
3 24 14 outcode1 I
4 24 15 outcode2 I
5 24 16 outcode3 I
6 24 17 orCode I
8 20 18 sideCode I
14 17 19 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
private void _curveTo(double, double, double, double, double, double);
descriptor: (DDDDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=17, locals=19, args_size=7
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
start local 9 // double x3
start local 11 // double y3
0: .line 977
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 13 /* _curCurvepts */
start local 13 // double[] _curCurvepts
1: .line 981
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
getfield sun.java2d.marlin.DRendererContext.monotonizer:Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
dload 9 /* x3 */
dload 11 /* y3 */
invokevirtual sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.curve:(DDDDDDDD)Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
2: .line 980
astore 14 /* monotonizer */
start local 14 // sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
3: .line 983
aload 14 /* monotonizer */
getfield sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 15 /* nSplits */
start local 15 // int nSplits
4: .line 984
aload 14 /* monotonizer */
getfield sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.middle:[D
astore 16 /* mid */
start local 16 // double[] mid
5: .line 986
iconst_0
istore 17 /* i */
start local 17 // int i
6: iconst_0
istore 18 /* off */
start local 18 // int off
7: goto 11
8: .line 988
StackMap locals: sun.java2d.marlin.DDasher double double double double double double double[] sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer int double[] int int
StackMap stack:
aload 16 /* mid */
iload 18 /* off */
aload 13 /* _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.DDasher.somethingTo:(I)V
10: .line 986
iinc 17 /* i */ 1
iinc 18 /* off */ 6
StackMap locals:
StackMap stack:
11: iload 17 /* i */
iload 15 /* nSplits */
if_icmple 8
end local 18 // int off
end local 17 // int i
12: .line 992
return
end local 16 // double[] mid
end local 15 // int nSplits
end local 14 // sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
end local 13 // double[] _curCurvepts
end local 11 // double y3
end local 9 // double x3
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/java2d/marlin/DDasher;
0 13 1 x1 D
0 13 3 y1 D
0 13 5 x2 D
0 13 7 y2 D
0 13 9 x3 D
0 13 11 y3 D
1 13 13 _curCurvepts [D
3 13 14 monotonizer Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
4 13 15 nSplits I
5 13 16 mid [D
6 12 17 i I
7 12 18 off I
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
private void skipCurveTo(double, double, double, double, double, double);
descriptor: (DDDDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=14, args_size=7
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
start local 9 // double x3
start local 11 // double y3
0: .line 998
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 13 /* _curCurvepts */
start local 13 // double[] _curCurvepts
1: .line 999
aload 13 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
dastore
aload 13 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dastore
2: .line 1000
aload 13 /* _curCurvepts */
iconst_2
dload 1 /* x1 */
dastore
aload 13 /* _curCurvepts */
iconst_3
dload 3 /* y1 */
dastore
3: .line 1001
aload 13 /* _curCurvepts */
iconst_4
dload 5 /* x2 */
dastore
aload 13 /* _curCurvepts */
iconst_5
dload 7 /* y2 */
dastore
4: .line 1002
aload 13 /* _curCurvepts */
bipush 6
dload 9 /* x3 */
dastore
aload 13 /* _curCurvepts */
bipush 7
dload 11 /* y3 */
dastore
5: .line 1004
aload 0 /* this */
bipush 8
invokevirtual sun.java2d.marlin.DDasher.skipSomethingTo:(I)V
6: .line 1006
aload 0 /* this */
dload 9 /* x3 */
putfield sun.java2d.marlin.DDasher.cx0:D
7: .line 1007
aload 0 /* this */
dload 11 /* y3 */
putfield sun.java2d.marlin.DDasher.cy0:D
8: .line 1008
return
end local 13 // double[] _curCurvepts
end local 11 // double y3
end local 9 // double x3
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/java2d/marlin/DDasher;
0 9 1 x1 D
0 9 3 y1 D
0 9 5 x2 D
0 9 7 y2 D
0 9 9 x3 D
0 9 11 y3 D
1 9 13 _curCurvepts [D
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
public void quadTo(double, double, double, double);
descriptor: (DDDD)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=15, locals=15, args_size=5
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
0: .line 1014
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cOutCode:I
istore 9 /* outcode0 */
start local 9 // int outcode0
1: .line 1016
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
ifnull 23
2: .line 1017
dload 1 /* x1 */
dload 3 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
invokestatic sun.java2d.marlin.DHelpers.outcode:(DD[D)I
istore 10 /* outcode1 */
start local 10 // int outcode1
3: .line 1018
dload 5 /* x2 */
dload 7 /* y2 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
invokestatic sun.java2d.marlin.DHelpers.outcode:(DD[D)I
istore 11 /* outcode2 */
start local 11 // int outcode2
4: .line 1021
iload 9 /* outcode0 */
iload 10 /* outcode1 */
ior
iload 11 /* outcode2 */
ior
istore 12 /* orCode */
start local 12 // int orCode
5: .line 1022
iload 12 /* orCode */
ifeq 19
6: .line 1023
iload 9 /* outcode0 */
iload 10 /* outcode1 */
iand
iload 11 /* outcode2 */
iand
istore 13 /* sideCode */
start local 13 // int sideCode
7: .line 1026
iload 13 /* sideCode */
ifne 16
8: .line 1028
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.subdivide:Z
ifeq 19
9: .line 1030
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.subdivide:Z
10: .line 1032
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curveSplitter:Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveClipSplitter;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
11: .line 1033
dload 5 /* x2 */
dload 7 /* y2 */
iload 12 /* orCode */
aload 0 /* this */
12: .line 1032
invokevirtual sun.java2d.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitQuad:(DDDDDDILsun/java2d/marlin/DPathConsumer2D;)Z
istore 14 /* ret */
start local 14 // boolean ret
13: .line 1035
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.subdivide:Z
14: .line 1036
iload 14 /* ret */
ifeq 19
15: .line 1037
return
end local 14 // boolean ret
16: .line 1042
StackMap locals: sun.java2d.marlin.DDasher double double double double int int int int int
StackMap stack:
aload 0 /* this */
iload 11 /* outcode2 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
17: .line 1043
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
invokevirtual sun.java2d.marlin.DDasher.skipQuadTo:(DDDD)V
18: .line 1044
return
end local 13 // int sideCode
19: .line 1048
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* outcode2 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
20: .line 1050
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.outside:Z
ifeq 23
21: .line 1051
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.outside:Z
22: .line 1053
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.skipLen:()V
end local 12 // int orCode
end local 11 // int outcode2
end local 10 // int outcode1
23: .line 1056
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
invokevirtual sun.java2d.marlin.DDasher._quadTo:(DDDD)V
24: .line 1057
return
end local 9 // int outcode0
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/java2d/marlin/DDasher;
0 25 1 x1 D
0 25 3 y1 D
0 25 5 x2 D
0 25 7 y2 D
1 25 9 outcode0 I
3 23 10 outcode1 I
4 23 11 outcode2 I
5 23 12 orCode I
7 19 13 sideCode I
13 16 14 ret Z
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
private void _quadTo(double, double, double, double);
descriptor: (DDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=15, args_size=5
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
0: .line 1062
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 9 /* _curCurvepts */
start local 9 // double[] _curCurvepts
1: .line 1066
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
getfield sun.java2d.marlin.DRendererContext.monotonizer:Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dload 1 /* x1 */
dload 3 /* y1 */
dload 5 /* x2 */
dload 7 /* y2 */
invokevirtual sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.quad:(DDDDDD)Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
2: .line 1065
astore 10 /* monotonizer */
start local 10 // sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
3: .line 1068
aload 10 /* monotonizer */
getfield sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 11 /* nSplits */
start local 11 // int nSplits
4: .line 1069
aload 10 /* monotonizer */
getfield sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.middle:[D
astore 12 /* mid */
start local 12 // double[] mid
5: .line 1071
iconst_0
istore 13 /* i */
start local 13 // int i
6: iconst_0
istore 14 /* off */
start local 14 // int off
7: goto 11
8: .line 1073
StackMap locals: sun.java2d.marlin.DDasher double double double double double[] sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer int double[] int int
StackMap stack:
aload 12 /* mid */
iload 14 /* off */
aload 9 /* _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.DDasher.somethingTo:(I)V
10: .line 1071
iinc 13 /* i */ 1
iinc 14 /* off */ 4
StackMap locals:
StackMap stack:
11: iload 13 /* i */
iload 11 /* nSplits */
if_icmple 8
end local 14 // int off
end local 13 // int i
12: .line 1077
return
end local 12 // double[] mid
end local 11 // int nSplits
end local 10 // sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
end local 9 // double[] _curCurvepts
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lsun/java2d/marlin/DDasher;
0 13 1 x1 D
0 13 3 y1 D
0 13 5 x2 D
0 13 7 y2 D
1 13 9 _curCurvepts [D
3 13 10 monotonizer Lsun/java2d/marlin/DTransformingPathConsumer2D$CurveBasicMonotonizer;
4 13 11 nSplits I
5 13 12 mid [D
6 12 13 i I
7 12 14 off I
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
private void skipQuadTo(double, double, double, double);
descriptor: (DDDD)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=5
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
start local 5 // double x2
start local 7 // double y2
0: .line 1082
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 9 /* _curCurvepts */
start local 9 // double[] _curCurvepts
1: .line 1083
aload 9 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
dastore
aload 9 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dastore
2: .line 1084
aload 9 /* _curCurvepts */
iconst_2
dload 1 /* x1 */
dastore
aload 9 /* _curCurvepts */
iconst_3
dload 3 /* y1 */
dastore
3: .line 1085
aload 9 /* _curCurvepts */
iconst_4
dload 5 /* x2 */
dastore
aload 9 /* _curCurvepts */
iconst_5
dload 7 /* y2 */
dastore
4: .line 1087
aload 0 /* this */
bipush 6
invokevirtual sun.java2d.marlin.DDasher.skipSomethingTo:(I)V
5: .line 1089
aload 0 /* this */
dload 5 /* x2 */
putfield sun.java2d.marlin.DDasher.cx0:D
6: .line 1090
aload 0 /* this */
dload 7 /* y2 */
putfield sun.java2d.marlin.DDasher.cy0:D
7: .line 1091
return
end local 9 // double[] _curCurvepts
end local 7 // double y2
end local 5 // double x2
end local 3 // double y1
end local 1 // double x1
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/java2d/marlin/DDasher;
0 8 1 x1 D
0 8 3 y1 D
0 8 5 x2 D
0 8 7 y2 D
1 8 9 _curCurvepts [D
MethodParameters:
Name Flags
x1 final
y1 final
x2 final
y2 final
public void closePath();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 // sun.java2d.marlin.DDasher this
0: .line 1095
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx0:D
dcmpl
ifne 1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy0:D
dcmpl
ifeq 2
1: .line 1096
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy0:D
invokevirtual sun.java2d.marlin.DDasher.lineTo:(DD)V
2: .line 1098
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 6
3: .line 1099
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 4
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.needsMoveTo:Z
ifeq 5
4: .line 1100
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy0:D
invokeinterface sun.java2d.marlin.DPathConsumer2D.moveTo:(DD)V
5: .line 1102
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
6: .line 1104
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy0:D
invokevirtual sun.java2d.marlin.DDasher.moveTo:(DD)V
7: .line 1105
return
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/java2d/marlin/DDasher;
public void pathDone();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 // sun.java2d.marlin.DDasher this
0: .line 1109
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 3
1: .line 1110
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy0:D
invokeinterface sun.java2d.marlin.DPathConsumer2D.moveTo:(DD)V
2: .line 1111
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
3: .line 1113
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
invokeinterface sun.java2d.marlin.DPathConsumer2D.pathDone:()V
4: .line 1116
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.dispose:()V
5: .line 1117
return
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/java2d/marlin/DDasher;
public long getNativeConsumer();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.java2d.marlin.DDasher this
0: .line 1121
new java.lang.InternalError
dup
ldc "DDasher does not use a native consumer"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/java2d/marlin/DDasher;
}
SourceFile: "DDasher.java"
NestMembers:
sun.java2d.marlin.DDasher$LengthIterator
InnerClasses:
final LengthIterator = sun.java2d.marlin.DDasher$LengthIterator of sun.java2d.marlin.DDasher
final CurveBasicMonotonizer = sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer of sun.java2d.marlin.DTransformingPathConsumer2D
final CurveClipSplitter = sun.java2d.marlin.DTransformingPathConsumer2D$CurveClipSplitter of sun.java2d.marlin.DTransformingPathConsumer2D
final Reference = sun.java2d.marlin.DoubleArrayCache$Reference of sun.java2d.marlin.DoubleArrayCache