class com.sun.tools.javac.util.Position$LineMapImpl implements com.sun.tools.javac.util.Position$LineMap
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.util.Position$LineMapImpl
  super_class: java.lang.Object
{
  protected int[] startPosition;
    descriptor: [I
    flags: (0x0004) ACC_PROTECTED

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

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

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
         0: .line 151
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 195
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.util.Position$LineMapImpl.lastPosition:I
         2: .line 196
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.javac.util.Position$LineMapImpl.lastLine:I
         3: .line 151
            return
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/util/Position$LineMapImpl;

  protected void build(char[], int);
    descriptor: ([CI)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // char[] src
        start local 2 // int max
         0: .line 154
            iconst_0
            istore 3 /* c */
        start local 3 // int c
         1: .line 155
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: .line 156
            iload 2 /* max */
            newarray 10
            astore 5 /* linebuf */
        start local 5 // int[] linebuf
         3: .line 157
            goto 15
         4: .line 158
      StackMap locals: int int int[]
      StackMap stack:
            aload 5 /* linebuf */
            iload 3 /* c */
            iinc 3 /* c */ 1
            iload 4 /* i */
            iastore
         5: .line 160
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            iload 4 /* i */
            caload
            istore 6 /* ch */
        start local 6 // char ch
         6: .line 161
            iload 6 /* ch */
            bipush 13
            if_icmpeq 7
            iload 6 /* ch */
            bipush 10
            if_icmpne 11
         7: .line 162
      StackMap locals: int
      StackMap stack:
            iload 6 /* ch */
            bipush 13
            if_icmpne 9
            iload 4 /* i */
            iconst_1
            iadd
            iload 2 /* max */
            if_icmpge 9
            aload 1 /* src */
            iload 4 /* i */
            iconst_1
            iadd
            caload
            bipush 10
            if_icmpne 9
         8: .line 163
            iinc 4 /* i */ 2
            goto 15
         9: .line 165
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
        10: .line 166
            goto 15
        11: .line 168
      StackMap locals:
      StackMap stack:
            iload 6 /* ch */
            bipush 9
            if_icmpne 13
        12: .line 169
            aload 0 /* this */
            iload 4 /* i */
            invokevirtual com.sun.tools.javac.util.Position$LineMapImpl.setTabPosition:(I)V
        end local 6 // char ch
        13: .line 170
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
            iload 4 /* i */
            iload 2 /* max */
        14: .line 159
            if_icmplt 5
        15: .line 157
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            iload 2 /* max */
            if_icmplt 4
        16: .line 172
            aload 0 /* this */
            iload 3 /* c */
            newarray 10
            putfield com.sun.tools.javac.util.Position$LineMapImpl.startPosition:[I
        17: .line 173
            aload 5 /* linebuf */
            iconst_0
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.startPosition:[I
            iconst_0
            iload 3 /* c */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        18: .line 174
            return
        end local 5 // int[] linebuf
        end local 4 // int i
        end local 3 // int c
        end local 2 // int max
        end local 1 // char[] src
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   19     0     this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0   19     1      src  [C
            0   19     2      max  I
            1   19     3        c  I
            2   19     4        i  I
            3   19     5  linebuf  [I
            6   13     6       ch  C
    MethodParameters:
      Name  Flags
      src   
      max   

  public int getStartPosition(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // int line
         0: .line 177
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.startPosition:[I
            iload 1 /* line */
            iconst_1
            isub
            iaload
            ireturn
        end local 1 // int line
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0    1     1  line  I
    MethodParameters:
      Name  Flags
      line  

  public long getStartPosition(long);
    descriptor: (J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // long line
         0: .line 182
            aload 0 /* this */
            lload 1 /* line */
            invokestatic com.sun.tools.javac.util.Position$LineMapImpl.longToInt:(J)I
            invokevirtual com.sun.tools.javac.util.Position$LineMapImpl.getStartPosition:(I)I
            i2l
            lreturn
        end local 1 // long line
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0    1     1  line  J
    MethodParameters:
      Name  Flags
      line  

  public int getPosition(int, int);
    descriptor: (II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // int line
        start local 2 // int column
         0: .line 186
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.startPosition:[I
            iload 1 /* line */
            iconst_1
            isub
            iaload
            iload 2 /* column */
            iadd
            iconst_1
            isub
            ireturn
        end local 2 // int column
        end local 1 // int line
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0    1     1    line  I
            0    1     2  column  I
    MethodParameters:
        Name  Flags
      line    
      column  

  public long getPosition(long, long);
    descriptor: (JJ)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // long line
        start local 3 // long column
         0: .line 191
            aload 0 /* this */
            lload 1 /* line */
            invokestatic com.sun.tools.javac.util.Position$LineMapImpl.longToInt:(J)I
            lload 3 /* column */
            invokestatic com.sun.tools.javac.util.Position$LineMapImpl.longToInt:(J)I
            invokevirtual com.sun.tools.javac.util.Position$LineMapImpl.getPosition:(II)I
            i2l
            lreturn
        end local 3 // long column
        end local 1 // long line
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0    1     1    line  J
            0    1     3  column  J
    MethodParameters:
        Name  Flags
      line    
      column  

  public int getLineNumber(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // int pos
         0: .line 199
            iload 1 /* pos */
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.lastPosition:I
            if_icmpne 2
         1: .line 200
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.lastLine:I
            ireturn
         2: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* pos */
            putfield com.sun.tools.javac.util.Position$LineMapImpl.lastPosition:I
         3: .line 204
            iconst_0
            istore 2 /* low */
        start local 2 // int low
         4: .line 205
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.startPosition:[I
            arraylength
            iconst_1
            isub
            istore 3 /* high */
        start local 3 // int high
         5: .line 206
            goto 14
         6: .line 207
      StackMap locals: int int
      StackMap stack:
            iload 2 /* low */
            iload 3 /* high */
            iadd
            iconst_1
            ishr
            istore 4 /* mid */
        start local 4 // int mid
         7: .line 208
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.startPosition:[I
            iload 4 /* mid */
            iaload
            istore 5 /* midVal */
        start local 5 // int midVal
         8: .line 210
            iload 5 /* midVal */
            iload 1 /* pos */
            if_icmpge 10
         9: .line 211
            iload 4 /* mid */
            iconst_1
            iadd
            istore 2 /* low */
            goto 14
        10: .line 212
      StackMap locals: int int
      StackMap stack:
            iload 5 /* midVal */
            iload 1 /* pos */
            if_icmple 12
        11: .line 213
            iload 4 /* mid */
            iconst_1
            isub
            istore 3 /* high */
            goto 14
        12: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* mid */
            iconst_1
            iadd
            putfield com.sun.tools.javac.util.Position$LineMapImpl.lastLine:I
        13: .line 216
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.lastLine:I
            ireturn
        end local 5 // int midVal
        end local 4 // int mid
        14: .line 206
      StackMap locals:
      StackMap stack:
            iload 2 /* low */
            iload 3 /* high */
            if_icmple 6
        15: .line 219
            aload 0 /* this */
            iload 2 /* low */
            putfield com.sun.tools.javac.util.Position$LineMapImpl.lastLine:I
        16: .line 220
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.lastLine:I
            ireturn
        end local 3 // int high
        end local 2 // int low
        end local 1 // int pos
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0   17     1     pos  I
            4   17     2     low  I
            5   17     3    high  I
            7   14     4     mid  I
            8   14     5  midVal  I
    MethodParameters:
      Name  Flags
      pos   

  public long getLineNumber(long);
    descriptor: (J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // long pos
         0: .line 225
            aload 0 /* this */
            lload 1 /* pos */
            invokestatic com.sun.tools.javac.util.Position$LineMapImpl.longToInt:(J)I
            invokevirtual com.sun.tools.javac.util.Position$LineMapImpl.getLineNumber:(I)I
            i2l
            lreturn
        end local 1 // long pos
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0    1     1   pos  J
    MethodParameters:
      Name  Flags
      pos   

  public int getColumnNumber(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // int pos
         0: .line 229
            iload 1 /* pos */
            aload 0 /* this */
            getfield com.sun.tools.javac.util.Position$LineMapImpl.startPosition:[I
            aload 0 /* this */
            iload 1 /* pos */
            invokevirtual com.sun.tools.javac.util.Position$LineMapImpl.getLineNumber:(I)I
            iconst_1
            isub
            iaload
            isub
            iconst_1
            iadd
            ireturn
        end local 1 // int pos
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0    1     1   pos  I
    MethodParameters:
      Name  Flags
      pos   

  public long getColumnNumber(long);
    descriptor: (J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // long pos
         0: .line 234
            aload 0 /* this */
            lload 1 /* pos */
            invokestatic com.sun.tools.javac.util.Position$LineMapImpl.longToInt:(J)I
            invokevirtual com.sun.tools.javac.util.Position$LineMapImpl.getColumnNumber:(I)I
            i2l
            lreturn
        end local 1 // long pos
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0    1     1   pos  J
    MethodParameters:
      Name  Flags
      pos   

  private static int longToInt(long);
    descriptor: (J)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // long longValue
         0: .line 238
            lload 0 /* longValue */
            l2i
            istore 2 /* intValue */
        start local 2 // int intValue
         1: .line 239
            iload 2 /* intValue */
            i2l
            lload 0 /* longValue */
            lcmp
            ifeq 3
         2: .line 240
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         3: .line 241
      StackMap locals: int
      StackMap stack:
            iload 2 /* intValue */
            ireturn
        end local 2 // int intValue
        end local 0 // long longValue
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  longValue  J
            1    4     2   intValue  I
    MethodParameters:
           Name  Flags
      longValue  

  protected void setTabPosition(int);
    descriptor: (I)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
        start local 1 // int offset
         0: .line 244
            return
        end local 1 // int offset
        end local 0 // com.sun.tools.javac.util.Position$LineMapImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/tools/javac/util/Position$LineMapImpl;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  
}
SourceFile: "Position.java"
NestHost: com.sun.tools.javac.util.Position
InnerClasses:
  public abstract LineMap = com.sun.tools.javac.util.Position$LineMap of com.sun.tools.javac.util.Position
  LineMapImpl = com.sun.tools.javac.util.Position$LineMapImpl of com.sun.tools.javac.util.Position