final class com.sun.marlin.Dasher$LengthIterator
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.marlin.Dasher$LengthIterator
super_class: java.lang.Object
{
private final float[][] recCurveStack;
descriptor: [[F
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 float nextT;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float lenAtNextT;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float lastT;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float lenAtLastT;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float lenAtLastSplit;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float lastSegLen;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private int recLevel;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean done;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final float[] curLeafCtrlPolyLengths;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int cachedHaveLowAcceleration;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final float[] nextRoots;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float[] flatLeafCoefCache;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_3
newarray 6
putfield com.sun.marlin.Dasher$LengthIterator.curLeafCtrlPolyLengths:[F
2: aload 0
iconst_m1
putfield com.sun.marlin.Dasher$LengthIterator.cachedHaveLowAcceleration:I
3: aload 0
iconst_4
newarray 6
putfield com.sun.marlin.Dasher$LengthIterator.nextRoots:[F
4: aload 0
iconst_4
newarray 6
dup
iconst_0
fconst_0
fastore
dup
iconst_1
fconst_0
fastore
dup
iconst_2
ldc -1.0
fastore
dup
iconst_3
fconst_0
fastore
putfield com.sun.marlin.Dasher$LengthIterator.flatLeafCoefCache:[F
5: aload 0
bipush 17
bipush 8
multianewarray [[F 2
putfield com.sun.marlin.Dasher$LengthIterator.recCurveStack:[[F
6: aload 0
bipush 16
newarray 4
putfield com.sun.marlin.Dasher$LengthIterator.sidesRight:[Z
7: aload 0
ldc 3.4028235E38
putfield com.sun.marlin.Dasher$LengthIterator.nextT:F
8: aload 0
ldc 3.4028235E38
putfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
9: aload 0
ldc 1.4E-45
putfield com.sun.marlin.Dasher$LengthIterator.lenAtLastSplit:F
10: aload 0
ldc -2147483648
putfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
11: aload 0
ldc 3.4028235E38
putfield com.sun.marlin.Dasher$LengthIterator.lastSegLen:F
12: aload 0
iconst_1
putfield com.sun.marlin.Dasher$LengthIterator.done:Z
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/marlin/Dasher$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/Dasher$LengthIterator;
void initializeIterationOnCurve(float[], int);
descriptor: ([FI)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.Dasher$LengthIterator.recCurveStack:[[F
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.Dasher$LengthIterator.curveType:I
2: aload 0
iconst_0
putfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
3: aload 0
fconst_0
putfield com.sun.marlin.Dasher$LengthIterator.lastT:F
4: aload 0
fconst_0
putfield com.sun.marlin.Dasher$LengthIterator.lenAtLastT:F
5: aload 0
fconst_0
putfield com.sun.marlin.Dasher$LengthIterator.nextT:F
6: aload 0
fconst_0
putfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
7: aload 0
invokevirtual com.sun.marlin.Dasher$LengthIterator.goLeft:()V
8: aload 0
fconst_0
putfield com.sun.marlin.Dasher$LengthIterator.lenAtLastSplit:F
9: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
ifle 13
10: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.sidesRight:[Z
iconst_0
iconst_0
bastore
11: aload 0
iconst_0
putfield com.sun.marlin.Dasher$LengthIterator.done:Z
12: goto 15
13: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.sidesRight:[Z
iconst_0
iconst_1
bastore
14: aload 0
iconst_1
putfield com.sun.marlin.Dasher$LengthIterator.done:Z
15: StackMap locals:
StackMap stack:
aload 0
fconst_0
putfield com.sun.marlin.Dasher$LengthIterator.lastSegLen:F
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/marlin/Dasher$LengthIterator;
0 17 1 pts [F
0 17 2 type I
MethodParameters:
Name Flags
pts final
type final
private boolean haveLowAcceleration(float);
descriptor: (F)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.cachedHaveLowAcceleration:I
iconst_m1
if_icmpne 15
1: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curLeafCtrlPolyLengths:[F
iconst_0
faload
fstore 2
start local 2 2: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curLeafCtrlPolyLengths:[F
iconst_1
faload
fstore 3
start local 3 3: fload 2
fload 3
fload 1
fload 3
fmul
invokestatic com.sun.marlin.Helpers.within:(FFF)Z
ifne 6
4: aload 0
iconst_0
putfield com.sun.marlin.Dasher$LengthIterator.cachedHaveLowAcceleration:I
5: iconst_0
ireturn
6: StackMap locals: float float
StackMap stack:
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curveType:I
bipush 8
if_icmpne 13
7: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curLeafCtrlPolyLengths:[F
iconst_2
faload
fstore 4
start local 4 8: fload 1
fload 4
fmul
fstore 5
start local 5 9: fload 3
fload 4
fload 5
invokestatic com.sun.marlin.Helpers.within:(FFF)Z
ifeq 11
10: fload 2
fload 4
fload 5
invokestatic com.sun.marlin.Helpers.within:(FFF)Z
ifne 13
11: StackMap locals: float float
StackMap stack:
aload 0
iconst_0
putfield com.sun.marlin.Dasher$LengthIterator.cachedHaveLowAcceleration:I
12: iconst_0
ireturn
end local 5 end local 4 13: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.marlin.Dasher$LengthIterator.cachedHaveLowAcceleration:I
14: iconst_1
ireturn
end local 3 end local 2 15: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.marlin.Dasher$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/Dasher$LengthIterator;
0 17 1 err F
2 15 2 len1 F
3 15 3 len2 F
8 13 4 len3 F
9 13 5 errLen3 F
MethodParameters:
Name Flags
err final
float next(float);
descriptor: (F)F
flags: (0x0000)
Code:
stack=8, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtLastSplit:F
fload 1
fadd
fstore 2
start local 2 1: goto 6
2: StackMap locals: float
StackMap stack:
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.done:Z
ifeq 5
3: aload 0
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtLastSplit:F
fsub
putfield com.sun.marlin.Dasher$LengthIterator.lastSegLen:F
4: fconst_1
freturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.marlin.Dasher$LengthIterator.goToNextLeaf:()V
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
fload 2
fcmpg
iflt 2
7: aload 0
fload 2
putfield com.sun.marlin.Dasher$LengthIterator.lenAtLastSplit:F
8: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtLastT:F
fsub
fstore 3
start local 3 9: fload 2
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtLastT:F
fsub
fload 3
fdiv
fstore 4
start local 4 10: aload 0
ldc 0.05
invokevirtual com.sun.marlin.Dasher$LengthIterator.haveLowAcceleration:(F)Z
ifne 34
11: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.flatLeafCoefCache:[F
astore 5
start local 5 12: aload 5
iconst_2
faload
fconst_0
fcmpg
ifge 27
13: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curLeafCtrlPolyLengths:[F
iconst_0
faload
fstore 6
start local 6 14: fload 6
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curLeafCtrlPolyLengths:[F
iconst_1
faload
fadd
fstore 7
start local 7 15: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curveType:I
bipush 8
if_icmpne 22
16: fload 7
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curLeafCtrlPolyLengths:[F
iconst_2
faload
fadd
fstore 8
start local 8 17: aload 5
iconst_0
ldc 3.0
fload 6
fload 7
fsub
fmul
fload 8
fadd
fastore
18: aload 5
iconst_1
ldc 3.0
fload 7
fconst_2
fload 6
fmul
fsub
fmul
fastore
19: aload 5
iconst_2
ldc 3.0
fload 6
fmul
fastore
20: aload 5
iconst_3
fload 8
fneg
fastore
end local 8 21: goto 27
StackMap locals: com.sun.marlin.Dasher$LengthIterator float float float float float[] float float
StackMap stack:
22: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curveType:I
bipush 6
if_icmpne 27
23: aload 5
iconst_0
fconst_0
fastore
24: aload 5
iconst_1
fload 7
fconst_2
fload 6
fmul
fsub
fastore
25: aload 5
iconst_2
fconst_2
fload 6
fmul
fastore
26: aload 5
iconst_3
fload 7
fneg
fastore
end local 7 end local 6 27: StackMap locals:
StackMap stack:
aload 5
iconst_0
faload
fstore 6
start local 6 28: aload 5
iconst_1
faload
fstore 7
start local 7 29: aload 5
iconst_2
faload
fstore 8
start local 8 30: fload 4
aload 5
iconst_3
faload
fmul
fstore 9
start local 9 31: fload 6
fload 7
fload 8
fload 9
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.nextRoots:[F
iconst_0
fconst_0
fconst_1
invokestatic com.sun.marlin.Helpers.cubicRootsInAB:(FFFF[FIFF)I
istore 10
start local 10 32: iload 10
iconst_1
if_icmpne 34
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.nextRoots:[F
iconst_0
faload
invokestatic java.lang.Float.isNaN:(F)Z
ifne 34
33: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.nextRoots:[F
iconst_0
faload
fstore 4
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 34: StackMap locals:
StackMap stack:
fload 4
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.nextT:F
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lastT:F
fsub
fmul
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lastT:F
fadd
fstore 4
35: fload 4
fconst_1
fcmpl
iflt 38
36: fconst_1
fstore 4
37: aload 0
iconst_1
putfield com.sun.marlin.Dasher$LengthIterator.done:Z
38: StackMap locals:
StackMap stack:
aload 0
fload 1
putfield com.sun.marlin.Dasher$LengthIterator.lastSegLen:F
39: fload 4
freturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lcom/sun/marlin/Dasher$LengthIterator;
0 40 1 len F
1 40 2 targetLength F
9 40 3 leaflen F
10 40 4 t F
12 34 5 _flatLeafCoefCache [F
14 27 6 x F
15 27 7 y F
17 21 8 z F
28 34 6 a F
29 34 7 b F
30 34 8 c F
31 34 9 d F
32 34 10 n I
MethodParameters:
Name Flags
len final
float totalLength();
descriptor: ()F
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.marlin.Dasher$LengthIterator.goToNextLeaf:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.done:Z
ifeq 1
3: aload 0
invokevirtual com.sun.marlin.Dasher$LengthIterator.reset:()V
4: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/marlin/Dasher$LengthIterator;
float lastSegLen();
descriptor: ()F
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lastSegLen:F
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/marlin/Dasher$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.Dasher$LengthIterator.sidesRight:[Z
astore 1
start local 1 1: aload 0
getfield com.sun.marlin.Dasher$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.Dasher$LengthIterator.recLevel:I
6: aload 0
iconst_1
putfield com.sun.marlin.Dasher$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.Dasher$LengthIterator.recCurveStack:[[F
iload 2
iinc 2 1
aaload
iconst_0
12: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recCurveStack:[[F
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.Dasher$LengthIterator.recLevel:I
15: aload 0
invokevirtual com.sun.marlin.Dasher$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/Dasher$LengthIterator;
1 17 1 _sides [Z
2 17 2 _recLevel I
private void goLeft();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.marlin.Dasher$LengthIterator.onLeaf:()F
fstore 1
start local 1 1: fload 1
fconst_0
fcmpl
iflt 9
2: aload 0
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.nextT:F
putfield com.sun.marlin.Dasher$LengthIterator.lastT:F
3: aload 0
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
putfield com.sun.marlin.Dasher$LengthIterator.lenAtLastT:F
4: aload 0
dup
getfield com.sun.marlin.Dasher$LengthIterator.nextT:F
iconst_1
bipush 16
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
isub
ishl
i2f
ldc 1.5258789E-5
fmul
fadd
putfield com.sun.marlin.Dasher$LengthIterator.nextT:F
5: aload 0
dup
getfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
fload 1
fadd
putfield com.sun.marlin.Dasher$LengthIterator.lenAtNextT:F
6: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.flatLeafCoefCache:[F
iconst_2
ldc -1.0
fastore
7: aload 0
iconst_m1
putfield com.sun.marlin.Dasher$LengthIterator.cachedHaveLowAcceleration:I
8: goto 16
9: StackMap locals: float
StackMap stack:
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recCurveStack:[[F
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
aaload
10: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recCurveStack:[[F
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
iconst_1
iadd
aaload
11: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recCurveStack:[[F
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
aaload
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curveType:I
12: invokestatic com.sun.marlin.Helpers.subdivide:([F[F[FI)V
13: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.sidesRight:[Z
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
iconst_0
bastore
14: aload 0
dup
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
iconst_1
iadd
putfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
15: aload 0
invokevirtual com.sun.marlin.Dasher$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/Dasher$LengthIterator;
1 17 1 len F
private float onLeaf();
descriptor: ()F
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=1
start local 0 0: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recCurveStack:[[F
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
aaload
astore 1
start local 1 1: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curveType:I
istore 2
start local 2 2: fconst_0
fstore 3
start local 3 3: aload 1
iconst_0
faload
fstore 4
start local 4 4: aload 1
iconst_1
faload
fstore 5
start local 5 5: iconst_2
istore 6
start local 6 6: goto 15
7: StackMap locals: com.sun.marlin.Dasher$LengthIterator float[] int float float float int
StackMap stack:
aload 1
iload 6
faload
fstore 7
start local 7 8: aload 1
iload 6
iconst_1
iadd
faload
fstore 8
start local 8 9: fload 4
fload 5
fload 7
fload 8
invokestatic com.sun.marlin.Helpers.linelen:(FFFF)F
fstore 9
start local 9 10: fload 3
fload 9
fadd
fstore 3
11: aload 0
getfield com.sun.marlin.Dasher$LengthIterator.curLeafCtrlPolyLengths:[F
iload 6
iconst_1
ishr
iconst_1
isub
fload 9
fastore
12: fload 7
fstore 4
13: fload 8
fstore 5
end local 9 end local 8 end local 7 14: iinc 6 2
StackMap locals:
StackMap stack:
15: iload 6
iload 2
if_icmplt 7
end local 6 16: aload 1
iconst_0
faload
aload 1
iconst_1
faload
fload 4
fload 5
invokestatic com.sun.marlin.Helpers.linelen:(FFFF)F
fstore 6
start local 6 17: fload 3
fload 6
fsub
getstatic com.sun.marlin.Dasher.CURVE_LEN_ERR:F
fcmpg
iflt 18
aload 0
getfield com.sun.marlin.Dasher$LengthIterator.recLevel:I
bipush 16
if_icmpne 19
18: StackMap locals: com.sun.marlin.Dasher$LengthIterator float[] int float float float float
StackMap stack:
fload 3
fload 6
fadd
fconst_2
fdiv
freturn
19: StackMap locals:
StackMap stack:
ldc -1.0
freturn
end local 6 end local 5 end local 4 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/Dasher$LengthIterator;
1 20 1 curve [F
2 20 2 _curveType I
3 20 3 polyLen F
4 20 4 x0 F
5 20 5 y0 F
6 16 6 i I
8 14 7 x1 F
9 14 8 y1 F
10 14 9 len F
17 20 6 lineLen F
}
SourceFile: "Dasher.java"
NestHost: com.sun.marlin.Dasher
InnerClasses:
final LengthIterator = com.sun.marlin.Dasher$LengthIterator of com.sun.marlin.Dasher