public class sun.java2d.Spans
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.java2d.Spans
  super_class: java.lang.Object
{
  private static final int kMaxAddsSinceSort;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  private java.util.List<sun.java2d.Spans$Span> mSpans;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lsun/java2d/Spans$Span;>;

  private int mAddsSinceSort;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.java2d.Spans this
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            aload 0 /* this */
            new java.util.Vector
            dup
            sipush 256
            invokespecial java.util.Vector.<init>:(I)V
            putfield sun.java2d.Spans.mSpans:Ljava/util/List;
         2: .line 60
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.Spans.mAddsSinceSort:I
         3: .line 64
            return
        end local 0 // sun.java2d.Spans this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/java2d/Spans;

  public void add(float, float);
    descriptor: (FF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.java2d.Spans this
        start local 1 // float start
        start local 2 // float end
         0: .line 73
            aload 0 /* this */
            getfield sun.java2d.Spans.mSpans:Ljava/util/List;
            ifnull 4
         1: .line 74
            aload 0 /* this */
            getfield sun.java2d.Spans.mSpans:Ljava/util/List;
            new sun.java2d.Spans$Span
            dup
            fload 1 /* start */
            fload 2 /* end */
            invokespecial sun.java2d.Spans$Span.<init>:(FF)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 76
            aload 0 /* this */
            dup
            getfield sun.java2d.Spans.mAddsSinceSort:I
            iconst_1
            iadd
            dup_x1
            putfield sun.java2d.Spans.mAddsSinceSort:I
            sipush 256
            if_icmplt 4
         3: .line 77
            aload 0 /* this */
            invokevirtual sun.java2d.Spans.sortAndCollapse:()V
         4: .line 80
      StackMap locals:
      StackMap stack:
            return
        end local 2 // float end
        end local 1 // float start
        end local 0 // sun.java2d.Spans this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/java2d/Spans;
            0    5     1  start  F
            0    5     2    end  F
    MethodParameters:
       Name  Flags
      start  
      end    

  public void addInfinite();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.java2d.Spans this
         0: .line 92
            aload 0 /* this */
            aconst_null
            putfield sun.java2d.Spans.mSpans:Ljava/util/List;
         1: .line 93
            return
        end local 0 // sun.java2d.Spans this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/Spans;

  public boolean intersects(float, float);
    descriptor: (FF)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.java2d.Spans this
        start local 1 // float start
        start local 2 // float end
         0: .line 104
            aload 0 /* this */
            getfield sun.java2d.Spans.mSpans:Ljava/util/List;
            ifnull 11
         1: .line 110
            aload 0 /* this */
            getfield sun.java2d.Spans.mAddsSinceSort:I
            ifle 3
         2: .line 111
            aload 0 /* this */
            invokevirtual sun.java2d.Spans.sortAndCollapse:()V
         3: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.Spans.mSpans:Ljava/util/List;
         4: .line 120
            new sun.java2d.Spans$Span
            dup
            fload 1 /* start */
            fload 2 /* end */
            invokespecial sun.java2d.Spans$Span.<init>:(FF)V
         5: .line 121
            getstatic sun.java2d.Spans$SpanIntersection.instance:Lsun/java2d/Spans$SpanIntersection;
         6: .line 119
            invokestatic java.util.Collections.binarySearch:(Ljava/util/List;Ljava/lang/Object;Ljava/util/Comparator;)I
            istore 4 /* found */
        start local 4 // int found
         7: .line 123
            iload 4 /* found */
            iflt 8
            iconst_1
            goto 9
      StackMap locals: sun.java2d.Spans float float top int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 3 /* doesIntersect */
        end local 4 // int found
        start local 3 // boolean doesIntersect
        10: .line 128
            goto 12
        end local 3 // boolean doesIntersect
        11: .line 129
      StackMap locals: sun.java2d.Spans float float
      StackMap stack:
            iconst_1
            istore 3 /* doesIntersect */
        start local 3 // boolean doesIntersect
        12: .line 132
      StackMap locals: int
      StackMap stack:
            iload 3 /* doesIntersect */
            ireturn
        end local 3 // boolean doesIntersect
        end local 2 // float end
        end local 1 // float start
        end local 0 // sun.java2d.Spans this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lsun/java2d/Spans;
            0   13     1          start  F
            0   13     2            end  F
           10   11     3  doesIntersect  Z
           12   13     3  doesIntersect  Z
            7   10     4          found  I
    MethodParameters:
       Name  Flags
      start  
      end    

  private void sortAndCollapse();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // sun.java2d.Spans this
         0: .line 144
            aload 0 /* this */
            getfield sun.java2d.Spans.mSpans:Ljava/util/List;
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
         1: .line 145
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.Spans.mAddsSinceSort:I
         2: .line 147
            aload 0 /* this */
            getfield sun.java2d.Spans.mSpans:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         3: .line 153
            aconst_null
            astore 2 /* span */
        start local 2 // sun.java2d.Spans$Span span
         4: .line 154
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 12
         5: .line 155
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.java2d.Spans$Span
            astore 2 /* span */
         6: .line 161
            goto 12
         7: .line 163
      StackMap locals: java.util.Iterator sun.java2d.Spans$Span
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.java2d.Spans$Span
            astore 3 /* nextSpan */
        start local 3 // sun.java2d.Spans$Span nextSpan
         8: .line 185
            aload 2 /* span */
            aload 3 /* nextSpan */
            invokevirtual sun.java2d.Spans$Span.subsume:(Lsun/java2d/Spans$Span;)Z
            ifeq 11
         9: .line 186
            aload 1 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        10: .line 193
            goto 12
        11: .line 194
      StackMap locals: sun.java2d.Spans$Span
      StackMap stack:
            aload 3 /* nextSpan */
            astore 2 /* span */
        end local 3 // sun.java2d.Spans$Span nextSpan
        12: .line 161
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        13: .line 197
            return
        end local 2 // sun.java2d.Spans$Span span
        end local 1 // java.util.Iterator iter
        end local 0 // sun.java2d.Spans this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lsun/java2d/Spans;
            3   14     1      iter  Ljava/util/Iterator<Lsun/java2d/Spans$Span;>;
            4   14     2      span  Lsun/java2d/Spans$Span;
            8   12     3  nextSpan  Lsun/java2d/Spans$Span;
}
SourceFile: "Spans.java"
NestMembers:
  sun.java2d.Spans$Span  sun.java2d.Spans$SpanIntersection
InnerClasses:
  Span = sun.java2d.Spans$Span of sun.java2d.Spans
  SpanIntersection = sun.java2d.Spans$SpanIntersection of sun.java2d.Spans