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 EPS;
descriptor: D
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1.0E-6
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 55
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 117
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 101
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.cOutCode:I
2: .line 103
aload 0 /* this */
getstatic sun.java2d.marlin.DDasher.DO_CLIP_SUBDIVIDER:Z
putfield sun.java2d.marlin.DDasher.subdivide:Z
3: .line 105
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 118
aload 0 /* this */
aload 1 /* rdrCtx */
putfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
5: .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.dashes_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
6: .line 122
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 123
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 127
aload 0 /* this */
bipush 16
newarray 7
putfield sun.java2d.marlin.DDasher.curCurvepts:[D
9: .line 129
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 130
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 145
aload 0 /* this */
aload 1 /* out */
putfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
1: .line 148
iconst_0
istore 7 /* sidx */
start local 7 // int sidx
2: .line 149
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.dashOn:Z
3: .line 152
dconst_0
dstore 8 /* sum */
start local 8 // double sum
4: .line 153
iconst_0
istore 10 /* i */
start local 10 // int i
5: goto 8
6: .line 154
StackMap locals: int double int
StackMap stack:
dload 8 /* sum */
aload 2 /* dash */
iload 10 /* i */
daload
dadd
dstore 8 /* sum */
7: .line 153
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 156
aload 0 /* this */
dload 8 /* sum */
putfield sun.java2d.marlin.DDasher.cycleLen:D
10: .line 158
dload 4 /* phase */
dload 8 /* sum */
ddiv
dstore 10 /* cycles */
start local 10 // double cycles
11: .line 159
dload 4 /* phase */
dconst_0
dcmpg
ifge 30
12: .line 160
dload 10 /* cycles */
dneg
ldc 1.6E7
dcmpl
iflt 15
13: .line 161
dconst_0
dstore 4 /* phase */
14: .line 162
goto 48
15: .line 163
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 164
iload 12 /* fullcycles */
iload 3 /* dashLen */
iand
iconst_1
iand
ifeq 20
17: .line 165
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 167
StackMap locals:
StackMap stack:
dload 4 /* phase */
iload 12 /* fullcycles */
i2d
dload 8 /* sum */
dmul
dadd
dstore 4 /* phase */
21: .line 168
goto 28
22: .line 169
StackMap locals:
StackMap stack:
iinc 7 /* sidx */ -1
iload 7 /* sidx */
ifge 24
23: .line 170
iload 3 /* dashLen */
iconst_1
isub
istore 7 /* sidx */
24: .line 172
StackMap locals:
StackMap stack:
dload 4 /* phase */
aload 2 /* dash */
iload 7 /* sidx */
daload
dadd
dstore 4 /* phase */
25: .line 173
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 168
StackMap locals:
StackMap stack:
dload 4 /* phase */
dconst_0
dcmpg
iflt 22
end local 12 // int fullcycles
29: .line 176
goto 48
StackMap locals:
StackMap stack:
30: dload 4 /* phase */
dconst_0
dcmpl
ifle 48
31: .line 177
dload 10 /* cycles */
ldc 1.6E7
dcmpl
iflt 34
32: .line 178
dconst_0
dstore 4 /* phase */
33: .line 179
goto 48
34: .line 180
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 181
iload 12 /* fullcycles */
iload 3 /* dashLen */
iand
iconst_1
iand
ifeq 39
36: .line 182
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 184
StackMap locals:
StackMap stack:
dload 4 /* phase */
iload 12 /* fullcycles */
i2d
dload 8 /* sum */
dmul
dsub
dstore 4 /* phase */
40: .line 186
goto 46
start local 13 // double d
41: .line 187
StackMap locals: double
StackMap stack:
dload 4 /* phase */
dload 13 /* d */
dsub
dstore 4 /* phase */
42: .line 188
iload 7 /* sidx */
iconst_1
iadd
iload 3 /* dashLen */
irem
istore 7 /* sidx */
43: .line 189
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 186
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 194
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 2 /* dash */
putfield sun.java2d.marlin.DDasher.dash:[D
49: .line 195
aload 0 /* this */
iload 3 /* dashLen */
putfield sun.java2d.marlin.DDasher.dashLen:I
50: .line 196
aload 0 /* this */
dload 4 /* phase */
putfield sun.java2d.marlin.DDasher.phase:D
51: .line 197
aload 0 /* this */
dload 4 /* phase */
putfield sun.java2d.marlin.DDasher.startPhase:D
52: .line 198
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
putfield sun.java2d.marlin.DDasher.startDashOn:Z
53: .line 199
aload 0 /* this */
iload 7 /* sidx */
putfield sun.java2d.marlin.DDasher.startIdx:I
54: .line 200
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.starting:Z
55: .line 201
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
56: .line 202
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.firstSegidx:I
57: .line 204
aload 0 /* this */
iload 6 /* recycleDashes */
putfield sun.java2d.marlin.DDasher.recycleDashes:Z
58: .line 206
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
getfield sun.java2d.marlin.DRendererContext.doClip:Z
ifeq 61
59: .line 207
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 208
goto 63
61: .line 209
StackMap locals:
StackMap stack:
aload 0 /* this */
aconst_null
putfield sun.java2d.marlin.DDasher.clipRect:[D
62: .line 210
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.cOutCode:I
63: .line 212
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 225
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.recycleDashes:Z
ifeq 2
1: .line 226
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 228
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 229
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 232
aload 1 /* dashes */
arraylength
istore 2 /* len */
start local 2 // int len
1: .line 234
iload 2 /* len */
sipush 256
if_icmpgt 4
2: .line 235
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 236
goto 7
end local 3 // double[] newDashes
4: .line 237
StackMap locals: int
StackMap stack:
getstatic sun.java2d.marlin.DDasher.DO_STATS:Z
ifeq 6
5: .line 238
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 240
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 242
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 243
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 248
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 3
1: .line 249
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 250
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
3: .line 252
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
4: .line 253
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startIdx:I
putfield sun.java2d.marlin.DDasher.idx:I
5: .line 254
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startDashOn:Z
putfield sun.java2d.marlin.DDasher.dashOn:Z
6: .line 255
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startPhase:D
putfield sun.java2d.marlin.DDasher.phase:D
7: .line 256
aload 0 /* this */
dload 1 /* x0 */
putfield sun.java2d.marlin.DDasher.cx0:D
8: .line 257
aload 0 /* this */
dload 3 /* y0 */
putfield sun.java2d.marlin.DDasher.cy0:D
9: .line 260
aload 0 /* this */
dload 1 /* x0 */
putfield sun.java2d.marlin.DDasher.sx0:D
10: .line 261
aload 0 /* this */
dload 3 /* y0 */
putfield sun.java2d.marlin.DDasher.sy0:D
11: .line 262
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.starting:Z
12: .line 264
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
ifnull 17
13: .line 265
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 266
aload 0 /* this */
iload 5 /* outcode */
putfield sun.java2d.marlin.DDasher.cOutCode:I
15: .line 267
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.outside:Z
16: .line 268
aload 0 /* this */
dconst_0
putfield sun.java2d.marlin.DDasher.totalSkipLen:D
end local 5 // int outcode
17: .line 270
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 273
iload 3 /* type */
tableswitch { // 4 - 8
4: 1
5: 12
6: 8
7: 12
8: 3
default: 12
}
1: .line 275
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
2: .line 276
return
3: .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
4: .line 279
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
daload
5: .line 280
aload 1 /* buf */
iload 2 /* off */
iconst_4
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_5
iadd
daload
6: .line 278
invokeinterface sun.java2d.marlin.DPathConsumer2D.curveTo:(DDDDDD)V
7: .line 281
return
8: .line 283
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
9: .line 284
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
daload
10: .line 283
invokeinterface sun.java2d.marlin.DPathConsumer2D.quadTo:(DDDD)V
11: .line 285
return
12: .line 288
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 291
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
astore 1 /* fSegBuf */
start local 1 // double[] fSegBuf
1: .line 293
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 294
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 295
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 296
iload 2 /* i */
iload 4 /* type */
iconst_1
isub
iadd
istore 2 /* i */
end local 4 // int type
7: .line 293
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 298
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.firstSegidx:I
9: .line 299
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 305
iload 2 /* off */
iload 3 /* type */
iadd
istore 5 /* index */
start local 5 // int index
1: .line 306
aload 1 /* pts */
iload 5 /* index */
iconst_4
isub
daload
dstore 6 /* x */
start local 6 // double x
2: .line 307
aload 1 /* pts */
iload 5 /* index */
iconst_3
isub
daload
dstore 8 /* y */
start local 8 // double y
3: .line 309
iload 4 /* on */
ifeq 12
4: .line 310
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.starting:Z
ifeq 7
5: .line 311
aload 0 /* this */
aload 1 /* pts */
iload 2 /* off */
iload 3 /* type */
invokevirtual sun.java2d.marlin.DDasher.goTo_starting:([DII)V
6: .line 312
goto 15
7: .line 313
StackMap locals: int double double
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.needsMoveTo:Z
ifeq 10
8: .line 314
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
9: .line 315
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 317
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 319
goto 15
12: .line 320
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.starting:Z
ifeq 14
13: .line 322
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.starting:Z
14: .line 324
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
15: .line 326
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 6 /* x */
putfield sun.java2d.marlin.DDasher.cx0:D
16: .line 327
aload 0 /* this */
dload 8 /* y */
putfield sun.java2d.marlin.DDasher.cy0:D
17: .line 328
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 331
iload 3 /* type */
iconst_1
isub
istore 4 /* len */
start local 4 // int len
1: .line 332
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
istore 5 /* segIdx */
start local 5 // int segIdx
2: .line 333
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
astore 6 /* buf */
start local 6 // double[] buf
3: .line 335
iload 5 /* segIdx */
iload 4 /* len */
iadd
aload 6 /* buf */
arraylength
if_icmple 12
4: .line 336
getstatic sun.java2d.marlin.DDasher.DO_STATS:Z
ifeq 7
5: .line 337
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 338
iload 5 /* segIdx */
iload 4 /* len */
iadd
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
7: .line 340
StackMap locals: int int double[]
StackMap stack:
aload 0 /* this */
8: .line 341
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
aload 6 /* buf */
iload 5 /* segIdx */
9: .line 342
iload 5 /* segIdx */
iload 4 /* len */
iadd
10: .line 341
invokevirtual sun.java2d.marlin.DoubleArrayCache$Reference.widenArray:([DII)[D
11: .line 340
dup
astore 6 /* buf */
putfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
12: .line 344
StackMap locals:
StackMap stack:
aload 6 /* buf */
iload 5 /* segIdx */
iinc 5 /* segIdx */ 1
iload 3 /* type */
i2d
dastore
13: .line 345
iinc 4 /* len */ -1
14: .line 347
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 348
aload 0 /* this */
iload 5 /* segIdx */
iload 4 /* len */
iadd
putfield sun.java2d.marlin.DDasher.firstSegidx:I
16: .line 349
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 353
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cOutCode:I
istore 5 /* outcode0 */
start local 5 // int outcode0
1: .line 355
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
ifnull 22
2: .line 356
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 359
iload 5 /* outcode0 */
iload 6 /* outcode1 */
ior
istore 7 /* orCode */
start local 7 // int orCode
4: .line 361
iload 7 /* orCode */
ifeq 18
5: .line 362
iload 5 /* outcode0 */
iload 6 /* outcode1 */
iand
istore 8 /* sideCode */
start local 8 // int sideCode
6: .line 365
iload 8 /* sideCode */
ifne 15
7: .line 367
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.subdivide:Z
ifeq 18
8: .line 369
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.subdivide:Z
9: .line 371
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 372
iload 7 /* orCode */
aload 0 /* this */
11: .line 371
invokevirtual sun.java2d.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitLine:(DDDDILsun/java2d/marlin/DPathConsumer2D;)Z
istore 9 /* ret */
start local 9 // boolean ret
12: .line 374
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.subdivide:Z
13: .line 375
iload 9 /* ret */
ifeq 18
14: .line 376
return
end local 9 // boolean ret
15: .line 381
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 382
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
invokevirtual sun.java2d.marlin.DDasher.skipLineTo:(DD)V
17: .line 383
return
end local 8 // int sideCode
18: .line 387
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 6 /* outcode1 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
19: .line 389
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.outside:Z
ifeq 22
20: .line 390
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.outside:Z
21: .line 392
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.skipLen:()V
end local 7 // int orCode
end local 6 // int outcode1
22: .line 395
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 1 /* x1 */
dload 3 /* y1 */
invokevirtual sun.java2d.marlin.DDasher._lineTo:(DD)V
23: .line 396
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 399
dload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
dsub
dstore 5 /* dx */
start local 5 // double dx
1: .line 400
dload 3 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dsub
dstore 7 /* dy */
start local 7 // double dy
2: .line 402
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 403
dload 9 /* len */
dconst_0
dcmpl
ifne 5
4: .line 404
return
5: .line 406
StackMap locals: double double double
StackMap stack:
dload 9 /* len */
invokestatic java.lang.Math.sqrt:(D)D
dstore 9 /* len */
6: .line 410
dload 5 /* dx */
dload 9 /* len */
ddiv
dstore 11 /* cx */
start local 11 // double cx
7: .line 411
dload 7 /* dy */
dload 9 /* len */
ddiv
dstore 13 /* cy */
start local 13 // double cy
8: .line 413
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 15 /* _curCurvepts */
start local 15 // double[] _curCurvepts
9: .line 414
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
astore 16 /* _dash */
start local 16 // double[] _dash
10: .line 415
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashLen:I
istore 17 /* _dashLen */
start local 17 // int _dashLen
11: .line 417
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.idx:I
istore 18 /* _idx */
start local 18 // int _idx
12: .line 418
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
istore 19 /* _dashOn */
start local 19 // boolean _dashOn
13: .line 419
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.phase:D
dstore 20 /* _phase */
start local 20 // double _phase
14: .line 424
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
dload 20 /* _phase */
dsub
dstore 22 /* leftInThisDashSegment */
start local 22 // double leftInThisDashSegment
15: .line 425
dload 9 /* len */
dload 22 /* leftInThisDashSegment */
dsub
dstore 24 /* rem */
start local 24 // double rem
16: .line 427
dload 24 /* rem */
ldc 1.0E-6
dcmpg
ifgt 28
17: .line 428
aload 15 /* _curCurvepts */
iconst_0
dload 1 /* x1 */
dastore
18: .line 429
aload 15 /* _curCurvepts */
iconst_1
dload 3 /* y1 */
dastore
19: .line 431
aload 0 /* this */
aload 15 /* _curCurvepts */
iconst_0
iconst_4
iload 19 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
20: .line 434
dload 20 /* _phase */
dload 9 /* len */
dadd
dstore 20 /* _phase */
21: .line 437
dload 24 /* rem */
invokestatic java.lang.Math.abs:(D)D
ldc 1.0E-6
dcmpg
ifgt 38
22: .line 438
dconst_0
dstore 20 /* _phase */
23: .line 439
iload 18 /* _idx */
iconst_1
iadd
iload 17 /* _dashLen */
irem
istore 18 /* _idx */
24: .line 440
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 442
goto 38
28: .line 445
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
29: .line 446
aload 15 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dload 22 /* leftInThisDashSegment */
dload 13 /* cy */
dmul
dadd
dastore
30: .line 448
aload 0 /* this */
aload 15 /* _curCurvepts */
iconst_0
iconst_4
iload 19 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
31: .line 450
dload 24 /* rem */
dstore 9 /* len */
32: .line 452
iload 18 /* _idx */
iconst_1
iadd
iload 17 /* _dashLen */
irem
istore 18 /* _idx */
33: .line 453
iload 19 /* _dashOn */
ifeq 34
iconst_0
goto 35
StackMap locals:
StackMap stack:
34: iconst_1
StackMap locals:
StackMap stack: int
35: istore 19 /* _dashOn */
36: .line 454
dconst_0
dstore 20 /* _phase */
end local 24 // double rem
end local 22 // double leftInThisDashSegment
37: .line 423
goto 14
start local 22 // double leftInThisDashSegment
start local 24 // double rem
38: .line 457
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 18 /* _idx */
putfield sun.java2d.marlin.DDasher.idx:I
39: .line 458
aload 0 /* this */
iload 19 /* _dashOn */
putfield sun.java2d.marlin.DDasher.dashOn:Z
40: .line 459
aload 0 /* this */
dload 20 /* _phase */
putfield sun.java2d.marlin.DDasher.phase:D
41: .line 460
return
end local 24 // double rem
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 42 0 this Lsun/java2d/marlin/DDasher;
0 42 1 x1 D
0 42 3 y1 D
1 42 5 dx D
2 42 7 dy D
3 42 9 len D
7 42 11 cx D
8 42 13 cy D
9 42 15 _curCurvepts [D
10 42 16 _dash [D
11 42 17 _dashLen I
12 42 18 _idx I
13 42 19 _dashOn Z
14 42 20 _phase D
15 37 22 leftInThisDashSegment D
38 42 22 leftInThisDashSegment D
16 37 24 rem D
38 42 24 rem 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 463
dload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cx0:D
dsub
dstore 5 /* dx */
start local 5 // double dx
1: .line 464
dload 3 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cy0:D
dsub
dstore 7 /* dy */
start local 7 // double dy
2: .line 466
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 467
dload 9 /* len */
dconst_0
dcmpl
ifeq 5
4: .line 468
dload 9 /* len */
invokestatic java.lang.Math.sqrt:(D)D
dstore 9 /* len */
5: .line 472
StackMap locals: double double double
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.outside:Z
6: .line 473
aload 0 /* this */
dup
getfield sun.java2d.marlin.DDasher.totalSkipLen:D
dload 9 /* len */
dadd
putfield sun.java2d.marlin.DDasher.totalSkipLen:D
7: .line 476
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
8: .line 477
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.starting:Z
9: .line 479
aload 0 /* this */
dload 1 /* x1 */
putfield sun.java2d.marlin.DDasher.cx0:D
10: .line 480
aload 0 /* this */
dload 3 /* y1 */
putfield sun.java2d.marlin.DDasher.cy0:D
11: .line 481
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 484
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.totalSkipLen:D
dstore 1 /* len */
start local 1 // double len
1: .line 485
aload 0 /* this */
dconst_0
putfield sun.java2d.marlin.DDasher.totalSkipLen:D
2: .line 487
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
astore 3 /* _dash */
start local 3 // double[] _dash
3: .line 488
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashLen:I
istore 4 /* _dashLen */
start local 4 // int _dashLen
4: .line 490
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.idx:I
istore 5 /* _idx */
start local 5 // int _idx
5: .line 491
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
istore 6 /* _dashOn */
start local 6 // boolean _dashOn
6: .line 492
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.phase:D
dstore 7 /* _phase */
start local 7 // double _phase
7: .line 496
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 498
lload 9 /* fullcycles */
lconst_0
lcmp
ifle 17
9: .line 499
dload 1 /* len */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cycleLen:D
lload 9 /* fullcycles */
l2d
dmul
dsub
dstore 1 /* len */
10: .line 501
lload 9 /* fullcycles */
iload 4 /* _dashLen */
i2l
lmul
lstore 11 /* iterations */
start local 11 // long iterations
11: .line 502
lload 11 /* iterations */
iload 5 /* _idx */
i2l
ladd
l2i
iload 4 /* _dashLen */
irem
istore 5 /* _idx */
12: .line 503
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 509
StackMap locals:
StackMap stack:
aload 3 /* _dash */
iload 5 /* _idx */
daload
dload 7 /* _phase */
dsub
dstore 11 /* leftInThisDashSegment */
start local 11 // double leftInThisDashSegment
18: .line 510
dload 1 /* len */
dload 11 /* leftInThisDashSegment */
dsub
dstore 13 /* rem */
start local 13 // double rem
19: .line 512
dload 13 /* rem */
ldc 1.0E-6
dcmpg
ifgt 28
20: .line 514
dload 7 /* _phase */
dload 1 /* len */
dadd
dstore 7 /* _phase */
21: .line 517
dload 13 /* rem */
invokestatic java.lang.Math.abs:(D)D
ldc 1.0E-6
dcmpg
ifgt 35
22: .line 518
dconst_0
dstore 7 /* _phase */
23: .line 519
iload 5 /* _idx */
iconst_1
iadd
iload 4 /* _dashLen */
irem
istore 5 /* _idx */
24: .line 520
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 522
goto 35
28: .line 525
StackMap locals:
StackMap stack:
dload 13 /* rem */
dstore 1 /* len */
29: .line 527
iload 5 /* _idx */
iconst_1
iadd
iload 4 /* _dashLen */
irem
istore 5 /* _idx */
30: .line 528
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 529
dconst_0
dstore 7 /* _phase */
end local 13 // double rem
end local 11 // double leftInThisDashSegment
34: .line 508
goto 17
start local 11 // double leftInThisDashSegment
start local 13 // double rem
35: .line 532
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 5 /* _idx */
putfield sun.java2d.marlin.DDasher.idx:I
36: .line 533
aload 0 /* this */
iload 6 /* _dashOn */
putfield sun.java2d.marlin.DDasher.dashOn:Z
37: .line 534
aload 0 /* this */
dload 7 /* _phase */
putfield sun.java2d.marlin.DDasher.phase:D
38: .line 535
return
end local 13 // double rem
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
18 34 11 leftInThisDashSegment D
35 39 11 leftInThisDashSegment D
19 34 13 rem D
35 39 13 rem 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 540
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 2 /* _curCurvepts */
start local 2 // double[] _curCurvepts
1: .line 541
aload 2 /* _curCurvepts */
iload 1 /* type */
invokestatic sun.java2d.marlin.DDasher.pointCurve:([DI)Z
ifeq 3
2: .line 542
return
3: .line 544
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 545
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
astore 4 /* _dash */
start local 4 // double[] _dash
5: .line 546
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashLen:I
istore 5 /* _dashLen */
start local 5 // int _dashLen
6: .line 548
aload 3 /* _li */
aload 2 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.initializeIterationOnCurve:([DI)V
7: .line 550
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.idx:I
istore 6 /* _idx */
start local 6 // int _idx
8: .line 551
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
istore 7 /* _dashOn */
start local 7 // boolean _dashOn
9: .line 552
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.phase:D
dstore 8 /* _phase */
start local 8 // double _phase
10: .line 555
iconst_0
istore 10 /* curCurveoff */
start local 10 // int curCurveoff
11: .line 556
dconst_0
dstore 11 /* prevT */
start local 11 // double prevT
12: .line 558
aload 4 /* _dash */
iload 6 /* _idx */
daload
dload 8 /* _phase */
dsub
dstore 15 /* leftInThisDashSegment */
start local 15 // double leftInThisDashSegment
13: .line 560
goto 28
start local 13 // double t
14: .line 561
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 562
dload 13 /* t */
dload 11 /* prevT */
dsub
dconst_1
dload 11 /* prevT */
dsub
ddiv
16: .line 563
aload 2 /* _curCurvepts */
iload 10 /* curCurveoff */
17: .line 564
aload 2 /* _curCurvepts */
iconst_0
iload 1 /* type */
18: .line 562
invokestatic sun.java2d.marlin.DHelpers.subdivideAt:(D[DI[DII)V
19: .line 565
dload 13 /* t */
dstore 11 /* prevT */
20: .line 566
aload 0 /* this */
aload 2 /* _curCurvepts */
iconst_2
iload 1 /* type */
iload 7 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
21: .line 567
iload 1 /* type */
istore 10 /* curCurveoff */
22: .line 570
StackMap locals:
StackMap stack:
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
23: .line 571
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 572
dconst_0
dstore 8 /* _phase */
27: .line 573
aload 4 /* _dash */
iload 6 /* _idx */
daload
dstore 15 /* leftInThisDashSegment */
end local 13 // double t
28: .line 560
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 576
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 578
dload 8 /* _phase */
aload 3 /* _li */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.lastSegLen:()D
dadd
dstore 8 /* _phase */
32: .line 581
dload 8 /* _phase */
ldc 1.0E-6
dadd
aload 4 /* _dash */
iload 6 /* _idx */
daload
dcmpl
iflt 38
33: .line 582
dconst_0
dstore 8 /* _phase */
34: .line 583
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
35: .line 584
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 587
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 6 /* _idx */
putfield sun.java2d.marlin.DDasher.idx:I
39: .line 588
aload 0 /* this */
iload 7 /* _dashOn */
putfield sun.java2d.marlin.DDasher.dashOn:Z
40: .line 589
aload 0 /* this */
dload 8 /* _phase */
putfield sun.java2d.marlin.DDasher.phase:D
41: .line 592
aload 3 /* _li */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.reset:()V
42: .line 593
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 596
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 2 /* _curCurvepts */
start local 2 // double[] _curCurvepts
1: .line 597
aload 2 /* _curCurvepts */
iload 1 /* type */
invokestatic sun.java2d.marlin.DDasher.pointCurve:([DI)Z
ifeq 3
2: .line 598
return
3: .line 600
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 602
aload 3 /* _li */
aload 2 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.initializeIterationOnCurve:([DI)V
5: .line 606
aload 3 /* _li */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.totalLength:()D
dstore 4 /* len */
start local 4 // double len
6: .line 609
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.outside:Z
7: .line 610
aload 0 /* this */
dup
getfield sun.java2d.marlin.DDasher.totalSkipLen:D
dload 4 /* len */
dadd
putfield sun.java2d.marlin.DDasher.totalSkipLen:D
8: .line 613
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
9: .line 614
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.starting:Z
10: .line 615
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 618
iconst_2
istore 2 /* i */
start local 2 // int i
1: goto 5
2: .line 619
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 620
iconst_0
ireturn
4: .line 618
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 623
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 926
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cOutCode:I
istore 13 /* outcode0 */
start local 13 // int outcode0
1: .line 928
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
ifnull 24
2: .line 929
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 930
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 931
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 934
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 935
iload 17 /* orCode */
ifeq 20
7: .line 936
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 939
iload 18 /* sideCode */
ifne 17
9: .line 941
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.subdivide:Z
ifeq 20
10: .line 943
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.subdivide:Z
11: .line 945
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 946
iload 17 /* orCode */
aload 0 /* this */
13: .line 945
invokevirtual sun.java2d.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitCurve:(DDDDDDDDILsun/java2d/marlin/DPathConsumer2D;)Z
istore 19 /* ret */
start local 19 // boolean ret
14: .line 948
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.subdivide:Z
15: .line 949
iload 19 /* ret */
ifeq 20
16: .line 950
return
end local 19 // boolean ret
17: .line 955
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 956
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 957
return
end local 18 // int sideCode
20: .line 961
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 16 /* outcode3 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
21: .line 963
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.outside:Z
ifeq 24
22: .line 964
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.outside:Z
23: .line 966
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 969
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 970
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 976
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 13 /* _curCurvepts */
start local 13 // double[] _curCurvepts
1: .line 980
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 979
astore 14 /* monotonizer */
start local 14 // sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
3: .line 982
aload 14 /* monotonizer */
getfield sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 15 /* nSplits */
start local 15 // int nSplits
4: .line 983
aload 14 /* monotonizer */
getfield sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.middle:[D
astore 16 /* mid */
start local 16 // double[] mid
5: .line 985
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 987
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 989
aload 0 /* this */
bipush 8
invokevirtual sun.java2d.marlin.DDasher.somethingTo:(I)V
10: .line 985
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 991
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 997
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 13 /* _curCurvepts */
start local 13 // double[] _curCurvepts
1: .line 998
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 999
aload 13 /* _curCurvepts */
iconst_2
dload 1 /* x1 */
dastore
aload 13 /* _curCurvepts */
iconst_3
dload 3 /* y1 */
dastore
3: .line 1000
aload 13 /* _curCurvepts */
iconst_4
dload 5 /* x2 */
dastore
aload 13 /* _curCurvepts */
iconst_5
dload 7 /* y2 */
dastore
4: .line 1001
aload 13 /* _curCurvepts */
bipush 6
dload 9 /* x3 */
dastore
aload 13 /* _curCurvepts */
bipush 7
dload 11 /* y3 */
dastore
5: .line 1003
aload 0 /* this */
bipush 8
invokevirtual sun.java2d.marlin.DDasher.skipSomethingTo:(I)V
6: .line 1005
aload 0 /* this */
dload 9 /* x3 */
putfield sun.java2d.marlin.DDasher.cx0:D
7: .line 1006
aload 0 /* this */
dload 11 /* y3 */
putfield sun.java2d.marlin.DDasher.cy0:D
8: .line 1007
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 1013
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.cOutCode:I
istore 9 /* outcode0 */
start local 9 // int outcode0
1: .line 1015
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.clipRect:[D
ifnull 23
2: .line 1016
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 1017
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 1020
iload 9 /* outcode0 */
iload 10 /* outcode1 */
ior
iload 11 /* outcode2 */
ior
istore 12 /* orCode */
start local 12 // int orCode
5: .line 1021
iload 12 /* orCode */
ifeq 19
6: .line 1022
iload 9 /* outcode0 */
iload 10 /* outcode1 */
iand
iload 11 /* outcode2 */
iand
istore 13 /* sideCode */
start local 13 // int sideCode
7: .line 1025
iload 13 /* sideCode */
ifne 16
8: .line 1027
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.subdivide:Z
ifeq 19
9: .line 1029
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.subdivide:Z
10: .line 1031
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 1032
dload 5 /* x2 */
dload 7 /* y2 */
iload 12 /* orCode */
aload 0 /* this */
12: .line 1031
invokevirtual sun.java2d.marlin.DTransformingPathConsumer2D$CurveClipSplitter.splitQuad:(DDDDDDILsun/java2d/marlin/DPathConsumer2D;)Z
istore 14 /* ret */
start local 14 // boolean ret
13: .line 1034
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.subdivide:Z
14: .line 1035
iload 14 /* ret */
ifeq 19
15: .line 1036
return
end local 14 // boolean ret
16: .line 1041
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 1042
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 1043
return
end local 13 // int sideCode
19: .line 1047
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 11 /* outcode2 */
putfield sun.java2d.marlin.DDasher.cOutCode:I
20: .line 1049
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.outside:Z
ifeq 23
21: .line 1050
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.outside:Z
22: .line 1052
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 1055
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 1056
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 1061
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 9 /* _curCurvepts */
start local 9 // double[] _curCurvepts
1: .line 1065
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 1064
astore 10 /* monotonizer */
start local 10 // sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer monotonizer
3: .line 1067
aload 10 /* monotonizer */
getfield sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.nbSplits:I
istore 11 /* nSplits */
start local 11 // int nSplits
4: .line 1068
aload 10 /* monotonizer */
getfield sun.java2d.marlin.DTransformingPathConsumer2D$CurveBasicMonotonizer.middle:[D
astore 12 /* mid */
start local 12 // double[] mid
5: .line 1070
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 1072
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 1074
aload 0 /* this */
bipush 6
invokevirtual sun.java2d.marlin.DDasher.somethingTo:(I)V
10: .line 1070
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 1076
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 1081
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 9 /* _curCurvepts */
start local 9 // double[] _curCurvepts
1: .line 1082
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 1083
aload 9 /* _curCurvepts */
iconst_2
dload 1 /* x1 */
dastore
aload 9 /* _curCurvepts */
iconst_3
dload 3 /* y1 */
dastore
3: .line 1084
aload 9 /* _curCurvepts */
iconst_4
dload 5 /* x2 */
dastore
aload 9 /* _curCurvepts */
iconst_5
dload 7 /* y2 */
dastore
4: .line 1086
aload 0 /* this */
bipush 6
invokevirtual sun.java2d.marlin.DDasher.skipSomethingTo:(I)V
5: .line 1088
aload 0 /* this */
dload 5 /* x2 */
putfield sun.java2d.marlin.DDasher.cx0:D
6: .line 1089
aload 0 /* this */
dload 7 /* y2 */
putfield sun.java2d.marlin.DDasher.cy0:D
7: .line 1090
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 1094
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 1095
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 1097
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 6
3: .line 1098
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 1099
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 1101
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
6: .line 1103
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 1104
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 1108
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 3
1: .line 1109
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 1110
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
3: .line 1112
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 1115
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.dispose:()V
5: .line 1116
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 1120
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