final class sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter
super_class: java.lang.Object
{
static final float LEN_TH;
descriptor: F
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean DO_CHECK_LENGTH;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final boolean TRACE;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int MAX_N_CURVES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private final sun.java2d.marlin.RendererContext rdrCtx;
descriptor: Lsun/java2d/marlin/RendererContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private float minLength;
descriptor: F
flags: (0x0002) ACC_PRIVATE
final float[] clipRect;
descriptor: [F
flags: (0x0010) ACC_FINAL
final float[] clipRectPad;
descriptor: [F
flags: (0x0010) ACC_FINAL
private boolean init_clipRectPad;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
final float[] middle;
descriptor: [F
flags: (0x0010) ACC_FINAL
private final float[] subdivTs;
descriptor: [F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.java2d.marlin.Curve curve;
descriptor: Lsun/java2d/marlin/Curve;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic sun.java2d.marlin.MarlinProperties.getSubdividerMinLength:()F
putstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.LEN_TH:F
1: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.LEN_TH:F
fconst_0
fcmpl
ifle 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: putstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.DO_CHECK_LENGTH:Z
4: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(sun.java2d.marlin.RendererContext);
descriptor: (Lsun/java2d/marlin/RendererContext;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_4
newarray 6
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRectPad:[F
2: aload 0
iconst_0
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.init_clipRectPad:Z
3: aload 0
bipush 98
newarray 6
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[F
4: aload 0
bipush 12
newarray 6
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivTs:[F
5: aload 0
aload 1
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.rdrCtx:Lsun/java2d/marlin/RendererContext;
6: aload 0
aload 1
getfield sun.java2d.marlin.RendererContext.clipRect:[F
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRect:[F
7: aload 0
aload 1
getfield sun.java2d.marlin.RendererContext.curve:Lsun/java2d/marlin/Curve;
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.curve:Lsun/java2d/marlin/Curve;
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
0 9 1 rdrCtx Lsun/java2d/marlin/RendererContext;
MethodParameters:
Name Flags
rdrCtx final
void init();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.init_clipRectPad:Z
1: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.DO_CHECK_LENGTH:Z
ifeq 9
2: aload 0
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.clipInvScale:F
fconst_0
fcmpl
ifne 3
getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.LEN_TH:F
goto 4
3: StackMap locals:
StackMap stack: sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter
getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.LEN_TH:F
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.clipInvScale:F
fmul
4: StackMap locals: sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter
StackMap stack: sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter float
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:F
5: getstatic sun.java2d.marlin.MarlinConst.DO_LOG_CLIP:Z
ifeq 9
6: new java.lang.StringBuilder
dup
ldc "CurveClipSplitter.minLength = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:F
invokevirtual java.lang.StringBuilder.append:(F)Ljava/lang/StringBuilder;
8: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic sun.java2d.marlin.MarlinUtils.logInfo:(Ljava/lang/String;)V
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
private void initPaddedClip();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRect:[F
astore 1
start local 1 1: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRectPad:[F
astore 2
start local 2 2: aload 2
iconst_0
aload 1
iconst_0
faload
fconst_1
fsub
fastore
3: aload 2
iconst_1
aload 1
iconst_1
faload
fconst_1
fadd
fastore
4: aload 2
iconst_2
aload 1
iconst_2
faload
fconst_1
fsub
fastore
5: aload 2
iconst_3
aload 1
iconst_3
faload
fconst_1
fadd
fastore
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
1 7 1 _clipRect [F
2 7 2 _clipRectPad [F
boolean splitLine(float, float, float, float, int, sun.awt.geom.PathConsumer2D);
descriptor: (FFFFILsun/awt/geom/PathConsumer2D;)Z
flags: (0x0000)
Code:
stack=4, locals=8, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.DO_CHECK_LENGTH:Z
ifeq 2
fload 1
fload 2
fload 3
fload 4
invokestatic sun.java2d.marlin.Helpers.fastLineLen:(FFFF)F
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:F
fcmpg
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[F
astore 7
start local 7 3: aload 7
iconst_0
fload 1
fastore
aload 7
iconst_1
fload 2
fastore
4: aload 7
iconst_2
fload 3
fastore
aload 7
iconst_3
fload 4
fastore
5: aload 0
iconst_4
iload 5
aload 6
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivideAtIntersections:(IILsun/awt/geom/PathConsumer2D;)Z
ireturn
end local 7 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 6 0 this Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
0 6 1 x0 F
0 6 2 y0 F
0 6 3 x1 F
0 6 4 y1 F
0 6 5 outCodeOR I
0 6 6 out Lsun/awt/geom/PathConsumer2D;
3 6 7 mid [F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
outCodeOR final
out final
boolean splitQuad(float, float, float, float, float, float, int, sun.awt.geom.PathConsumer2D);
descriptor: (FFFFFFILsun/awt/geom/PathConsumer2D;)Z
flags: (0x0000)
Code:
stack=6, locals=10, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.DO_CHECK_LENGTH:Z
ifeq 2
fload 1
fload 2
fload 3
fload 4
fload 5
fload 6
invokestatic sun.java2d.marlin.Helpers.fastQuadLen:(FFFFFF)F
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:F
fcmpg
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[F
astore 9
start local 9 3: aload 9
iconst_0
fload 1
fastore
aload 9
iconst_1
fload 2
fastore
4: aload 9
iconst_2
fload 3
fastore
aload 9
iconst_3
fload 4
fastore
5: aload 9
iconst_4
fload 5
fastore
aload 9
iconst_5
fload 6
fastore
6: aload 0
bipush 6
iload 7
aload 8
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivideAtIntersections:(IILsun/awt/geom/PathConsumer2D;)Z
ireturn
end local 9 end local 8 end local 7 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 7 0 this Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
0 7 1 x0 F
0 7 2 y0 F
0 7 3 x1 F
0 7 4 y1 F
0 7 5 x2 F
0 7 6 y2 F
0 7 7 outCodeOR I
0 7 8 out Lsun/awt/geom/PathConsumer2D;
3 7 9 mid [F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
outCodeOR final
out final
boolean splitCurve(float, float, float, float, float, float, float, float, int, sun.awt.geom.PathConsumer2D);
descriptor: (FFFFFFFFILsun/awt/geom/PathConsumer2D;)Z
flags: (0x0000)
Code:
stack=8, locals=12, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 0: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.DO_CHECK_LENGTH:Z
ifeq 2
fload 1
fload 2
fload 3
fload 4
fload 5
fload 6
fload 7
fload 8
invokestatic sun.java2d.marlin.Helpers.fastCurvelen:(FFFFFFFF)F
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:F
fcmpg
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[F
astore 11
start local 11 3: aload 11
iconst_0
fload 1
fastore
aload 11
iconst_1
fload 2
fastore
4: aload 11
iconst_2
fload 3
fastore
aload 11
iconst_3
fload 4
fastore
5: aload 11
iconst_4
fload 5
fastore
aload 11
iconst_5
fload 6
fastore
6: aload 11
bipush 6
fload 7
fastore
aload 11
bipush 7
fload 8
fastore
7: aload 0
bipush 8
iload 9
aload 10
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivideAtIntersections:(IILsun/awt/geom/PathConsumer2D;)Z
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 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 8 0 this Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
0 8 1 x0 F
0 8 2 y0 F
0 8 3 x1 F
0 8 4 y1 F
0 8 5 x2 F
0 8 6 y2 F
0 8 7 x3 F
0 8 8 y3 F
0 8 9 outCodeOR I
0 8 10 out Lsun/awt/geom/PathConsumer2D;
3 8 11 mid [F
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
x3 final
y3 final
outCodeOR final
out final
private boolean subdivideAtIntersections(int, int, sun.awt.geom.PathConsumer2D);
descriptor: (IILsun/awt/geom/PathConsumer2D;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[F
astore 4
start local 4 1: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivTs:[F
astore 5
start local 5 2: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.init_clipRectPad:Z
ifeq 5
3: aload 0
iconst_0
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.init_clipRectPad:Z
4: aload 0
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.initPaddedClip:()V
5: StackMap locals: float[] float[]
StackMap stack:
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.curve:Lsun/java2d/marlin/Curve;
aload 4
aload 5
iload 1
6: iload 2
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRectPad:[F
7: invokestatic sun.java2d.marlin.Helpers.findClipPoints:(Lsun/java2d/marlin/Curve;[F[FII[F)I
istore 6
start local 6 8: iload 6
ifne 10
9: iconst_0
ireturn
10: StackMap locals: int
StackMap stack:
fconst_0
fstore 7
start local 7 11: iconst_0
istore 8
start local 8 12: iconst_0
istore 9
start local 9 13: goto 20
14: StackMap locals: float int int
StackMap stack:
aload 5
iload 8
faload
fstore 10
start local 10 15: fload 10
fload 7
fsub
fconst_1
fload 7
fsub
fdiv
16: aload 4
iload 9
aload 4
iload 9
iload 1
17: invokestatic sun.java2d.marlin.Helpers.subdivideAt:(F[FI[FII)V
18: fload 10
fstore 7
end local 10 19: iinc 8 1
iload 9
iload 1
iadd
istore 9
StackMap locals:
StackMap stack:
20: iload 8
iload 6
if_icmplt 14
end local 9 end local 8 21: iconst_0
istore 8
start local 8 22: iconst_0
istore 9
start local 9 23: goto 26
24: StackMap locals:
StackMap stack:
iload 1
aload 4
iload 9
aload 3
invokestatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.emitCurrent:(I[FILsun/awt/geom/PathConsumer2D;)V
25: iinc 8 1
iload 9
iload 1
iadd
istore 9
StackMap locals:
StackMap stack:
26: iload 8
iload 6
if_icmple 24
end local 9 end local 8 27: iconst_1
ireturn
end local 7 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 28 0 this Lsun/java2d/marlin/TransformingPathConsumer2D$CurveClipSplitter;
0 28 1 type I
0 28 2 outCodeOR I
0 28 3 out Lsun/awt/geom/PathConsumer2D;
1 28 4 mid [F
2 28 5 subTs [F
8 28 6 nSplits I
11 28 7 prevT F
12 21 8 i I
13 21 9 off I
15 19 10 t F
22 27 8 i I
23 27 9 off I
MethodParameters:
Name Flags
type final
outCodeOR final
out final
static void emitCurrent(int, float[], int, sun.awt.geom.PathConsumer2D);
descriptor: (I[FILsun/awt/geom/PathConsumer2D;)V
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 0
bipush 8
if_icmpne 6
1: aload 3
aload 1
iload 2
iconst_2
iadd
faload
aload 1
iload 2
iconst_3
iadd
faload
2: aload 1
iload 2
iconst_4
iadd
faload
aload 1
iload 2
iconst_5
iadd
faload
3: aload 1
iload 2
bipush 6
iadd
faload
aload 1
iload 2
bipush 7
iadd
faload
4: invokeinterface sun.awt.geom.PathConsumer2D.curveTo:(FFFFFF)V
5: goto 12
StackMap locals:
StackMap stack:
6: iload 0
iconst_4
if_icmpne 9
7: aload 3
aload 1
iload 2
iconst_2
iadd
faload
aload 1
iload 2
iconst_3
iadd
faload
invokeinterface sun.awt.geom.PathConsumer2D.lineTo:(FF)V
8: goto 12
9: StackMap locals:
StackMap stack:
aload 3
aload 1
iload 2
iconst_2
iadd
faload
aload 1
iload 2
iconst_3
iadd
faload
10: aload 1
iload 2
iconst_4
iadd
faload
aload 1
iload 2
iconst_5
iadd
faload
11: invokeinterface sun.awt.geom.PathConsumer2D.quadTo:(FFFF)V
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 type I
0 13 1 pts [F
0 13 2 off I
0 13 3 out Lsun/awt/geom/PathConsumer2D;
MethodParameters:
Name Flags
type final
pts final
off final
out final
}
SourceFile: "TransformingPathConsumer2D.java"
NestHost: sun.java2d.marlin.TransformingPathConsumer2D
InnerClasses:
final CurveClipSplitter = sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter of sun.java2d.marlin.TransformingPathConsumer2D