public final class sun.awt.geom.Crossings$NonZero extends sun.awt.geom.Crossings
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.awt.geom.Crossings$NonZero
  super_class: sun.awt.geom.Crossings
{
  private int[] crosscounts;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  public void <init>(double, double, double, double);
    descriptor: (DDDD)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=9, args_size=5
        start local 0 // sun.awt.geom.Crossings$NonZero this
        start local 1 // double xlo
        start local 3 // double ylo
        start local 5 // double xhi
        start local 7 // double yhi
         0: .line 397
            aload 0 /* this */
            dload 1 /* xlo */
            dload 3 /* ylo */
            dload 5 /* xhi */
            dload 7 /* yhi */
            invokespecial sun.awt.geom.Crossings.<init>:(DDDD)V
         1: .line 398
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            arraylength
            iconst_2
            idiv
            newarray 10
            putfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
         2: .line 399
            return
        end local 7 // double yhi
        end local 5 // double xhi
        end local 3 // double ylo
        end local 1 // double xlo
        end local 0 // sun.awt.geom.Crossings$NonZero this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/awt/geom/Crossings$NonZero;
            0    3     1   xlo  D
            0    3     3   ylo  D
            0    3     5   xhi  D
            0    3     7   yhi  D
    MethodParameters:
      Name  Flags
      xlo   
      ylo   
      xhi   
      yhi   

  public final boolean covers(double, double);
    descriptor: (DD)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // sun.awt.geom.Crossings$NonZero this
        start local 1 // double ystart
        start local 3 // double yend
         0: .line 402
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         1: .line 403
            goto 11
         2: .line 404
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 5 /* i */
            iinc 5 /* i */ 1
            daload
            dstore 6 /* ylo */
        start local 6 // double ylo
         3: .line 405
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 5 /* i */
            iinc 5 /* i */ 1
            daload
            dstore 8 /* yhi */
        start local 8 // double yhi
         4: .line 406
            dload 1 /* ystart */
            dload 8 /* yhi */
            dcmpl
            iflt 6
         5: .line 407
            goto 11
         6: .line 409
      StackMap locals: double double
      StackMap stack:
            dload 1 /* ystart */
            dload 6 /* ylo */
            dcmpg
            ifge 8
         7: .line 410
            iconst_0
            ireturn
         8: .line 412
      StackMap locals:
      StackMap stack:
            dload 3 /* yend */
            dload 8 /* yhi */
            dcmpg
            ifgt 10
         9: .line 413
            iconst_1
            ireturn
        10: .line 415
      StackMap locals:
      StackMap stack:
            dload 8 /* yhi */
            dstore 1 /* ystart */
        end local 8 // double yhi
        end local 6 // double ylo
        11: .line 403
      StackMap locals:
      StackMap stack:
            iload 5 /* i */
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            if_icmplt 2
        12: .line 417
            dload 1 /* ystart */
            dload 3 /* yend */
            dcmpl
            iflt 13
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        13: iconst_0
            ireturn
        end local 5 // int i
        end local 3 // double yend
        end local 1 // double ystart
        end local 0 // sun.awt.geom.Crossings$NonZero this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lsun/awt/geom/Crossings$NonZero;
            0   14     1  ystart  D
            0   14     3    yend  D
            1   14     5       i  I
            3   11     6     ylo  D
            4   11     8     yhi  D
    MethodParameters:
        Name  Flags
      ystart  
      yend    

  public void remove(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // sun.awt.geom.Crossings$NonZero this
        start local 1 // int cur
         0: .line 421
            aload 0 /* this */
            dup
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            iconst_2
            isub
            putfield sun.awt.geom.Crossings$NonZero.limit:I
         1: .line 422
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            iload 1 /* cur */
            isub
            istore 2 /* rem */
        start local 2 // int rem
         2: .line 423
            iload 2 /* rem */
            ifle 8
         3: .line 424
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 1 /* cur */
            iconst_2
            iadd
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 1 /* cur */
            iload 2 /* rem */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         4: .line 425
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            iload 1 /* cur */
            iconst_2
            idiv
            iconst_1
            iadd
         5: .line 426
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            iload 1 /* cur */
            iconst_2
            idiv
         6: .line 427
            iload 2 /* rem */
            iconst_2
            idiv
         7: .line 425
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 429
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int rem
        end local 1 // int cur
        end local 0 // sun.awt.geom.Crossings$NonZero this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/awt/geom/Crossings$NonZero;
            0    9     1   cur  I
            2    9     2   rem  I
    MethodParameters:
      Name  Flags
      cur   

  public void insert(int, double, double, int);
    descriptor: (IDDI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=5
        start local 0 // sun.awt.geom.Crossings$NonZero this
        start local 1 // int cur
        start local 2 // double lo
        start local 4 // double hi
        start local 6 // int dir
         0: .line 432
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            iload 1 /* cur */
            isub
            istore 7 /* rem */
        start local 7 // int rem
         1: .line 433
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            astore 8 /* oldranges */
        start local 8 // double[] oldranges
         2: .line 434
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            astore 9 /* oldcounts */
        start local 9 // int[] oldcounts
         3: .line 435
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            arraylength
            if_icmplt 8
         4: .line 436
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            bipush 10
            iadd
            newarray 7
            putfield sun.awt.geom.Crossings$NonZero.yranges:[D
         5: .line 437
            aload 8 /* oldranges */
            iconst_0
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iconst_0
            iload 1 /* cur */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 438
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            bipush 10
            iadd
            iconst_2
            idiv
            newarray 10
            putfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
         7: .line 439
            aload 9 /* oldcounts */
            iconst_0
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            iconst_0
            iload 1 /* cur */
            iconst_2
            idiv
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 441
      StackMap locals: int double[] int[]
      StackMap stack:
            iload 7 /* rem */
            ifle 14
         9: .line 442
            aload 8 /* oldranges */
            iload 1 /* cur */
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 1 /* cur */
            iconst_2
            iadd
            iload 7 /* rem */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 443
            aload 9 /* oldcounts */
            iload 1 /* cur */
            iconst_2
            idiv
        11: .line 444
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            iload 1 /* cur */
            iconst_2
            idiv
            iconst_1
            iadd
        12: .line 445
            iload 7 /* rem */
            iconst_2
            idiv
        13: .line 443
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        14: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 1 /* cur */
            iconst_0
            iadd
            dload 2 /* lo */
            dastore
        15: .line 448
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 1 /* cur */
            iconst_1
            iadd
            dload 4 /* hi */
            dastore
        16: .line 449
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            iload 1 /* cur */
            iconst_2
            idiv
            iload 6 /* dir */
            iastore
        17: .line 450
            aload 0 /* this */
            dup
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            iconst_2
            iadd
            putfield sun.awt.geom.Crossings$NonZero.limit:I
        18: .line 451
            return
        end local 9 // int[] oldcounts
        end local 8 // double[] oldranges
        end local 7 // int rem
        end local 6 // int dir
        end local 4 // double hi
        end local 2 // double lo
        end local 1 // int cur
        end local 0 // sun.awt.geom.Crossings$NonZero this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Lsun/awt/geom/Crossings$NonZero;
            0   19     1        cur  I
            0   19     2         lo  D
            0   19     4         hi  D
            0   19     6        dir  I
            1   19     7        rem  I
            2   19     8  oldranges  [D
            3   19     9  oldcounts  [I
    MethodParameters:
      Name  Flags
      cur   
      lo    
      hi    
      dir   

  public void record(double, double, int);
    descriptor: (DDI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=15, args_size=4
        start local 0 // sun.awt.geom.Crossings$NonZero this
        start local 1 // double ystart
        start local 3 // double yend
        start local 5 // int direction
         0: .line 454
            dload 1 /* ystart */
            dload 3 /* yend */
            dcmpl
            iflt 2
         1: .line 455
            return
         2: .line 457
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* cur */
        start local 6 // int cur
         3: .line 459
            goto 5
         4: .line 460
      StackMap locals: int
      StackMap stack:
            iinc 6 /* cur */ 2
         5: .line 459
      StackMap locals:
      StackMap stack:
            iload 6 /* cur */
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            if_icmpge 6
            dload 1 /* ystart */
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            iconst_1
            iadd
            daload
            dcmpl
            ifgt 4
         6: .line 462
      StackMap locals:
      StackMap stack:
            iload 6 /* cur */
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            if_icmpge 45
         7: .line 463
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            iload 6 /* cur */
            iconst_2
            idiv
            iaload
            istore 7 /* rdir */
        start local 7 // int rdir
         8: .line 464
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            iconst_0
            iadd
            daload
            dstore 8 /* yrlo */
        start local 8 // double yrlo
         9: .line 465
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            iconst_1
            iadd
            daload
            dstore 10 /* yrhi */
        start local 10 // double yrhi
        10: .line 466
            dload 10 /* yrhi */
            dload 1 /* ystart */
            dcmpl
            ifne 19
            iload 7 /* rdir */
            iload 5 /* direction */
            if_icmpne 19
        11: .line 472
            iload 6 /* cur */
            iconst_2
            iadd
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.limit:I
            if_icmpne 14
        12: .line 473
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            iconst_1
            iadd
            dload 3 /* yend */
            dastore
        13: .line 474
            return
        14: .line 476
      StackMap locals: int double double
      StackMap stack:
            aload 0 /* this */
            iload 6 /* cur */
            invokevirtual sun.awt.geom.Crossings$NonZero.remove:(I)V
        15: .line 477
            dload 8 /* yrlo */
            dstore 1 /* ystart */
        16: .line 478
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            iload 6 /* cur */
            iconst_2
            idiv
            iaload
            istore 7 /* rdir */
        17: .line 479
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            iconst_0
            iadd
            daload
            dstore 8 /* yrlo */
        18: .line 480
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            iconst_1
            iadd
            daload
            dstore 10 /* yrhi */
        19: .line 482
      StackMap locals:
      StackMap stack:
            dload 3 /* yend */
            dload 8 /* yrlo */
            dcmpg
            ifge 22
        20: .line 484
            aload 0 /* this */
            iload 6 /* cur */
            dload 1 /* ystart */
            dload 3 /* yend */
            iload 5 /* direction */
            invokevirtual sun.awt.geom.Crossings$NonZero.insert:(IDDI)V
        21: .line 485
            return
        22: .line 487
      StackMap locals:
      StackMap stack:
            dload 3 /* yend */
            dload 8 /* yrlo */
            dcmpl
            ifne 25
            iload 7 /* rdir */
            iload 5 /* direction */
            if_icmpne 25
        23: .line 489
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            dload 1 /* ystart */
            dastore
        24: .line 490
            return
        25: .line 493
      StackMap locals:
      StackMap stack:
            dload 1 /* ystart */
            dload 8 /* yrlo */
            dcmpg
            ifge 30
        26: .line 494
            aload 0 /* this */
            iload 6 /* cur */
            dload 1 /* ystart */
            dload 8 /* yrlo */
            iload 5 /* direction */
            invokevirtual sun.awt.geom.Crossings$NonZero.insert:(IDDI)V
        27: .line 495
            iinc 6 /* cur */ 2
        28: .line 496
            dload 8 /* yrlo */
            dstore 1 /* ystart */
        29: .line 497
            goto 34
      StackMap locals:
      StackMap stack:
        30: dload 8 /* yrlo */
            dload 1 /* ystart */
            dcmpg
            ifge 34
        31: .line 498
            aload 0 /* this */
            iload 6 /* cur */
            dload 8 /* yrlo */
            dload 1 /* ystart */
            iload 7 /* rdir */
            invokevirtual sun.awt.geom.Crossings$NonZero.insert:(IDDI)V
        32: .line 499
            iinc 6 /* cur */ 2
        33: .line 500
            dload 1 /* ystart */
            dstore 8 /* yrlo */
        34: .line 503
      StackMap locals:
      StackMap stack:
            iload 7 /* rdir */
            iload 5 /* direction */
            iadd
            istore 12 /* newdir */
        start local 12 // int newdir
        35: .line 504
            dload 3 /* yend */
            dload 10 /* yrhi */
            invokestatic java.lang.Math.min:(DD)D
            dstore 13 /* newend */
        start local 13 // double newend
        36: .line 505
            iload 12 /* newdir */
            ifne 39
        37: .line 506
            aload 0 /* this */
            iload 6 /* cur */
            invokevirtual sun.awt.geom.Crossings$NonZero.remove:(I)V
        38: .line 507
            goto 42
        39: .line 508
      StackMap locals: int double
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.crosscounts:[I
            iload 6 /* cur */
            iconst_2
            idiv
            iload 12 /* newdir */
            iastore
        40: .line 509
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            iinc 6 /* cur */ 1
            dload 1 /* ystart */
            dastore
        41: .line 510
            aload 0 /* this */
            getfield sun.awt.geom.Crossings$NonZero.yranges:[D
            iload 6 /* cur */
            iinc 6 /* cur */ 1
            dload 13 /* newend */
            dastore
        42: .line 512
      StackMap locals:
      StackMap stack:
            dload 13 /* newend */
            dup2
            dstore 8 /* yrlo */
            dstore 1 /* ystart */
        43: .line 513
            dload 8 /* yrlo */
            dload 10 /* yrhi */
            dcmpg
            ifge 45
        44: .line 514
            aload 0 /* this */
            iload 6 /* cur */
            dload 8 /* yrlo */
            dload 10 /* yrhi */
            iload 7 /* rdir */
            invokevirtual sun.awt.geom.Crossings$NonZero.insert:(IDDI)V
        end local 13 // double newend
        end local 12 // int newdir
        end local 10 // double yrhi
        end local 8 // double yrlo
        end local 7 // int rdir
        45: .line 517
      StackMap locals: sun.awt.geom.Crossings$NonZero double double int int
      StackMap stack:
            dload 1 /* ystart */
            dload 3 /* yend */
            dcmpg
            ifge 47
        46: .line 518
            aload 0 /* this */
            iload 6 /* cur */
            dload 1 /* ystart */
            dload 3 /* yend */
            iload 5 /* direction */
            invokevirtual sun.awt.geom.Crossings$NonZero.insert:(IDDI)V
        47: .line 520
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int cur
        end local 5 // int direction
        end local 3 // double yend
        end local 1 // double ystart
        end local 0 // sun.awt.geom.Crossings$NonZero this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   48     0       this  Lsun/awt/geom/Crossings$NonZero;
            0   48     1     ystart  D
            0   48     3       yend  D
            0   48     5  direction  I
            3   48     6        cur  I
            8   45     7       rdir  I
            9   45     8       yrlo  D
           10   45    10       yrhi  D
           35   45    12     newdir  I
           36   45    13     newend  D
    MethodParameters:
           Name  Flags
      ystart     
      yend       
      direction  
}
SourceFile: "Crossings.java"
NestHost: sun.awt.geom.Crossings
InnerClasses:
  public final NonZero = sun.awt.geom.Crossings$NonZero of sun.awt.geom.Crossings