final class com.sun.marlin.DDasher$LengthIterator
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.marlin.DDasher$LengthIterator
super_class: java.lang.Object
{
private final double[][] recCurveStack;
descriptor: [[D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean[] sidesRight;
descriptor: [Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int curveType;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private double nextT;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double lenAtNextT;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double lastT;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double lenAtLastT;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double lenAtLastSplit;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private double lastSegLen;
descriptor: D
flags: (0x0002) ACC_PRIVATE
private int recLevel;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean done;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final double[] curLeafCtrlPolyLengths;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int cachedHaveLowAcceleration;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final double[] nextRoots;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final double[] flatLeafCoefCache;
descriptor: [D
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_3
newarray 7
putfield com.sun.marlin.DDasher$LengthIterator.curLeafCtrlPolyLengths:[D
2: aload 0
iconst_m1
putfield com.sun.marlin.DDasher$LengthIterator.cachedHaveLowAcceleration:I
3: aload 0
iconst_4
newarray 7
putfield com.sun.marlin.DDasher$LengthIterator.nextRoots:[D
4: aload 0
iconst_4
newarray 7
dup
iconst_0
dconst_0
dastore
dup
iconst_1
dconst_0
dastore
dup
iconst_2
ldc -1.0
dastore
dup
iconst_3
dconst_0
dastore
putfield com.sun.marlin.DDasher$LengthIterator.flatLeafCoefCache:[D
5: aload 0
bipush 17
bipush 8
multianewarray [[D 2
putfield com.sun.marlin.DDasher$LengthIterator.recCurveStack:[[D
6: aload 0
bipush 16
newarray 4
putfield com.sun.marlin.DDasher$LengthIterator.sidesRight:[Z
7: aload 0
ldc 1.7976931348623157E308
putfield com.sun.marlin.DDasher$LengthIterator.nextT:D
8: aload 0
ldc 1.7976931348623157E308
putfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
9: aload 0
ldc 4.9E-324
putfield com.sun.marlin.DDasher$LengthIterator.lenAtLastSplit:D
10: aload 0
ldc -2147483648
putfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
11: aload 0
ldc 1.7976931348623157E308
putfield com.sun.marlin.DDasher$LengthIterator.lastSegLen:D
12: aload 0
iconst_1
putfield com.sun.marlin.DDasher$LengthIterator.done:Z
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/marlin/DDasher$LengthIterator;
void reset();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/marlin/DDasher$LengthIterator;
void initializeIterationOnCurve(double[], int);
descriptor: ([DI)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iconst_0
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recCurveStack:[[D
iconst_0
aaload
iconst_0
bipush 8
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
1: aload 0
iload 2
putfield com.sun.marlin.DDasher$LengthIterator.curveType:I
2: aload 0
iconst_0
putfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
3: aload 0
dconst_0
putfield com.sun.marlin.DDasher$LengthIterator.lastT:D
4: aload 0
dconst_0
putfield com.sun.marlin.DDasher$LengthIterator.lenAtLastT:D
5: aload 0
dconst_0
putfield com.sun.marlin.DDasher$LengthIterator.nextT:D
6: aload 0
dconst_0
putfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
7: aload 0
invokevirtual com.sun.marlin.DDasher$LengthIterator.goLeft:()V
8: aload 0
dconst_0
putfield com.sun.marlin.DDasher$LengthIterator.lenAtLastSplit:D
9: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
ifle 13
10: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.sidesRight:[Z
iconst_0
iconst_0
bastore
11: aload 0
iconst_0
putfield com.sun.marlin.DDasher$LengthIterator.done:Z
12: goto 15
13: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.sidesRight:[Z
iconst_0
iconst_1
bastore
14: aload 0
iconst_1
putfield com.sun.marlin.DDasher$LengthIterator.done:Z
15: StackMap locals:
StackMap stack:
aload 0
dconst_0
putfield com.sun.marlin.DDasher$LengthIterator.lastSegLen:D
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/marlin/DDasher$LengthIterator;
0 17 1 pts [D
0 17 2 type I
MethodParameters:
Name Flags
pts final
type final
private boolean haveLowAcceleration(double);
descriptor: (D)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.cachedHaveLowAcceleration:I
iconst_m1
if_icmpne 15
1: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curLeafCtrlPolyLengths:[D
iconst_0
daload
dstore 3
start local 3 2: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curLeafCtrlPolyLengths:[D
iconst_1
daload
dstore 5
start local 5 3: dload 3
dload 5
dload 1
dload 5
dmul
invokestatic com.sun.marlin.DHelpers.within:(DDD)Z
ifne 6
4: aload 0
iconst_0
putfield com.sun.marlin.DDasher$LengthIterator.cachedHaveLowAcceleration:I
5: iconst_0
ireturn
6: StackMap locals: double double
StackMap stack:
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curveType:I
bipush 8
if_icmpne 13
7: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curLeafCtrlPolyLengths:[D
iconst_2
daload
dstore 7
start local 7 8: dload 1
dload 7
dmul
dstore 9
start local 9 9: dload 5
dload 7
dload 9
invokestatic com.sun.marlin.DHelpers.within:(DDD)Z
ifeq 11
10: dload 3
dload 7
dload 9
invokestatic com.sun.marlin.DHelpers.within:(DDD)Z
ifne 13
11: StackMap locals: double double
StackMap stack:
aload 0
iconst_0
putfield com.sun.marlin.DDasher$LengthIterator.cachedHaveLowAcceleration:I
12: iconst_0
ireturn
end local 9 end local 7 13: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.marlin.DDasher$LengthIterator.cachedHaveLowAcceleration:I
14: iconst_1
ireturn
end local 5 end local 3 15: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.cachedHaveLowAcceleration:I
iconst_1
if_icmpne 16
iconst_1
ireturn
StackMap locals:
StackMap stack:
16: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/marlin/DDasher$LengthIterator;
0 17 1 err D
2 15 3 len1 D
3 15 5 len2 D
8 13 7 len3 D
9 13 9 errLen3 D
MethodParameters:
Name Flags
err final
double next(double);
descriptor: (D)D
flags: (0x0000)
Code:
stack=14, locals=19, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtLastSplit:D
dload 1
dadd
dstore 3
start local 3 1: goto 6
2: StackMap locals: double
StackMap stack:
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.done:Z
ifeq 5
3: aload 0
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtLastSplit:D
dsub
putfield com.sun.marlin.DDasher$LengthIterator.lastSegLen:D
4: dconst_1
dreturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.marlin.DDasher$LengthIterator.goToNextLeaf:()V
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
dload 3
dcmpg
iflt 2
7: aload 0
dload 3
putfield com.sun.marlin.DDasher$LengthIterator.lenAtLastSplit:D
8: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtLastT:D
dsub
dstore 5
start local 5 9: dload 3
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtLastT:D
dsub
dload 5
ddiv
dstore 7
start local 7 10: aload 0
ldc 0.05
invokevirtual com.sun.marlin.DDasher$LengthIterator.haveLowAcceleration:(D)Z
ifne 34
11: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.flatLeafCoefCache:[D
astore 9
start local 9 12: aload 9
iconst_2
daload
dconst_0
dcmpg
ifge 27
13: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curLeafCtrlPolyLengths:[D
iconst_0
daload
dstore 10
start local 10 14: dload 10
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curLeafCtrlPolyLengths:[D
iconst_1
daload
dadd
dstore 12
start local 12 15: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curveType:I
bipush 8
if_icmpne 22
16: dload 12
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curLeafCtrlPolyLengths:[D
iconst_2
daload
dadd
dstore 14
start local 14 17: aload 9
iconst_0
ldc 3.0
dload 10
dload 12
dsub
dmul
dload 14
dadd
dastore
18: aload 9
iconst_1
ldc 3.0
dload 12
ldc 2.0
dload 10
dmul
dsub
dmul
dastore
19: aload 9
iconst_2
ldc 3.0
dload 10
dmul
dastore
20: aload 9
iconst_3
dload 14
dneg
dastore
end local 14 21: goto 27
StackMap locals: com.sun.marlin.DDasher$LengthIterator double double double double double[] double double
StackMap stack:
22: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curveType:I
bipush 6
if_icmpne 27
23: aload 9
iconst_0
dconst_0
dastore
24: aload 9
iconst_1
dload 12
ldc 2.0
dload 10
dmul
dsub
dastore
25: aload 9
iconst_2
ldc 2.0
dload 10
dmul
dastore
26: aload 9
iconst_3
dload 12
dneg
dastore
end local 12 end local 10 27: StackMap locals:
StackMap stack:
aload 9
iconst_0
daload
dstore 10
start local 10 28: aload 9
iconst_1
daload
dstore 12
start local 12 29: aload 9
iconst_2
daload
dstore 14
start local 14 30: dload 7
aload 9
iconst_3
daload
dmul
dstore 16
start local 16 31: dload 10
dload 12
dload 14
dload 16
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.nextRoots:[D
iconst_0
dconst_0
dconst_1
invokestatic com.sun.marlin.DHelpers.cubicRootsInAB:(DDDD[DIDD)I
istore 18
start local 18 32: iload 18
iconst_1
if_icmpne 34
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.nextRoots:[D
iconst_0
daload
invokestatic java.lang.Double.isNaN:(D)Z
ifne 34
33: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.nextRoots:[D
iconst_0
daload
dstore 7
end local 18 end local 16 end local 14 end local 12 end local 10 end local 9 34: StackMap locals:
StackMap stack:
dload 7
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.nextT:D
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lastT:D
dsub
dmul
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lastT:D
dadd
dstore 7
35: dload 7
dconst_1
dcmpl
iflt 38
36: dconst_1
dstore 7
37: aload 0
iconst_1
putfield com.sun.marlin.DDasher$LengthIterator.done:Z
38: StackMap locals:
StackMap stack:
aload 0
dload 1
putfield com.sun.marlin.DDasher$LengthIterator.lastSegLen:D
39: dload 7
dreturn
end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lcom/sun/marlin/DDasher$LengthIterator;
0 40 1 len D
1 40 3 targetLength D
9 40 5 leaflen D
10 40 7 t D
12 34 9 _flatLeafCoefCache [D
14 27 10 x D
15 27 12 y D
17 21 14 z D
28 34 10 a D
29 34 12 b D
30 34 14 c D
31 34 16 d D
32 34 18 n I
MethodParameters:
Name Flags
len final
double totalLength();
descriptor: ()D
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.marlin.DDasher$LengthIterator.goToNextLeaf:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.done:Z
ifeq 1
3: aload 0
invokevirtual com.sun.marlin.DDasher$LengthIterator.reset:()V
4: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/marlin/DDasher$LengthIterator;
double lastSegLen();
descriptor: ()D
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lastSegLen:D
dreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/marlin/DDasher$LengthIterator;
private void goToNextLeaf();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.sidesRight:[Z
astore 1
start local 1 1: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
istore 2
start local 2 2: iinc 2 -1
3: goto 9
4: StackMap locals: boolean[] int
StackMap stack:
iload 2
ifne 8
5: aload 0
iconst_0
putfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
6: aload 0
iconst_1
putfield com.sun.marlin.DDasher$LengthIterator.done:Z
7: return
8: StackMap locals:
StackMap stack:
iinc 2 -1
9: StackMap locals:
StackMap stack:
aload 1
iload 2
baload
ifne 4
10: aload 1
iload 2
iconst_1
bastore
11: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recCurveStack:[[D
iload 2
iinc 2 1
aaload
iconst_0
12: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recCurveStack:[[D
iload 2
aaload
iconst_0
bipush 8
13: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: aload 0
iload 2
putfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
15: aload 0
invokevirtual com.sun.marlin.DDasher$LengthIterator.goLeft:()V
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/marlin/DDasher$LengthIterator;
1 17 1 _sides [Z
2 17 2 _recLevel I
private void goLeft();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.marlin.DDasher$LengthIterator.onLeaf:()D
dstore 1
start local 1 1: dload 1
dconst_0
dcmpl
iflt 9
2: aload 0
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.nextT:D
putfield com.sun.marlin.DDasher$LengthIterator.lastT:D
3: aload 0
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
putfield com.sun.marlin.DDasher$LengthIterator.lenAtLastT:D
4: aload 0
dup
getfield com.sun.marlin.DDasher$LengthIterator.nextT:D
iconst_1
bipush 16
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
isub
ishl
i2d
ldc 1.52587890625E-5
dmul
dadd
putfield com.sun.marlin.DDasher$LengthIterator.nextT:D
5: aload 0
dup
getfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
dload 1
dadd
putfield com.sun.marlin.DDasher$LengthIterator.lenAtNextT:D
6: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.flatLeafCoefCache:[D
iconst_2
ldc -1.0
dastore
7: aload 0
iconst_m1
putfield com.sun.marlin.DDasher$LengthIterator.cachedHaveLowAcceleration:I
8: goto 16
9: StackMap locals: double
StackMap stack:
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recCurveStack:[[D
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
aaload
10: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recCurveStack:[[D
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
iconst_1
iadd
aaload
11: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recCurveStack:[[D
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
aaload
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curveType:I
12: invokestatic com.sun.marlin.DHelpers.subdivide:([D[D[DI)V
13: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.sidesRight:[Z
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
iconst_0
bastore
14: aload 0
dup
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
iconst_1
iadd
putfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
15: aload 0
invokevirtual com.sun.marlin.DDasher$LengthIterator.goLeft:()V
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/marlin/DDasher$LengthIterator;
1 17 1 len D
private double onLeaf();
descriptor: ()D
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=16, args_size=1
start local 0 0: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recCurveStack:[[D
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
aaload
astore 1
start local 1 1: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curveType:I
istore 2
start local 2 2: dconst_0
dstore 3
start local 3 3: aload 1
iconst_0
daload
dstore 5
start local 5 4: aload 1
iconst_1
daload
dstore 7
start local 7 5: iconst_2
istore 9
start local 9 6: goto 15
7: StackMap locals: com.sun.marlin.DDasher$LengthIterator double[] int double double double int
StackMap stack:
aload 1
iload 9
daload
dstore 10
start local 10 8: aload 1
iload 9
iconst_1
iadd
daload
dstore 12
start local 12 9: dload 5
dload 7
dload 10
dload 12
invokestatic com.sun.marlin.DHelpers.linelen:(DDDD)D
dstore 14
start local 14 10: dload 3
dload 14
dadd
dstore 3
11: aload 0
getfield com.sun.marlin.DDasher$LengthIterator.curLeafCtrlPolyLengths:[D
iload 9
iconst_1
ishr
iconst_1
isub
dload 14
dastore
12: dload 10
dstore 5
13: dload 12
dstore 7
end local 14 end local 12 end local 10 14: iinc 9 2
StackMap locals:
StackMap stack:
15: iload 9
iload 2
if_icmplt 7
end local 9 16: aload 1
iconst_0
daload
aload 1
iconst_1
daload
dload 5
dload 7
invokestatic com.sun.marlin.DHelpers.linelen:(DDDD)D
dstore 9
start local 9 17: dload 3
dload 9
dsub
getstatic com.sun.marlin.DDasher.CURVE_LEN_ERR:D
dcmpg
iflt 18
aload 0
getfield com.sun.marlin.DDasher$LengthIterator.recLevel:I
bipush 16
if_icmpne 19
18: StackMap locals: com.sun.marlin.DDasher$LengthIterator double[] int double double double double
StackMap stack:
dload 3
dload 9
dadd
ldc 2.0
ddiv
dreturn
19: StackMap locals:
StackMap stack:
ldc -1.0
dreturn
end local 9 end local 7 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/sun/marlin/DDasher$LengthIterator;
1 20 1 curve [D
2 20 2 _curveType I
3 20 3 polyLen D
4 20 5 x0 D
5 20 7 y0 D
6 16 9 i I
8 14 10 x1 D
9 14 12 y1 D
10 14 14 len D
17 20 9 lineLen D
}
SourceFile: "DDasher.java"
NestHost: com.sun.marlin.DDasher
InnerClasses:
final LengthIterator = com.sun.marlin.DDasher$LengthIterator of com.sun.marlin.DDasher