final class com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector implements com.sun.marlin.DPathConsumer2D
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector
  super_class: java.lang.Object
{
  private final com.sun.marlin.DRendererContext rdrCtx;
    descriptor: Lcom/sun/marlin/DRendererContext;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.marlin.DHelpers$PolyStack stack;
    descriptor: Lcom/sun/marlin/DHelpers$PolyStack;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.sun.marlin.DPathConsumer2D out;
    descriptor: Lcom/sun/marlin/DPathConsumer2D;
    flags: (0x0002) ACC_PRIVATE

  void <init>(com.sun.marlin.DRendererContext);
    descriptor: (Lcom/sun/marlin/DRendererContext;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
        start local 1 // com.sun.marlin.DRendererContext rdrCtx
         0: .line 421
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 422
            aload 0 /* this */
            aload 1 /* rdrCtx */
            putfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.rdrCtx:Lcom/sun/marlin/DRendererContext;
         2: .line 423
            aload 0 /* this */
            aload 1 /* rdrCtx */
            getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
            ifnull 11
         3: .line 424
            new com.sun.marlin.DHelpers$PolyStack
            dup
            aload 1 /* rdrCtx */
         4: .line 425
            aload 1 /* rdrCtx */
            getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
            getfield com.sun.marlin.RendererStats.stat_cpd_polystack_types:Lcom/sun/marlin/stats/StatLong;
         5: .line 426
            aload 1 /* rdrCtx */
            getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
            getfield com.sun.marlin.RendererStats.stat_cpd_polystack_curves:Lcom/sun/marlin/stats/StatLong;
         6: .line 427
            aload 1 /* rdrCtx */
            getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
            getfield com.sun.marlin.RendererStats.hist_cpd_polystack_curves:Lcom/sun/marlin/stats/Histogram;
         7: .line 428
            aload 1 /* rdrCtx */
            getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
            getfield com.sun.marlin.RendererStats.stat_array_cpd_polystack_curves:Lcom/sun/marlin/stats/StatLong;
         8: .line 429
            aload 1 /* rdrCtx */
            getfield com.sun.marlin.DRendererContext.stats:Lcom/sun/marlin/RendererStats;
            getfield com.sun.marlin.RendererStats.stat_array_cpd_polystack_types:Lcom/sun/marlin/stats/StatLong;
         9: .line 424
            invokespecial com.sun.marlin.DHelpers$PolyStack.<init>:(Lcom/sun/marlin/DRendererContext;Lcom/sun/marlin/stats/StatLong;Lcom/sun/marlin/stats/StatLong;Lcom/sun/marlin/stats/Histogram;Lcom/sun/marlin/stats/StatLong;Lcom/sun/marlin/stats/StatLong;)V
        10: .line 429
            goto 12
        11: .line 430
      StackMap locals: com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector com.sun.marlin.DRendererContext
      StackMap stack: com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector
            new com.sun.marlin.DHelpers$PolyStack
            dup
            aload 1 /* rdrCtx */
            invokespecial com.sun.marlin.DHelpers$PolyStack.<init>:(Lcom/sun/marlin/DRendererContext;)V
        12: .line 423
      StackMap locals: com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector com.sun.marlin.DRendererContext
      StackMap stack: com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector com.sun.marlin.DHelpers$PolyStack
            putfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.stack:Lcom/sun/marlin/DHelpers$PolyStack;
        13: .line 431
            return
        end local 1 // com.sun.marlin.DRendererContext rdrCtx
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;
            0   14     1  rdrCtx  Lcom/sun/marlin/DRendererContext;
    MethodParameters:
        Name  Flags
      rdrCtx  final

  com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector init(com.sun.marlin.DPathConsumer2D);
    descriptor: (Lcom/sun/marlin/DPathConsumer2D;)Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
        start local 1 // com.sun.marlin.DPathConsumer2D out
         0: .line 434
            aload 0 /* this */
            aload 1 /* out */
            putfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.out:Lcom/sun/marlin/DPathConsumer2D;
         1: .line 435
            aload 0 /* this */
            areturn
        end local 1 // com.sun.marlin.DPathConsumer2D out
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;
            0    2     1   out  Lcom/sun/marlin/DPathConsumer2D;
    MethodParameters:
      Name  Flags
      out   

  void dispose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
         0: .line 443
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.stack:Lcom/sun/marlin/DHelpers$PolyStack;
            invokevirtual com.sun.marlin.DHelpers$PolyStack.dispose:()V
         1: .line 444
            return
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;

  public void pathDone();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
         0: .line 449
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.finish:(Z)V
         1: .line 450
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.out:Lcom/sun/marlin/DPathConsumer2D;
            invokeinterface com.sun.marlin.DPathConsumer2D.pathDone:()V
         2: .line 454
            aload 0 /* this */
            invokevirtual com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.dispose:()V
         3: .line 455
            return
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;

  public void closePath();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
         0: .line 460
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.finish:(Z)V
         1: .line 461
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.out:Lcom/sun/marlin/DPathConsumer2D;
            invokeinterface com.sun.marlin.DPathConsumer2D.closePath:()V
         2: .line 462
            return
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;

  public void moveTo(double, double);
    descriptor: (DD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
        start local 1 // double x0
        start local 3 // double y0
         0: .line 467
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.finish:(Z)V
         1: .line 468
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.out:Lcom/sun/marlin/DPathConsumer2D;
            dload 1 /* x0 */
            dload 3 /* y0 */
            invokeinterface com.sun.marlin.DPathConsumer2D.moveTo:(DD)V
         2: .line 469
            return
        end local 3 // double y0
        end local 1 // double x0
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;
            0    3     1    x0  D
            0    3     3    y0  D
    MethodParameters:
      Name  Flags
      x0    
      y0    

  private void finish(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
        start local 1 // boolean closed
         0: .line 472
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.rdrCtx:Lcom/sun/marlin/DRendererContext;
            iload 1 /* closed */
            putfield com.sun.marlin.DRendererContext.closedPath:Z
         1: .line 473
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.stack:Lcom/sun/marlin/DHelpers$PolyStack;
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.out:Lcom/sun/marlin/DPathConsumer2D;
            invokevirtual com.sun.marlin.DHelpers$PolyStack.pullAll:(Lcom/sun/marlin/DPathConsumer2D;)V
         2: .line 474
            return
        end local 1 // boolean closed
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;
            0    3     1  closed  Z
    MethodParameters:
        Name  Flags
      closed  final

  public void lineTo(double, double);
    descriptor: (DD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
        start local 1 // double x1
        start local 3 // double y1
         0: .line 478
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.stack:Lcom/sun/marlin/DHelpers$PolyStack;
            dload 1 /* x1 */
            dload 3 /* y1 */
            invokevirtual com.sun.marlin.DHelpers$PolyStack.pushLine:(DD)V
         1: .line 479
            return
        end local 3 // double y1
        end local 1 // double x1
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;
            0    2     1    x1  D
            0    2     3    y1  D
    MethodParameters:
      Name  Flags
      x1    
      y1    

  public void curveTo(double, double, double, double, double, double);
    descriptor: (DDDDDD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=13, args_size=7
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
        start local 1 // double x3
        start local 3 // double y3
        start local 5 // double x2
        start local 7 // double y2
        start local 9 // double x1
        start local 11 // double y1
         0: .line 486
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.stack:Lcom/sun/marlin/DHelpers$PolyStack;
            dload 9 /* x1 */
            dload 11 /* y1 */
            dload 5 /* x2 */
            dload 7 /* y2 */
            dload 1 /* x3 */
            dload 3 /* y3 */
            invokevirtual com.sun.marlin.DHelpers$PolyStack.pushCubic:(DDDDDD)V
         1: .line 487
            return
        end local 11 // double y1
        end local 9 // double x1
        end local 7 // double y2
        end local 5 // double x2
        end local 3 // double y3
        end local 1 // double x3
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;
            0    2     1    x3  D
            0    2     3    y3  D
            0    2     5    x2  D
            0    2     7    y2  D
            0    2     9    x1  D
            0    2    11    y1  D
    MethodParameters:
      Name  Flags
      x3    
      y3    
      x2    
      y2    
      x1    
      y1    

  public void quadTo(double, double, double, double);
    descriptor: (DDDD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=5
        start local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
        start local 1 // double x2
        start local 3 // double y2
        start local 5 // double x1
        start local 7 // double y1
         0: .line 491
            aload 0 /* this */
            getfield com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector.stack:Lcom/sun/marlin/DHelpers$PolyStack;
            dload 5 /* x1 */
            dload 7 /* y1 */
            dload 1 /* x2 */
            dload 3 /* y2 */
            invokevirtual com.sun.marlin.DHelpers$PolyStack.pushQuad:(DDDD)V
         1: .line 492
            return
        end local 7 // double y1
        end local 5 // double x1
        end local 3 // double y2
        end local 1 // double x2
        end local 0 // com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/marlin/DTransformingPathConsumer2D$ClosedPathDetector;
            0    2     1    x2  D
            0    2     3    y2  D
            0    2     5    x1  D
            0    2     7    y1  D
    MethodParameters:
      Name  Flags
      x2    
      y2    
      x1    
      y1    
}
SourceFile: "DTransformingPathConsumer2D.java"
NestHost: com.sun.marlin.DTransformingPathConsumer2D
InnerClasses:
  final PolyStack = com.sun.marlin.DHelpers$PolyStack of com.sun.marlin.DHelpers
  final ClosedPathDetector = com.sun.marlin.DTransformingPathConsumer2D$ClosedPathDetector of com.sun.marlin.DTransformingPathConsumer2D