public class android.text.SpanSet<E>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.text.SpanSet
  super_class: java.lang.Object
{
  private final java.lang.Class<? extends E> classType;
    descriptor: Ljava/lang/Class;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/Class<+TE;>;

  int numberOfSpans;
    descriptor: I
    flags: (0x0000) 

  E[] spans;
    descriptor: [Ljava/lang/Object;
    flags: (0x0000) 
    Signature: [TE;

  int[] spanStarts;
    descriptor: [I
    flags: (0x0000) 

  int[] spanEnds;
    descriptor: [I
    flags: (0x0000) 

  int[] spanFlags;
    descriptor: [I
    flags: (0x0000) 

  void <init>(java.lang.Class<? extends E>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.SpanSet this
        start local 1 // java.lang.Class type
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 41
            aload 0 /* this */
            aload 1 /* type */
            putfield android.text.SpanSet.classType:Ljava/lang/Class;
         2: .line 42
            aload 0 /* this */
            iconst_0
            putfield android.text.SpanSet.numberOfSpans:I
         3: .line 43
            return
        end local 1 // java.lang.Class type
        end local 0 // android.text.SpanSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/text/SpanSet<TE;>;
            0    4     1  type  Ljava/lang/Class<+TE;>;
    Signature: (Ljava/lang/Class<+TE;>;)V
    MethodParameters:
      Name  Flags
      type  

  public void init(android.text.Spanned, int, int);
    descriptor: (Landroid/text/Spanned;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=4
        start local 0 // android.text.SpanSet this
        start local 1 // android.text.Spanned spanned
        start local 2 // int start
        start local 3 // int limit
         0: .line 47
            aload 1 /* spanned */
            iload 2 /* start */
            iload 3 /* limit */
            aload 0 /* this */
            getfield android.text.SpanSet.classType:Ljava/lang/Class;
            invokeinterface android.text.Spanned.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            astore 4 /* allSpans */
        start local 4 // java.lang.Object[] allSpans
         1: .line 48
            aload 4 /* allSpans */
            arraylength
            istore 5 /* length */
        start local 5 // int length
         2: .line 50
            iload 5 /* length */
            ifle 7
            aload 0 /* this */
            getfield android.text.SpanSet.spans:[Ljava/lang/Object;
            ifnull 3
            aload 0 /* this */
            getfield android.text.SpanSet.spans:[Ljava/lang/Object;
            arraylength
            iload 5 /* length */
            if_icmpge 7
         3: .line 52
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.text.SpanSet.classType:Ljava/lang/Class;
            iload 5 /* length */
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Object[]
            putfield android.text.SpanSet.spans:[Ljava/lang/Object;
         4: .line 53
            aload 0 /* this */
            iload 5 /* length */
            newarray 10
            putfield android.text.SpanSet.spanStarts:[I
         5: .line 54
            aload 0 /* this */
            iload 5 /* length */
            newarray 10
            putfield android.text.SpanSet.spanEnds:[I
         6: .line 55
            aload 0 /* this */
            iload 5 /* length */
            newarray 10
            putfield android.text.SpanSet.spanFlags:[I
         7: .line 58
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            istore 6 /* prevNumberOfSpans */
        start local 6 // int prevNumberOfSpans
         8: .line 59
            aload 0 /* this */
            iconst_0
            putfield android.text.SpanSet.numberOfSpans:I
         9: .line 60
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        10: goto 22
        11: .line 61
      StackMap locals: int int
      StackMap stack:
            aload 4 /* allSpans */
            iload 7 /* i */
            aaload
            astore 8 /* span */
        start local 8 // java.lang.Object span
        12: .line 63
            aload 1 /* spanned */
            aload 8 /* span */
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            istore 9 /* spanStart */
        start local 9 // int spanStart
        13: .line 64
            aload 1 /* spanned */
            aload 8 /* span */
            invokeinterface android.text.Spanned.getSpanEnd:(Ljava/lang/Object;)I
            istore 10 /* spanEnd */
        start local 10 // int spanEnd
        14: .line 65
            iload 9 /* spanStart */
            iload 10 /* spanEnd */
            if_icmpne 15
            goto 21
        15: .line 67
      StackMap locals: java.lang.Object int int
      StackMap stack:
            aload 1 /* spanned */
            aload 8 /* span */
            invokeinterface android.text.Spanned.getSpanFlags:(Ljava/lang/Object;)I
            istore 11 /* spanFlag */
        start local 11 // int spanFlag
        16: .line 69
            aload 0 /* this */
            getfield android.text.SpanSet.spans:[Ljava/lang/Object;
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            aload 8 /* span */
            aastore
        17: .line 70
            aload 0 /* this */
            getfield android.text.SpanSet.spanStarts:[I
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            iload 9 /* spanStart */
            iastore
        18: .line 71
            aload 0 /* this */
            getfield android.text.SpanSet.spanEnds:[I
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            iload 10 /* spanEnd */
            iastore
        19: .line 72
            aload 0 /* this */
            getfield android.text.SpanSet.spanFlags:[I
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            iload 11 /* spanFlag */
            iastore
        20: .line 74
            aload 0 /* this */
            dup
            getfield android.text.SpanSet.numberOfSpans:I
            iconst_1
            iadd
            putfield android.text.SpanSet.numberOfSpans:I
        end local 11 // int spanFlag
        end local 10 // int spanEnd
        end local 9 // int spanStart
        end local 8 // java.lang.Object span
        21: .line 60
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 7 /* i */
            iload 5 /* length */
            if_icmplt 11
        end local 7 // int i
        23: .line 78
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            iload 6 /* prevNumberOfSpans */
            if_icmpge 25
        24: .line 80
            aload 0 /* this */
            getfield android.text.SpanSet.spans:[Ljava/lang/Object;
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            iload 6 /* prevNumberOfSpans */
            aconst_null
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;IILjava/lang/Object;)V
        25: .line 82
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int prevNumberOfSpans
        end local 5 // int length
        end local 4 // java.lang.Object[] allSpans
        end local 3 // int limit
        end local 2 // int start
        end local 1 // android.text.Spanned spanned
        end local 0 // android.text.SpanSet this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   26     0               this  Landroid/text/SpanSet<TE;>;
            0   26     1            spanned  Landroid/text/Spanned;
            0   26     2              start  I
            0   26     3              limit  I
            1   26     4           allSpans  [Ljava/lang/Object;
            2   26     5             length  I
            8   26     6  prevNumberOfSpans  I
           10   23     7                  i  I
           12   21     8               span  TE;
           13   21     9          spanStart  I
           14   21    10            spanEnd  I
           16   21    11           spanFlag  I
    MethodParameters:
         Name  Flags
      spanned  
      start    
      limit    

  public boolean hasSpansIntersecting(int, int);
    descriptor: (II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // android.text.SpanSet this
        start local 1 // int start
        start local 2 // int end
         0: .line 89
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 5
         2: .line 91
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.text.SpanSet.spanStarts:[I
            iload 3 /* i */
            iaload
            iload 2 /* end */
            if_icmpge 4
            aload 0 /* this */
            getfield android.text.SpanSet.spanEnds:[I
            iload 3 /* i */
            iaload
            iload 1 /* start */
            if_icmpgt 3
            goto 4
         3: .line 92
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 89
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 3 /* i */
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            if_icmplt 2
        end local 3 // int i
         6: .line 94
            iconst_0
            ireturn
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.text.SpanSet this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Landroid/text/SpanSet<TE;>;
            0    7     1  start  I
            0    7     2    end  I
            1    6     3      i  I
    MethodParameters:
       Name  Flags
      start  
      end    

  int getNextTransition(int, int);
    descriptor: (II)I
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // android.text.SpanSet this
        start local 1 // int start
        start local 2 // int limit
         0: .line 101
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: goto 7
         2: .line 102
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.text.SpanSet.spanStarts:[I
            iload 3 /* i */
            iaload
            istore 4 /* spanStart */
        start local 4 // int spanStart
         3: .line 103
            aload 0 /* this */
            getfield android.text.SpanSet.spanEnds:[I
            iload 3 /* i */
            iaload
            istore 5 /* spanEnd */
        start local 5 // int spanEnd
         4: .line 104
            iload 4 /* spanStart */
            iload 1 /* start */
            if_icmple 5
            iload 4 /* spanStart */
            iload 2 /* limit */
            if_icmpge 5
            iload 4 /* spanStart */
            istore 2 /* limit */
         5: .line 105
      StackMap locals: int int
      StackMap stack:
            iload 5 /* spanEnd */
            iload 1 /* start */
            if_icmple 6
            iload 5 /* spanEnd */
            iload 2 /* limit */
            if_icmpge 6
            iload 5 /* spanEnd */
            istore 2 /* limit */
        end local 5 // int spanEnd
        end local 4 // int spanStart
         6: .line 101
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            if_icmplt 2
        end local 3 // int i
         8: .line 107
            iload 2 /* limit */
            ireturn
        end local 2 // int limit
        end local 1 // int start
        end local 0 // android.text.SpanSet this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Landroid/text/SpanSet<TE;>;
            0    9     1      start  I
            0    9     2      limit  I
            1    8     3          i  I
            3    6     4  spanStart  I
            4    6     5    spanEnd  I
    MethodParameters:
       Name  Flags
      start  
      limit  

  public void recycle();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.text.SpanSet this
         0: .line 114
            aload 0 /* this */
            getfield android.text.SpanSet.spans:[Ljava/lang/Object;
            ifnull 2
         1: .line 115
            aload 0 /* this */
            getfield android.text.SpanSet.spans:[Ljava/lang/Object;
            iconst_0
            aload 0 /* this */
            getfield android.text.SpanSet.numberOfSpans:I
            aconst_null
            invokestatic java.util.Arrays.fill:([Ljava/lang/Object;IILjava/lang/Object;)V
         2: .line 117
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.text.SpanSet this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/text/SpanSet<TE;>;
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "SpanSet.java"