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: 4
static final double ERR;
descriptor: D
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0.01
static final double MIN_T_INC;
descriptor: D
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0.0625
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 sx;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double sy;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double x0;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double y0;
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)
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[] firstSegmentsBuffer;
descriptor: [D
flags: (0x0002) ACC_PRIVATE
private int firstSegidx;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final sun.java2d.marlin.DDasher$LengthIterator li;
descriptor: Lsun/java2d/marlin/DDasher$LengthIterator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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 87
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 383
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;
2: .line 88
aload 0 /* this */
aload 1 /* rdrCtx */
putfield sun.java2d.marlin.DDasher.rdrCtx:Lsun/java2d/marlin/DRendererContext;
3: .line 90
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;
4: .line 92
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;
5: .line 93
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
6: .line 97
aload 0 /* this */
bipush 16
newarray 7
putfield sun.java2d.marlin.DDasher.curCurvepts:[D
7: .line 98
return
end local 1 // sun.java2d.marlin.DRendererContext rdrCtx
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 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 113
aload 0 /* this */
aload 1 /* out */
putfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
1: .line 116
iconst_0
istore 7 /* sidx */
start local 7 // int sidx
2: .line 117
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.dashOn:Z
3: .line 118
dconst_0
dstore 8 /* sum */
start local 8 // double sum
4: .line 119
aload 2 /* dash */
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 8
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double top top int int double[]
StackMap stack:
5: aload 14
iload 12
daload
dstore 10 /* d */
start local 10 // double d
6: .line 120
dload 8 /* sum */
dload 10 /* d */
dadd
dstore 8 /* sum */
end local 10 // double d
7: .line 119
iinc 12 1
StackMap locals:
StackMap stack:
8: iload 12
iload 13
if_icmplt 5
9: .line 122
dload 4 /* phase */
dload 8 /* sum */
ddiv
dstore 10 /* cycles */
start local 10 // double cycles
10: .line 123
dload 4 /* phase */
dconst_0
dcmpg
ifge 29
11: .line 124
dload 10 /* cycles */
dneg
ldc 1.6E7
dcmpl
iflt 14
12: .line 125
dconst_0
dstore 4 /* phase */
13: .line 126
goto 47
14: .line 127
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
15: .line 128
iload 12 /* fullcycles */
aload 2 /* dash */
arraylength
iand
iconst_1
iand
ifeq 19
16: .line 129
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 17
iconst_0
goto 18
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double int
StackMap stack: sun.java2d.marlin.DDasher
17: 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
18: putfield sun.java2d.marlin.DDasher.dashOn:Z
19: .line 131
StackMap locals:
StackMap stack:
dload 4 /* phase */
iload 12 /* fullcycles */
i2d
dload 8 /* sum */
dmul
dadd
dstore 4 /* phase */
20: .line 132
goto 27
21: .line 133
StackMap locals:
StackMap stack:
iinc 7 /* sidx */ -1
iload 7 /* sidx */
ifge 23
22: .line 134
aload 2 /* dash */
arraylength
iconst_1
isub
istore 7 /* sidx */
23: .line 136
StackMap locals:
StackMap stack:
dload 4 /* phase */
aload 2 /* dash */
iload 7 /* sidx */
daload
dadd
dstore 4 /* phase */
24: .line 137
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 25
iconst_0
goto 26
StackMap locals:
StackMap stack: sun.java2d.marlin.DDasher
25: 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
26: putfield sun.java2d.marlin.DDasher.dashOn:Z
27: .line 132
StackMap locals:
StackMap stack:
dload 4 /* phase */
dconst_0
dcmpg
iflt 21
end local 12 // int fullcycles
28: .line 140
goto 47
StackMap locals:
StackMap stack:
29: dload 4 /* phase */
dconst_0
dcmpl
ifle 47
30: .line 141
dload 10 /* cycles */
ldc 1.6E7
dcmpl
iflt 33
31: .line 142
dconst_0
dstore 4 /* phase */
32: .line 143
goto 47
33: .line 144
StackMap locals:
StackMap stack:
dload 10 /* cycles */
invokestatic sun.java2d.marlin.FloatMath.floor_int:(D)I
istore 12 /* fullcycles */
start local 12 // int fullcycles
34: .line 145
iload 12 /* fullcycles */
aload 2 /* dash */
arraylength
iand
iconst_1
iand
ifeq 38
35: .line 146
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 36
iconst_0
goto 37
StackMap locals: sun.java2d.marlin.DDasher sun.java2d.marlin.DPathConsumer2D double[] int double int int double double int
StackMap stack: sun.java2d.marlin.DDasher
36: 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
37: putfield sun.java2d.marlin.DDasher.dashOn:Z
38: .line 148
StackMap locals:
StackMap stack:
dload 4 /* phase */
iload 12 /* fullcycles */
i2d
dload 8 /* sum */
dmul
dsub
dstore 4 /* phase */
39: .line 150
goto 45
start local 13 // double d
40: .line 151
StackMap locals: double
StackMap stack:
dload 4 /* phase */
dload 13 /* d */
dsub
dstore 4 /* phase */
41: .line 152
iload 7 /* sidx */
iconst_1
iadd
aload 2 /* dash */
arraylength
irem
istore 7 /* sidx */
42: .line 153
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 43
iconst_0
goto 44
StackMap locals:
StackMap stack: sun.java2d.marlin.DDasher
43: 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
44: putfield sun.java2d.marlin.DDasher.dashOn:Z
end local 13 // double d
45: .line 150
StackMap locals:
StackMap stack:
dload 4 /* phase */
aload 2 /* dash */
iload 7 /* sidx */
daload
dup2
dstore 13 /* d */
start local 13 // double d
46: dcmpl
ifge 40
end local 13 // double d
end local 12 // int fullcycles
47: .line 158
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 2 /* dash */
putfield sun.java2d.marlin.DDasher.dash:[D
48: .line 159
aload 0 /* this */
iload 3 /* dashLen */
putfield sun.java2d.marlin.DDasher.dashLen:I
49: .line 160
aload 0 /* this */
dload 4 /* phase */
putfield sun.java2d.marlin.DDasher.phase:D
50: .line 161
aload 0 /* this */
dload 4 /* phase */
putfield sun.java2d.marlin.DDasher.startPhase:D
51: .line 162
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
putfield sun.java2d.marlin.DDasher.startDashOn:Z
52: .line 163
aload 0 /* this */
iload 7 /* sidx */
putfield sun.java2d.marlin.DDasher.startIdx:I
53: .line 164
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.starting:Z
54: .line 165
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
55: .line 166
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.firstSegidx:I
56: .line 168
aload 0 /* this */
iload 6 /* recycleDashes */
putfield sun.java2d.marlin.DDasher.recycleDashes:Z
57: .line 170
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 58 0 this Lsun/java2d/marlin/DDasher;
0 58 1 out Lsun/java2d/marlin/DPathConsumer2D;
0 58 2 dash [D
0 58 3 dashLen I
0 58 4 phase D
0 58 6 recycleDashes Z
2 58 7 sidx I
4 58 8 sum D
6 7 10 d D
10 58 10 cycles D
15 28 12 fullcycles I
34 47 12 fullcycles I
40 45 13 d D
46 47 13 d D
MethodParameters:
Name Flags
out final
dash
dashLen
phase
recycleDashes
void dispose();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 // sun.java2d.marlin.DDasher this
0: .line 183
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.recycleDashes:Z
ifeq 2
1: .line 184
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 186
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 187
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 190
aload 1 /* dashes */
arraylength
istore 2 /* len */
start local 2 // int len
1: .line 192
iload 2 /* len */
sipush 256
if_icmpgt 4
2: .line 193
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 194
goto 7
end local 3 // double[] newDashes
4: .line 195
StackMap locals: int
StackMap stack:
getstatic sun.java2d.marlin.DDasher.DO_STATS:Z
ifeq 6
5: .line 196
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 198
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 200
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 201
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=5, args_size=3
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x0
start local 3 // double y0
0: .line 206
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 3
1: .line 207
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy:D
invokeinterface sun.java2d.marlin.DPathConsumer2D.moveTo:(DD)V
2: .line 208
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
3: .line 210
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
4: .line 211
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startIdx:I
putfield sun.java2d.marlin.DDasher.idx:I
5: .line 212
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startDashOn:Z
putfield sun.java2d.marlin.DDasher.dashOn:Z
6: .line 213
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.startPhase:D
putfield sun.java2d.marlin.DDasher.phase:D
7: .line 214
aload 0 /* this */
dload 1 /* x0 */
putfield sun.java2d.marlin.DDasher.sx:D
8: .line 215
aload 0 /* this */
dload 3 /* y0 */
putfield sun.java2d.marlin.DDasher.sy:D
9: .line 216
aload 0 /* this */
dload 1 /* x0 */
putfield sun.java2d.marlin.DDasher.x0:D
10: .line 217
aload 0 /* this */
dload 3 /* y0 */
putfield sun.java2d.marlin.DDasher.y0:D
11: .line 218
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.starting:Z
12: .line 219
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 13 0 this Lsun/java2d/marlin/DDasher;
0 13 1 x0 D
0 13 3 y0 D
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 222
iload 3 /* type */
tableswitch { // 4 - 8
4: 10
5: 12
6: 6
7: 12
8: 1
default: 12
}
1: .line 224
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 1 /* buf */
iload 2 /* off */
iconst_0
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_1
iadd
daload
2: .line 225
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
daload
3: .line 226
aload 1 /* buf */
iload 2 /* off */
iconst_4
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_5
iadd
daload
4: .line 224
invokeinterface sun.java2d.marlin.DPathConsumer2D.curveTo:(DDDDDD)V
5: .line 227
return
6: .line 229
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 1 /* buf */
iload 2 /* off */
iconst_0
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_1
iadd
daload
7: .line 230
aload 1 /* buf */
iload 2 /* off */
iconst_2
iadd
daload
aload 1 /* buf */
iload 2 /* off */
iconst_3
iadd
daload
8: .line 229
invokeinterface sun.java2d.marlin.DPathConsumer2D.quadTo:(DDDD)V
9: .line 231
return
10: .line 233
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 234
return
12: .line 237
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 240
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
astore 1 /* fSegBuf */
start local 1 // double[] fSegBuf
1: .line 242
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 243
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 244
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 245
iload 2 /* i */
iload 4 /* type */
iconst_1
isub
iadd
istore 2 /* i */
end local 4 // int type
7: .line 242
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 247
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.firstSegidx:I
9: .line 248
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 260
iload 2 /* off */
iload 3 /* type */
iadd
istore 5 /* index */
start local 5 // int index
1: .line 261
aload 1 /* pts */
iload 5 /* index */
iconst_4
isub
daload
dstore 6 /* x */
start local 6 // double x
2: .line 262
aload 1 /* pts */
iload 5 /* index */
iconst_3
isub
daload
dstore 8 /* y */
start local 8 // double y
3: .line 264
iload 4 /* on */
ifeq 12
4: .line 265
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.starting:Z
ifeq 7
5: .line 266
aload 0 /* this */
aload 1 /* pts */
iload 2 /* off */
iload 3 /* type */
invokevirtual sun.java2d.marlin.DDasher.goTo_starting:([DII)V
6: .line 267
goto 15
7: .line 268
StackMap locals: int double double
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.needsMoveTo:Z
ifeq 10
8: .line 269
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
9: .line 270
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.x0:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.y0:D
invokeinterface sun.java2d.marlin.DPathConsumer2D.moveTo:(DD)V
10: .line 272
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 274
goto 15
12: .line 275
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.starting:Z
ifeq 14
13: .line 277
aload 0 /* this */
iconst_0
putfield sun.java2d.marlin.DDasher.starting:Z
14: .line 279
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_1
putfield sun.java2d.marlin.DDasher.needsMoveTo:Z
15: .line 281
StackMap locals:
StackMap stack:
aload 0 /* this */
dload 6 /* x */
putfield sun.java2d.marlin.DDasher.x0:D
16: .line 282
aload 0 /* this */
dload 8 /* y */
putfield sun.java2d.marlin.DDasher.y0:D
17: .line 283
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 286
iload 3 /* type */
iconst_1
isub
istore 4 /* len */
start local 4 // int len
1: .line 287
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
istore 5 /* segIdx */
start local 5 // int segIdx
2: .line 288
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
astore 6 /* buf */
start local 6 // double[] buf
3: .line 290
iload 5 /* segIdx */
iload 4 /* len */
iadd
aload 6 /* buf */
arraylength
if_icmple 12
4: .line 291
getstatic sun.java2d.marlin.DDasher.DO_STATS:Z
ifeq 7
5: .line 292
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 293
iload 5 /* segIdx */
iload 4 /* len */
iadd
invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
7: .line 295
StackMap locals: int int double[]
StackMap stack:
aload 0 /* this */
8: .line 296
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegmentsBuffer_ref:Lsun/java2d/marlin/DoubleArrayCache$Reference;
aload 6 /* buf */
iload 5 /* segIdx */
9: .line 297
iload 5 /* segIdx */
iload 4 /* len */
iadd
10: .line 296
invokevirtual sun.java2d.marlin.DoubleArrayCache$Reference.widenArray:([DII)[D
11: .line 295
dup
astore 6 /* buf */
putfield sun.java2d.marlin.DDasher.firstSegmentsBuffer:[D
12: .line 299
StackMap locals:
StackMap stack:
aload 6 /* buf */
iload 5 /* segIdx */
iinc 5 /* segIdx */ 1
iload 3 /* type */
i2d
dastore
13: .line 300
iinc 4 /* len */ -1
14: .line 302
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 303
aload 0 /* this */
iload 5 /* segIdx */
iload 4 /* len */
iadd
putfield sun.java2d.marlin.DDasher.firstSegidx:I
16: .line 304
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=8, locals=32, args_size=3
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // double x1
start local 3 // double y1
0: .line 308
dload 1 /* x1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.x0:D
dsub
dstore 5 /* dx */
start local 5 // double dx
1: .line 309
dload 3 /* y1 */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.y0:D
dsub
dstore 7 /* dy */
start local 7 // double dy
2: .line 311
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 312
dload 9 /* len */
dconst_0
dcmpl
ifne 5
4: .line 313
return
5: .line 315
StackMap locals: double double double
StackMap stack:
dload 9 /* len */
invokestatic java.lang.Math.sqrt:(D)D
dstore 9 /* len */
6: .line 319
dload 5 /* dx */
dload 9 /* len */
ddiv
dstore 11 /* cx */
start local 11 // double cx
7: .line 320
dload 7 /* dy */
dload 9 /* len */
ddiv
dstore 13 /* cy */
start local 13 // double cy
8: .line 322
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 15 /* _curCurvepts */
start local 15 // double[] _curCurvepts
9: .line 323
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
astore 16 /* _dash */
start local 16 // double[] _dash
10: .line 324
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashLen:I
istore 17 /* _dashLen */
start local 17 // int _dashLen
11: .line 326
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.idx:I
istore 18 /* _idx */
start local 18 // int _idx
12: .line 327
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
istore 19 /* _dashOn */
start local 19 // boolean _dashOn
13: .line 328
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.phase:D
dstore 20 /* _phase */
start local 20 // double _phase
14: .line 334
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 335
dload 24 /* d */
dload 20 /* _phase */
dsub
dstore 22 /* leftInThisDashSegment */
start local 22 // double leftInThisDashSegment
16: .line 337
dload 9 /* len */
dload 22 /* leftInThisDashSegment */
dcmpg
ifgt 31
17: .line 338
aload 15 /* _curCurvepts */
iconst_0
dload 1 /* x1 */
dastore
18: .line 339
aload 15 /* _curCurvepts */
iconst_1
dload 3 /* y1 */
dastore
19: .line 341
aload 0 /* this */
aload 15 /* _curCurvepts */
iconst_0
iconst_4
iload 19 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
20: .line 344
dload 20 /* _phase */
dload 9 /* len */
dadd
dstore 20 /* _phase */
21: .line 347
dload 9 /* len */
dload 22 /* leftInThisDashSegment */
dcmpl
ifne 27
22: .line 348
dconst_0
dstore 20 /* _phase */
23: .line 349
iload 18 /* _idx */
iconst_1
iadd
iload 17 /* _dashLen */
irem
istore 18 /* _idx */
24: .line 350
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 354
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 18 /* _idx */
putfield sun.java2d.marlin.DDasher.idx:I
28: .line 355
aload 0 /* this */
iload 19 /* _dashOn */
putfield sun.java2d.marlin.DDasher.dashOn:Z
29: .line 356
aload 0 /* this */
dload 20 /* _phase */
putfield sun.java2d.marlin.DDasher.phase:D
30: .line 357
return
31: .line 360
StackMap locals:
StackMap stack:
dload 24 /* d */
dload 11 /* cx */
dmul
dstore 26 /* dashdx */
start local 26 // double dashdx
32: .line 361
dload 24 /* d */
dload 13 /* cy */
dmul
dstore 28 /* dashdy */
start local 28 // double dashdy
33: .line 363
dload 20 /* _phase */
dconst_0
dcmpl
ifne 37
34: .line 364
aload 15 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.x0:D
dload 26 /* dashdx */
dadd
dastore
35: .line 365
aload 15 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.y0:D
dload 28 /* dashdy */
dadd
dastore
36: .line 366
goto 40
37: .line 367
StackMap locals: double double
StackMap stack:
dload 22 /* leftInThisDashSegment */
dload 24 /* d */
ddiv
dstore 30 /* p */
start local 30 // double p
38: .line 368
aload 15 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.x0:D
dload 30 /* p */
dload 26 /* dashdx */
dmul
dadd
dastore
39: .line 369
aload 15 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.y0:D
dload 30 /* p */
dload 28 /* dashdy */
dmul
dadd
dastore
end local 30 // double p
40: .line 372
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
41: .line 374
dload 9 /* len */
dload 22 /* leftInThisDashSegment */
dsub
dstore 9 /* len */
42: .line 376
iload 18 /* _idx */
iconst_1
iadd
iload 17 /* _dashLen */
irem
istore 18 /* _idx */
43: .line 377
iload 19 /* _dashOn */
ifeq 44
iconst_0
goto 45
StackMap locals:
StackMap stack:
44: iconst_1
StackMap locals:
StackMap stack: int
45: istore 19 /* _dashOn */
46: .line 378
dconst_0
dstore 20 /* _phase */
end local 28 // double dashdy
end local 26 // double dashdx
end local 24 // double d
end local 22 // double leftInThisDashSegment
47: .line 333
goto 14
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 48 0 this Lsun/java2d/marlin/DDasher;
0 48 1 x1 D
0 48 3 y1 D
1 48 5 dx D
2 48 7 dy D
3 48 9 len D
7 48 11 cx D
8 48 13 cy D
9 48 15 _curCurvepts [D
10 48 16 _dash [D
11 48 17 _dashLen I
12 48 18 _idx I
13 48 19 _dashOn Z
14 48 20 _phase D
16 47 22 leftInThisDashSegment D
15 47 24 d D
32 47 26 dashdx D
33 47 28 dashdy D
38 40 30 p D
MethodParameters:
Name Flags
x1 final
y1 final
private void somethingTo(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=17, args_size=2
start local 0 // sun.java2d.marlin.DDasher this
start local 1 // int type
0: .line 388
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
iload 1 /* type */
invokestatic sun.java2d.marlin.DDasher.pointCurve:([DI)Z
ifeq 2
1: .line 389
return
2: .line 391
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.li:Lsun/java2d/marlin/DDasher$LengthIterator;
astore 2 /* _li */
start local 2 // sun.java2d.marlin.DDasher$LengthIterator _li
3: .line 392
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 3 /* _curCurvepts */
start local 3 // double[] _curCurvepts
4: .line 393
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dash:[D
astore 4 /* _dash */
start local 4 // double[] _dash
5: .line 394
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashLen:I
istore 5 /* _dashLen */
start local 5 // int _dashLen
6: .line 396
aload 2 /* _li */
aload 3 /* _curCurvepts */
iload 1 /* type */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.initializeIterationOnCurve:([DI)V
7: .line 398
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.idx:I
istore 6 /* _idx */
start local 6 // int _idx
8: .line 399
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
istore 7 /* _dashOn */
start local 7 // boolean _dashOn
9: .line 400
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.phase:D
dstore 8 /* _phase */
start local 8 // double _phase
10: .line 403
iconst_0
istore 10 /* curCurveoff */
start local 10 // int curCurveoff
11: .line 404
dconst_0
dstore 11 /* lastSplitT */
start local 11 // double lastSplitT
12: .line 406
aload 4 /* _dash */
iload 6 /* _idx */
daload
dload 8 /* _phase */
dsub
dstore 15 /* leftInThisDashSegment */
start local 15 // double leftInThisDashSegment
13: .line 408
goto 29
start local 13 // double t
14: .line 409
StackMap locals: sun.java2d.marlin.DDasher int sun.java2d.marlin.DDasher$LengthIterator double[] double[] int int int double int double double double
StackMap stack:
dload 13 /* t */
dconst_0
dcmpl
ifeq 23
15: .line 410
dload 13 /* t */
dload 11 /* lastSplitT */
dsub
dconst_1
dload 11 /* lastSplitT */
dsub
ddiv
16: .line 411
aload 3 /* _curCurvepts */
iload 10 /* curCurveoff */
17: .line 412
aload 3 /* _curCurvepts */
iconst_0
18: .line 413
aload 3 /* _curCurvepts */
iload 1 /* type */
iload 1 /* type */
19: .line 410
invokestatic sun.java2d.marlin.DHelpers.subdivideAt:(D[DI[DI[DII)V
20: .line 414
dload 13 /* t */
dstore 11 /* lastSplitT */
21: .line 415
aload 0 /* this */
aload 3 /* _curCurvepts */
iconst_2
iload 1 /* type */
iload 7 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
22: .line 416
iload 1 /* type */
istore 10 /* curCurveoff */
23: .line 419
StackMap locals:
StackMap stack:
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
24: .line 420
iload 7 /* _dashOn */
ifeq 25
iconst_0
goto 26
StackMap locals:
StackMap stack:
25: iconst_1
StackMap locals:
StackMap stack: int
26: istore 7 /* _dashOn */
27: .line 421
dconst_0
dstore 8 /* _phase */
28: .line 422
aload 4 /* _dash */
iload 6 /* _idx */
daload
dstore 15 /* leftInThisDashSegment */
end local 13 // double t
29: .line 408
StackMap locals: sun.java2d.marlin.DDasher int sun.java2d.marlin.DDasher$LengthIterator double[] double[] int int int double int double top top double
StackMap stack:
aload 2 /* _li */
dload 15 /* leftInThisDashSegment */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.next:(D)D
dup2
dstore 13 /* t */
start local 13 // double t
30: dconst_1
dcmpg
iflt 14
31: .line 425
aload 0 /* this */
aload 3 /* _curCurvepts */
iload 10 /* curCurveoff */
iconst_2
iadd
iload 1 /* type */
iload 7 /* _dashOn */
invokevirtual sun.java2d.marlin.DDasher.goTo:([DIIZ)V
32: .line 427
dload 8 /* _phase */
aload 2 /* _li */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.lastSegLen:()D
dadd
dstore 8 /* _phase */
33: .line 428
dload 8 /* _phase */
aload 4 /* _dash */
iload 6 /* _idx */
daload
dcmpl
iflt 39
34: .line 429
dconst_0
dstore 8 /* _phase */
35: .line 430
iload 6 /* _idx */
iconst_1
iadd
iload 5 /* _dashLen */
irem
istore 6 /* _idx */
36: .line 431
iload 7 /* _dashOn */
ifeq 37
iconst_0
goto 38
StackMap locals: sun.java2d.marlin.DDasher int sun.java2d.marlin.DDasher$LengthIterator double[] double[] int int int double int double double double
StackMap stack:
37: iconst_1
StackMap locals:
StackMap stack: int
38: istore 7 /* _dashOn */
39: .line 434
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 6 /* _idx */
putfield sun.java2d.marlin.DDasher.idx:I
40: .line 435
aload 0 /* this */
iload 7 /* _dashOn */
putfield sun.java2d.marlin.DDasher.dashOn:Z
41: .line 436
aload 0 /* this */
dload 8 /* _phase */
putfield sun.java2d.marlin.DDasher.phase:D
42: .line 439
aload 2 /* _li */
invokevirtual sun.java2d.marlin.DDasher$LengthIterator.reset:()V
43: .line 440
return
end local 15 // double leftInThisDashSegment
end local 13 // double t
end local 11 // double lastSplitT
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 // double[] _curCurvepts
end local 2 // sun.java2d.marlin.DDasher$LengthIterator _li
end local 1 // int type
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lsun/java2d/marlin/DDasher;
0 44 1 type I
3 44 2 _li Lsun/java2d/marlin/DDasher$LengthIterator;
4 44 3 _curCurvepts [D
5 44 4 _dash [D
6 44 5 _dashLen I
8 44 6 _idx I
9 44 7 _dashOn Z
10 44 8 _phase D
11 44 10 curCurveoff I
12 44 11 lastSplitT D
14 29 13 t D
30 44 13 t D
13 44 15 leftInThisDashSegment 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 443
iconst_2
istore 2 /* i */
start local 2 // int i
1: goto 5
2: .line 444
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 445
iconst_0
ireturn
4: .line 443
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 448
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
type
public void curveTo(double, double, double, double, double, double);
descriptor: (DDDDDD)V
flags: (0x0001) ACC_PUBLIC
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 744
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 13 /* _curCurvepts */
start local 13 // double[] _curCurvepts
1: .line 745
aload 13 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.x0:D
dastore
aload 13 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.y0:D
dastore
2: .line 746
aload 13 /* _curCurvepts */
iconst_2
dload 1 /* x1 */
dastore
aload 13 /* _curCurvepts */
iconst_3
dload 3 /* y1 */
dastore
3: .line 747
aload 13 /* _curCurvepts */
iconst_4
dload 5 /* x2 */
dastore
aload 13 /* _curCurvepts */
iconst_5
dload 7 /* y2 */
dastore
4: .line 748
aload 13 /* _curCurvepts */
bipush 6
dload 9 /* x3 */
dastore
aload 13 /* _curCurvepts */
bipush 7
dload 11 /* y3 */
dastore
5: .line 749
aload 0 /* this */
bipush 8
invokevirtual sun.java2d.marlin.DDasher.somethingTo:(I)V
6: .line 750
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 7 0 this Lsun/java2d/marlin/DDasher;
0 7 1 x1 D
0 7 3 y1 D
0 7 5 x2 D
0 7 7 y2 D
0 7 9 x3 D
0 7 11 y3 D
1 7 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=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 756
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.curCurvepts:[D
astore 9 /* _curCurvepts */
start local 9 // double[] _curCurvepts
1: .line 757
aload 9 /* _curCurvepts */
iconst_0
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.x0:D
dastore
aload 9 /* _curCurvepts */
iconst_1
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.y0:D
dastore
2: .line 758
aload 9 /* _curCurvepts */
iconst_2
dload 1 /* x1 */
dastore
aload 9 /* _curCurvepts */
iconst_3
dload 3 /* y1 */
dastore
3: .line 759
aload 9 /* _curCurvepts */
iconst_4
dload 5 /* x2 */
dastore
aload 9 /* _curCurvepts */
iconst_5
dload 7 /* y2 */
dastore
4: .line 760
aload 0 /* this */
bipush 6
invokevirtual sun.java2d.marlin.DDasher.somethingTo:(I)V
5: .line 761
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 6 0 this Lsun/java2d/marlin/DDasher;
0 6 1 x1 D
0 6 3 y1 D
0 6 5 x2 D
0 6 7 y2 D
1 6 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 765
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy:D
invokevirtual sun.java2d.marlin.DDasher.lineTo:(DD)V
1: .line 766
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 5
2: .line 767
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.dashOn:Z
ifeq 3
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.needsMoveTo:Z
ifeq 4
3: .line 768
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.sx:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy:D
invokeinterface sun.java2d.marlin.DPathConsumer2D.moveTo:(DD)V
4: .line 770
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
5: .line 772
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy:D
invokevirtual sun.java2d.marlin.DDasher.moveTo:(DD)V
6: .line 773
return
end local 0 // sun.java2d.marlin.DDasher this
LocalVariableTable:
Start End Slot Name Signature
0 7 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 777
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.firstSegidx:I
ifeq 3
1: .line 778
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.out:Lsun/java2d/marlin/DPathConsumer2D;
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sx:D
aload 0 /* this */
getfield sun.java2d.marlin.DDasher.sy:D
invokeinterface sun.java2d.marlin.DPathConsumer2D.moveTo:(DD)V
2: .line 779
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.emitFirstSegments:()V
3: .line 781
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 784
aload 0 /* this */
invokevirtual sun.java2d.marlin.DDasher.dispose:()V
5: .line 785
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 789
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 sun.java2d.marlin.DDasher$LengthIterator$Side
InnerClasses:
final LengthIterator = sun.java2d.marlin.DDasher$LengthIterator of sun.java2d.marlin.DDasher
final Reference = sun.java2d.marlin.DoubleArrayCache$Reference of sun.java2d.marlin.DoubleArrayCache