]> source.dussan.org Git - aspectj.git/commitdiff
fix for
authorjhugunin <jhugunin>
Thu, 1 May 2003 02:02:56 +0000 (02:02 +0000)
committerjhugunin <jhugunin>
Thu, 1 May 2003 02:02:56 +0000 (02:02 +0000)
Bugzilla Bug 37020
   wrong line for method execution join point
(but points to first executable line rather than method declaration)

and

Bugzilla Bug 37021
   source path wrong in declare warning on binary files

weaver/src/org/aspectj/weaver/bcel/BcelSourceContext.java
weaver/src/org/aspectj/weaver/bcel/Utility.java

index 72a7939e14d305b69c33d95f77e720639c81164c..f8c4c3c9a73b689ca983be0d0174da89b654b14f 100644 (file)
@@ -29,6 +29,12 @@ public class BcelSourceContext implements ISourceContext {
        
        public BcelSourceContext(BcelObjectType inObject) {
                this.inObject = inObject;
+               sourceFileName = inObject.getJavaClass().getSourceFileName();
+               
+               String pname = inObject.getResolvedTypeX().getPackageName();
+               if (pname != null) {
+                       sourceFileName = pname.replace('.', '/') + '/' + sourceFileName;
+               }
        }
        
        private File getSourceFile() {
index 4d54a786e2f6a1413708445cc8242acc2c552b05..402c85b2ffbfa146ced41e64a1eff05397ba76d1 100644 (file)
@@ -421,6 +421,8 @@ public class Utility {
 
        /** returns -1 if no source line attribute */
        public static int getSourceLine(InstructionHandle ih) {
+               if (ih == null) return -1;
+               
         InstructionTargeter[] ts = ih.getTargeters();
         if (ts != null) { 
             for (int j = ts.length - 1; j >= 0; j--) {
@@ -430,7 +432,7 @@ public class Utility {
                 }
             }
         }
-        return -1;
+        return getSourceLine(ih.getNext());
        }
        
        // assumes that there is no already extant source line tag.  Otherwise we'll have to be better.