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 double LEN_TH;
descriptor: D
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 double minLength;
descriptor: D
flags: (0x0002) ACC_PRIVATE
final double[] clipRect;
descriptor: [D
flags: (0x0010) ACC_FINAL
final double[] clipRectPad;
descriptor: [D
flags: (0x0010) ACC_FINAL
private boolean init_clipRectPad;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
final double[] middle;
descriptor: [D
flags: (0x0010) ACC_FINAL
private final double[] subdivTs;
descriptor: [D
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=4, locals=0, args_size=0
0: invokestatic sun.java2d.marlin.MarlinProperties.getSubdividerMinLength:()F
f2d
putstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.LEN_TH:D
1: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.LEN_TH:D
dconst_0
dcmpl
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 7
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRectPad:[D
2: aload 0
iconst_0
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.init_clipRectPad:Z
3: aload 0
bipush 98
newarray 7
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[D
4: aload 0
bipush 12
newarray 7
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivTs:[D
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:[D
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRect:[D
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=5, 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:D
dconst_0
dcmpl
ifne 3
getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.LEN_TH:D
goto 4
3: StackMap locals:
StackMap stack: sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter
getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.LEN_TH:D
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.rdrCtx:Lsun/java2d/marlin/RendererContext;
getfield sun.java2d.marlin.RendererContext.clipInvScale:D
dmul
4: StackMap locals: sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter
StackMap stack: sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter double
putfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:D
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:D
invokevirtual java.lang.StringBuilder.append:(D)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=6, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRect:[D
astore 1
start local 1 1: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.clipRectPad:[D
astore 2
start local 2 2: aload 2
iconst_0
aload 1
iconst_0
daload
ldc 0.25
dsub
dastore
3: aload 2
iconst_1
aload 1
iconst_1
daload
ldc 0.25
dadd
dastore
4: aload 2
iconst_2
aload 1
iconst_2
daload
ldc 0.25
dsub
dastore
5: aload 2
iconst_3
aload 1
iconst_3
daload
ldc 0.25
dadd
dastore
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 [D
2 7 2 _clipRectPad [D
boolean splitLine(double, double, double, double, int, sun.java2d.marlin.DPathConsumer2D);
descriptor: (DDDDILsun/java2d/marlin/DPathConsumer2D;)Z
flags: (0x0000)
Code:
stack=8, locals=12, args_size=7
start local 0 start local 1 start local 3 start local 5 start local 7 start local 9 start local 10 0: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.DO_CHECK_LENGTH:Z
ifeq 2
dload 1
dload 3
dload 5
dload 7
invokestatic sun.java2d.marlin.Helpers.fastLineLen:(DDDD)D
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:D
dcmpg
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[D
astore 11
start local 11 3: aload 11
iconst_0
dload 1
dastore
aload 11
iconst_1
dload 3
dastore
4: aload 11
iconst_2
dload 5
dastore
aload 11
iconst_3
dload 7
dastore
5: aload 0
iconst_4
iload 9
aload 10
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivideAtIntersections:(IILsun/java2d/marlin/DPathConsumer2D;)Z
ireturn
end local 11 end local 10 end local 9 end local 7 end local 5 end local 3 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 D
0 6 3 y0 D
0 6 5 x1 D
0 6 7 y1 D
0 6 9 outCodeOR I
0 6 10 out Lsun/java2d/marlin/DPathConsumer2D;
3 6 11 mid [D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
outCodeOR final
out final
boolean splitQuad(double, double, double, double, double, double, int, sun.java2d.marlin.DPathConsumer2D);
descriptor: (DDDDDDILsun/java2d/marlin/DPathConsumer2D;)Z
flags: (0x0000)
Code:
stack=12, locals=16, args_size=9
start local 0 start local 1 start local 3 start local 5 start local 7 start local 9 start local 11 start local 13 start local 14 0: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.DO_CHECK_LENGTH:Z
ifeq 2
dload 1
dload 3
dload 5
dload 7
dload 9
dload 11
invokestatic sun.java2d.marlin.Helpers.fastQuadLen:(DDDDDD)D
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:D
dcmpg
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[D
astore 15
start local 15 3: aload 15
iconst_0
dload 1
dastore
aload 15
iconst_1
dload 3
dastore
4: aload 15
iconst_2
dload 5
dastore
aload 15
iconst_3
dload 7
dastore
5: aload 15
iconst_4
dload 9
dastore
aload 15
iconst_5
dload 11
dastore
6: aload 0
bipush 6
iload 13
aload 14
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivideAtIntersections:(IILsun/java2d/marlin/DPathConsumer2D;)Z
ireturn
end local 15 end local 14 end local 13 end local 11 end local 9 end local 7 end local 5 end local 3 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 D
0 7 3 y0 D
0 7 5 x1 D
0 7 7 y1 D
0 7 9 x2 D
0 7 11 y2 D
0 7 13 outCodeOR I
0 7 14 out Lsun/java2d/marlin/DPathConsumer2D;
3 7 15 mid [D
MethodParameters:
Name Flags
x0 final
y0 final
x1 final
y1 final
x2 final
y2 final
outCodeOR final
out final
boolean splitCurve(double, double, double, double, double, double, double, double, int, sun.java2d.marlin.DPathConsumer2D);
descriptor: (DDDDDDDDILsun/java2d/marlin/DPathConsumer2D;)Z
flags: (0x0000)
Code:
stack=16, locals=20, args_size=11
start local 0 start local 1 start local 3 start local 5 start local 7 start local 9 start local 11 start local 13 start local 15 start local 17 start local 18 0: getstatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.DO_CHECK_LENGTH:Z
ifeq 2
dload 1
dload 3
dload 5
dload 7
dload 9
dload 11
dload 13
dload 15
invokestatic sun.java2d.marlin.Helpers.fastCurvelen:(DDDDDDDD)D
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.minLength:D
dcmpg
ifgt 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.middle:[D
astore 19
start local 19 3: aload 19
iconst_0
dload 1
dastore
aload 19
iconst_1
dload 3
dastore
4: aload 19
iconst_2
dload 5
dastore
aload 19
iconst_3
dload 7
dastore
5: aload 19
iconst_4
dload 9
dastore
aload 19
iconst_5
dload 11
dastore
6: aload 19
bipush 6
dload 13
dastore
aload 19
bipush 7
dload 15
dastore
7: aload 0
bipush 8
iload 17
aload 18
invokevirtual sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivideAtIntersections:(IILsun/java2d/marlin/DPathConsumer2D;)Z
ireturn
end local 19 end local 18 end local 17 end local 15 end local 13 end local 11 end local 9 end local 7 end local 5 end local 3 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 D
0 8 3 y0 D
0 8 5 x1 D
0 8 7 y1 D
0 8 9 x2 D
0 8 11 y2 D
0 8 13 x3 D
0 8 15 y3 D
0 8 17 outCodeOR I
0 8 18 out Lsun/java2d/marlin/DPathConsumer2D;
3 8 19 mid [D
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.java2d.marlin.DPathConsumer2D);
descriptor: (IILsun/java2d/marlin/DPathConsumer2D;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=13, 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:[D
astore 4
start local 4 1: aload 0
getfield sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.subdivTs:[D
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: double[] double[]
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:[D
7: invokestatic sun.java2d.marlin.Helpers.findClipPoints:(Lsun/java2d/marlin/Curve;[D[DII[D)I
istore 6
start local 6 8: iload 6
ifne 10
9: iconst_0
ireturn
10: StackMap locals: int
StackMap stack:
dconst_0
dstore 7
start local 7 11: iconst_0
istore 9
start local 9 12: iconst_0
istore 10
start local 10 13: goto 20
14: StackMap locals: double int int
StackMap stack:
aload 5
iload 9
daload
dstore 11
start local 11 15: dload 11
dload 7
dsub
dconst_1
dload 7
dsub
ddiv
16: aload 4
iload 10
aload 4
iload 10
iload 1
17: invokestatic sun.java2d.marlin.Helpers.subdivideAt:(D[DI[DII)V
18: dload 11
dstore 7
end local 11 19: iinc 9 1
iload 10
iload 1
iadd
istore 10
StackMap locals:
StackMap stack:
20: iload 9
iload 6
if_icmplt 14
end local 10 end local 9 21: iconst_0
istore 9
start local 9 22: iconst_0
istore 10
start local 10 23: goto 26
24: StackMap locals:
StackMap stack:
iload 1
aload 4
iload 10
aload 3
invokestatic sun.java2d.marlin.TransformingPathConsumer2D$CurveClipSplitter.emitCurrent:(I[DILsun/java2d/marlin/DPathConsumer2D;)V
25: iinc 9 1
iload 10
iload 1
iadd
istore 10
StackMap locals:
StackMap stack:
26: iload 9
iload 6
if_icmple 24
end local 10 end local 9 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/java2d/marlin/DPathConsumer2D;
1 28 4 mid [D
2 28 5 subTs [D
8 28 6 nSplits I
11 28 7 prevT D
12 21 9 i I
13 21 10 off I
15 19 11 t D
22 27 9 i I
23 27 10 off I
MethodParameters:
Name Flags
type final
outCodeOR final
out final
static void emitCurrent(int, double[], int, sun.java2d.marlin.DPathConsumer2D);
descriptor: (I[DILsun/java2d/marlin/DPathConsumer2D;)V
flags: (0x0008) ACC_STATIC
Code:
stack=14, 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
daload
aload 1
iload 2
iconst_3
iadd
daload
2: aload 1
iload 2
iconst_4
iadd
daload
aload 1
iload 2
iconst_5
iadd
daload
3: aload 1
iload 2
bipush 6
iadd
daload
aload 1
iload 2
bipush 7
iadd
daload
4: invokeinterface sun.java2d.marlin.DPathConsumer2D.curveTo:(DDDDDD)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
daload
aload 1
iload 2
iconst_3
iadd
daload
invokeinterface sun.java2d.marlin.DPathConsumer2D.lineTo:(DD)V
8: goto 12
9: StackMap locals:
StackMap stack:
aload 3
aload 1
iload 2
iconst_2
iadd
daload
aload 1
iload 2
iconst_3
iadd
daload
10: aload 1
iload 2
iconst_4
iadd
daload
aload 1
iload 2
iconst_5
iadd
daload
11: invokeinterface sun.java2d.marlin.DPathConsumer2D.quadTo:(DDDD)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 [D
0 13 2 off I
0 13 3 out Lsun/java2d/marlin/DPathConsumer2D;
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