public class org.aspectj.weaver.SourceContextImpl implements org.aspectj.weaver.ISourceContext
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.weaver.SourceContextImpl
  super_class: java.lang.Object
{
  private int[] lineBreaks;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

  java.lang.String sourceFilename;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  public static final org.aspectj.weaver.ISourceContext UNKNOWN_SOURCE_CONTEXT;
    descriptor: Lorg/aspectj/weaver/ISourceContext;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 82
            new org.aspectj.weaver.SourceContextImpl$1
            dup
            invokespecial org.aspectj.weaver.SourceContextImpl$1.<init>:()V
            putstatic org.aspectj.weaver.SourceContextImpl.UNKNOWN_SOURCE_CONTEXT:Lorg/aspectj/weaver/ISourceContext;
         1: .line 97
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.aspectj.weaver.AbstractReferenceTypeDelegate);
    descriptor: (Lorg/aspectj/weaver/AbstractReferenceTypeDelegate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.SourceContextImpl this
        start local 1 // org.aspectj.weaver.AbstractReferenceTypeDelegate delegate
         0: .line 26
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 27
            aload 0 /* this */
            aload 1 /* delegate */
            invokevirtual org.aspectj.weaver.AbstractReferenceTypeDelegate.getSourcefilename:()Ljava/lang/String;
            putfield org.aspectj.weaver.SourceContextImpl.sourceFilename:Ljava/lang/String;
         2: .line 28
            return
        end local 1 // org.aspectj.weaver.AbstractReferenceTypeDelegate delegate
        end local 0 // org.aspectj.weaver.SourceContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/aspectj/weaver/SourceContextImpl;
            0    3     1  delegate  Lorg/aspectj/weaver/AbstractReferenceTypeDelegate;
    MethodParameters:
          Name  Flags
      delegate  

  public void configureFromAttribute(java.lang.String, int[]);
    descriptor: (Ljava/lang/String;[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.aspectj.weaver.SourceContextImpl this
        start local 1 // java.lang.String name
        start local 2 // int[] linebreaks
         0: .line 31
            aload 0 /* this */
            aload 1 /* name */
            putfield org.aspectj.weaver.SourceContextImpl.sourceFilename:Ljava/lang/String;
         1: .line 32
            aload 0 /* this */
            aload 2 /* linebreaks */
            putfield org.aspectj.weaver.SourceContextImpl.lineBreaks:[I
         2: .line 33
            return
        end local 2 // int[] linebreaks
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.weaver.SourceContextImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/aspectj/weaver/SourceContextImpl;
            0    3     1        name  Ljava/lang/String;
            0    3     2  linebreaks  [I
    MethodParameters:
            Name  Flags
      name        
      linebreaks  

  public void setSourceFileName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.SourceContextImpl this
        start local 1 // java.lang.String name
         0: .line 36
            aload 0 /* this */
            aload 1 /* name */
            putfield org.aspectj.weaver.SourceContextImpl.sourceFilename:Ljava/lang/String;
         1: .line 37
            return
        end local 1 // java.lang.String name
        end local 0 // org.aspectj.weaver.SourceContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/weaver/SourceContextImpl;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private java.io.File getSourceFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.SourceContextImpl this
         0: .line 40
            new java.io.File
            dup
            aload 0 /* this */
            getfield org.aspectj.weaver.SourceContextImpl.sourceFilename:Ljava/lang/String;
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            areturn
        end local 0 // org.aspectj.weaver.SourceContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/SourceContextImpl;

  public void tidy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.SourceContextImpl this
         0: .line 44
            return
        end local 0 // org.aspectj.weaver.SourceContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/SourceContextImpl;

  public int getOffset();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.SourceContextImpl this
         0: .line 47
            iconst_0
            ireturn
        end local 0 // org.aspectj.weaver.SourceContextImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/SourceContextImpl;

  public org.aspectj.bridge.ISourceLocation makeSourceLocation(org.aspectj.weaver.IHasPosition);
    descriptor: (Lorg/aspectj/weaver/IHasPosition;)Lorg/aspectj/bridge/ISourceLocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.SourceContextImpl this
        start local 1 // org.aspectj.weaver.IHasPosition position
         0: .line 51
            aload 0 /* this */
            getfield org.aspectj.weaver.SourceContextImpl.lineBreaks:[I
            ifnull 5
         1: .line 52
            aload 0 /* this */
            getfield org.aspectj.weaver.SourceContextImpl.lineBreaks:[I
            aload 1 /* position */
            invokeinterface org.aspectj.weaver.IHasPosition.getStart:()I
            invokestatic java.util.Arrays.binarySearch:([II)I
            istore 2 /* line */
        start local 2 // int line
         2: .line 53
            iload 2 /* line */
            ifge 4
         3: .line 54
            iload 2 /* line */
            ineg
            istore 2 /* line */
         4: .line 56
      StackMap locals: int
      StackMap stack:
            new org.aspectj.bridge.SourceLocation
            dup
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.SourceContextImpl.getSourceFile:()Ljava/io/File;
            iload 2 /* line */
            invokespecial org.aspectj.bridge.SourceLocation.<init>:(Ljava/io/File;I)V
            areturn
        end local 2 // int line
         5: .line 58
      StackMap locals:
      StackMap stack:
            new org.aspectj.bridge.SourceLocation
            dup
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.SourceContextImpl.getSourceFile:()Ljava/io/File;
            iconst_0
            invokespecial org.aspectj.bridge.SourceLocation.<init>:(Ljava/io/File;I)V
            areturn
        end local 1 // org.aspectj.weaver.IHasPosition position
        end local 0 // org.aspectj.weaver.SourceContextImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/aspectj/weaver/SourceContextImpl;
            0    6     1  position  Lorg/aspectj/weaver/IHasPosition;
            2    5     2      line  I
    MethodParameters:
          Name  Flags
      position  

  public org.aspectj.bridge.ISourceLocation makeSourceLocation(int, int);
    descriptor: (II)Lorg/aspectj/bridge/ISourceLocation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.aspectj.weaver.SourceContextImpl this
        start local 1 // int line
        start local 2 // int offset
         0: .line 63
            iload 1 /* line */
            ifge 2
         1: .line 64
            iconst_0
            istore 1 /* line */
         2: .line 66
      StackMap locals:
      StackMap stack:
            new org.aspectj.bridge.SourceLocation
            dup
            aload 0 /* this */
            invokevirtual org.aspectj.weaver.SourceContextImpl.getSourceFile:()Ljava/io/File;
            iload 1 /* line */
            invokespecial org.aspectj.bridge.SourceLocation.<init>:(Ljava/io/File;I)V
            astore 3 /* sl */
        start local 3 // org.aspectj.bridge.SourceLocation sl
         3: .line 67
            iload 2 /* offset */
            ifle 6
         4: .line 68
            aload 3 /* sl */
            iload 2 /* offset */
            invokevirtual org.aspectj.bridge.SourceLocation.setOffset:(I)V
         5: .line 69
            goto 11
         6: .line 70
      StackMap locals: org.aspectj.bridge.SourceLocation
      StackMap stack:
            aload 0 /* this */
            getfield org.aspectj.weaver.SourceContextImpl.lineBreaks:[I
            ifnull 11
         7: .line 71
            iconst_0
            istore 4 /* likelyOffset */
        start local 4 // int likelyOffset
         8: .line 72
            iload 1 /* line */
            ifle 10
            iload 1 /* line */
            aload 0 /* this */
            getfield org.aspectj.weaver.SourceContextImpl.lineBreaks:[I
            arraylength
            if_icmpge 10
         9: .line 74
            aload 0 /* this */
            getfield org.aspectj.weaver.SourceContextImpl.lineBreaks:[I
            iload 1 /* line */
            iconst_1
            isub
            iaload
            iconst_1
            iadd
            istore 4 /* likelyOffset */
        10: .line 76
      StackMap locals: int
      StackMap stack:
            aload 3 /* sl */
            iload 4 /* likelyOffset */
            invokevirtual org.aspectj.bridge.SourceLocation.setOffset:(I)V
        end local 4 // int likelyOffset
        11: .line 79
      StackMap locals:
      StackMap stack:
            aload 3 /* sl */
            areturn
        end local 3 // org.aspectj.bridge.SourceLocation sl
        end local 2 // int offset
        end local 1 // int line
        end local 0 // org.aspectj.weaver.SourceContextImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   12     0          this  Lorg/aspectj/weaver/SourceContextImpl;
            0   12     1          line  I
            0   12     2        offset  I
            3   12     3            sl  Lorg/aspectj/bridge/SourceLocation;
            8   11     4  likelyOffset  I
    MethodParameters:
        Name  Flags
      line    
      offset  
}
SourceFile: "SourceContextImpl.java"
NestMembers:
  org.aspectj.weaver.SourceContextImpl$1
InnerClasses:
  org.aspectj.weaver.SourceContextImpl$1