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