]> source.dussan.org Git - aspectj.git/commitdiff
tests and "fix" for pr148007 - workaround JRockit "goto" bug by generating code close...
authoracolyer <acolyer>
Thu, 22 Jun 2006 04:49:26 +0000 (04:49 +0000)
committeracolyer <acolyer>
Thu, 22 Jun 2006 04:49:26 +0000 (04:49 +0000)
34 files changed:
tests/bugs152/pr148007/purejava/test/BooleanUnitTest.java [new file with mode: 0644]
tests/bugs152/pr148007/purejava/test/LoggingAspect.java [new file with mode: 0644]
tests/bugs152/pr148007/test/BooleanUnitTest.java [new file with mode: 0644]
tests/bugs152/pr148007/test/LoggingAspect.aj [new file with mode: 0644]
tests/bugs152/pr148007/test/TestServlet.java [new file with mode: 0644]
tests/features152/synchronization/transformed/expected/C.m.txt
tests/features152/synchronization/transformed/expected/C.m3.txt
tests/features152/synchronization/transformed/expected/C.m33.txt
tests/src/org/aspectj/systemtest/ajc152/Ajc152Tests.java
tests/src/org/aspectj/systemtest/ajc152/ajc152.xml
weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
weaver/src/org/aspectj/weaver/bcel/Utility.java
weaver/testdata/AfterFancyHelloWorld.txt
weaver/testdata/AfterHelloWorld.txt
weaver/testdata/AfterReturningCheckcastParamFancyHelloWorld.txt
weaver/testdata/AfterReturningCheckcastParamHelloWorld.txt
weaver/testdata/AfterReturningConversionParam.txt
weaver/testdata/AfterReturningFancyHelloWorld.txt
weaver/testdata/AfterReturningHelloWorld.txt
weaver/testdata/AfterReturningParamFancyHelloWorld.txt
weaver/testdata/AfterReturningParamHelloWorld.txt
weaver/testdata/ArgsAfterReturningFancyHelloWorld.txt
weaver/testdata/ArgsAfterReturningHelloWorld.txt
weaver/testdata/ArgsAfterThrowingHelloWorld.txt
weaver/testdata/ArgsBeforeAfterHelloWorld.txt
weaver/testdata/CflowNonStaticBeforeFancyHelloWorld.txt
weaver/testdata/CflowNonStaticBeforeHelloWorld.txt
weaver/testdata/ExtractedFancyHelloWorld.txt
weaver/testdata/ExtractedHelloWorld.txt
weaver/testdata/NonStaticBeforeFancyHelloWorld.txt
weaver/testdata/NonStaticBeforeHelloWorld.txt
weaver/testdata/PerThisNonStaticBeforeFancyHelloWorld.txt
weaver/testdata/PerThisNonStaticBeforeHelloWorld.txt
weaver/testdata/TraceJarHello.txt

diff --git a/tests/bugs152/pr148007/purejava/test/BooleanUnitTest.java b/tests/bugs152/pr148007/purejava/test/BooleanUnitTest.java
new file mode 100644 (file)
index 0000000..0d4ee3e
--- /dev/null
@@ -0,0 +1,71 @@
+package test;
+
+/**
+ * Understands . . .
+ *
+ * @author Randy Stearns
+ */
+public class BooleanUnitTest  {
+
+       public static void main(String[] args) {
+               new BooleanUnitTest().test1();
+       }
+       
+    public void test1() {
+        assertEquals("1a WRONG!", false, invert1a());
+        assertEquals("1b WRONG!", true, invert1b());
+        assertEquals("2 WRONG!", false, invert2());
+        assertEquals("3 WRONG!", true, invert3());
+        assertEquals("4 WRONG!", true, invert4());
+        assertEquals("5 WRONG!", false, invert5());
+    }
+    
+    private void assertEquals(String msg, boolean a, boolean b) {
+       if (a != b) {
+               throw new RuntimeException(msg);
+       }
+    }
+
+    private boolean invert1a() {
+        return ! true;
+    }
+
+    private boolean invert1b() {
+        return ! false;
+    }
+
+    private boolean invert2() {
+       boolean ret = false;
+       try {
+               ret = ! isTrue();
+       }
+       catch (RuntimeException t) {
+                       LoggingAspect.aspectOf().ajc$afterReturning$test_LoggingAspect$1$188fbb36();
+                       throw t;
+       }
+               LoggingAspect.aspectOf().ajc$afterReturning$test_LoggingAspect$1$188fbb36();
+               return ret;
+    }
+
+    private boolean invert3() {
+        return ! isFalse();
+    }
+
+    private boolean invert4() {
+        boolean temp = isFalse();
+        return ! temp;
+    }
+
+    private boolean invert5() {
+        boolean temp = isTrue();
+        return ! temp;
+    }
+
+    private boolean isTrue() {
+        return true;
+    }
+
+    private boolean isFalse() {
+        return false;
+    }
+}
diff --git a/tests/bugs152/pr148007/purejava/test/LoggingAspect.java b/tests/bugs152/pr148007/purejava/test/LoggingAspect.java
new file mode 100644 (file)
index 0000000..4b265eb
--- /dev/null
@@ -0,0 +1,32 @@
+package test;
+
+import org.aspectj.lang.NoAspectBoundException;
+
+public class LoggingAspect {
+       
+       private static LoggingAspect ajc$perSingletonInstance;
+       private static Throwable ajc$initFailureCause;
+       
+       static {
+               try {
+                       ajc$postClinit();
+               }
+               catch (Throwable t) {
+                       ajc$initFailureCause = t;
+               }
+       }
+       
+       public static LoggingAspect aspectOf() {
+               if (ajc$perSingletonInstance == null) {
+                       throw new NoAspectBoundException("test_LoggingAspect",ajc$initFailureCause);
+               }
+               return ajc$perSingletonInstance;
+       }
+       
+    public void ajc$afterReturning$test_LoggingAspect$1$188fbb36()  {
+    }
+    
+    private static void ajc$postClinit() {
+       ajc$perSingletonInstance = new LoggingAspect();
+    }
+}
diff --git a/tests/bugs152/pr148007/test/BooleanUnitTest.java b/tests/bugs152/pr148007/test/BooleanUnitTest.java
new file mode 100644 (file)
index 0000000..a3b64e7
--- /dev/null
@@ -0,0 +1,62 @@
+package test;
+
+/**
+ * Understands . . .
+ *
+ * @author Randy Stearns
+ */
+public class BooleanUnitTest  {
+
+       public static void main(String[] args) {
+               new BooleanUnitTest().test1();
+       }
+       
+    public void test1() {
+        assertEquals("1a WRONG!", false, invert1a());
+        assertEquals("1b WRONG!", true, invert1b());
+        assertEquals("2 WRONG!", false, invert2());
+        assertEquals("3 WRONG!", true, invert3());
+        assertEquals("4 WRONG!", true, invert4());
+        assertEquals("5 WRONG!", false, invert5());
+    }
+    
+    private void assertEquals(String msg, boolean a, boolean b) {
+       if (a != b) {
+               throw new RuntimeException(msg);
+       }
+    }
+
+    private boolean invert1a() {
+        return ! true;
+    }
+
+    private boolean invert1b() {
+        return ! false;
+    }
+
+    private boolean invert2() {
+        return ! isTrue();
+    }
+
+    private boolean invert3() {
+        return ! isFalse();
+    }
+
+    private boolean invert4() {
+        boolean temp = isFalse();
+        return ! temp;
+    }
+
+    private boolean invert5() {
+        boolean temp = isTrue();
+        return ! temp;
+    }
+
+    private boolean isTrue() {
+        return true;
+    }
+
+    private boolean isFalse() {
+        return false;
+    }
+}
diff --git a/tests/bugs152/pr148007/test/LoggingAspect.aj b/tests/bugs152/pr148007/test/LoggingAspect.aj
new file mode 100644 (file)
index 0000000..ad52be8
--- /dev/null
@@ -0,0 +1,17 @@
+package test;
+
+public aspect LoggingAspect {
+       
+       pointcut logPointcut() :
+               execution (* *(..))
+        && within (test..*)
+               && !within(LoggingAspect);
+       
+       before() : logPointcut() {
+                       System.out.println("entering");
+       }
+
+    after() : logPointcut() {
+            System.out.println("exiting");
+    }
+}
diff --git a/tests/bugs152/pr148007/test/TestServlet.java b/tests/bugs152/pr148007/test/TestServlet.java
new file mode 100644 (file)
index 0000000..b7fc8b4
--- /dev/null
@@ -0,0 +1,69 @@
+package test;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * Hello world!
+ */
+public class TestServlet extends HttpServlet {
+
+    protected void service(HttpServletRequest request, HttpServletResponse response)
+            throws ServletException, IOException {
+        booleanTest(response);
+    }
+
+    private void booleanTest(HttpServletResponse response) throws ServletException {
+        PrintWriter out = null;
+        try {
+            out = response.getWriter();
+        } catch (IOException ioe) {
+            throw new ServletException("Could not get writer.");
+        }
+
+        out.println("Test 1a. Should be false. Was: " + invert1a());
+        out.println("Test 1b. Should be true. Was: " + invert1b());
+        out.println("Test 2. Should be false. Was: " + invert2());
+        out.println("Test 3. Should be true. Was: " + invert3());
+        out.println("Test 4. Should be true. Was: " + invert4());
+        out.println("Test 5. Should be false. Was: " + invert5());
+    }
+
+    private boolean invert1a() {
+        return ! true;
+    }
+
+    private boolean invert1b() {
+        return ! false;
+    }
+
+    private Boolean invert2() {
+        return new Boolean(! isTrue());
+    }
+
+    private Boolean invert3() {
+        return new Boolean(! isFalse());
+    }
+
+    private boolean invert4() {
+        boolean temp = isFalse();
+        return ! temp;
+    }
+
+    private Boolean invert5() {
+        boolean temp = isTrue();
+        return new Boolean(! temp);
+    }
+
+    private boolean isTrue() {
+        return true;
+    }
+
+    private boolean isFalse() {
+        return false;
+    }
+}
index 7f5a34cdc08a15d68b98e4ecdee9803519fdfd52..70270b46364fb8423842ad23c9b758e496a4e352 100644 (file)
@@ -20,4 +20,5 @@
                 L0: INVOKESTATIC Four.aspectOf ()LFour;
                     INVOKEVIRTUAL Four.ajc$afterReturning$Four$1$c2776aed ()V
                     RETURN
+                    RETURN
   end public void m()
index f1157285e0dec7b59b443347fe7659db5a3b9def..f6406ff45c943feb056a430cbb88e6e1bd7f8846 100644 (file)
@@ -20,4 +20,5 @@
                 L0: INVOKESTATIC Three.aspectOf ()LThree;
                     INVOKEVIRTUAL Three.ajc$afterReturning$Three$1$3f09355c ()V
                     RETURN
+                    RETURN
   end public void m3()
index 86b78ffb3d60177afaa040b19ac6f69f9f2b939e..c96a8e2be7950d4f5fd37aaa2d230f530a1fd28d 100644 (file)
@@ -17,8 +17,9 @@
     |               MONITOREXIT
     finally -> E1
                     ATHROW
-                L0: GOTO L1   (line 33)
-                L1: INVOKESTATIC Three.aspectOf ()LThree;
+                L0: NOP   (line 33)
+                    INVOKESTATIC Three.aspectOf ()LThree;
                     INVOKEVIRTUAL Three.ajc$afterReturning$Three$3$b48e4ae1 ()V
                     RETURN
+                    RETURN
   end public void m33()
index 22c02cd03dcafea71cecb125d70d6b39c571f8af..79a3dc233c1245cc085adc68212d02c4954b62e3 100644 (file)
@@ -99,6 +99,8 @@ public class Ajc152Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
   public void testSuperCallsInAtAspectJAdvice_pr139749() { runTest("Super calls in @AspectJ advice");}
   public void testNoClassCastExceptionWithPerThis_pr138286() { runTest("No ClassCastException with perThis");}
   public void testGenericAspectHierarchyWithBounds_pr147845() { runTest("Generic abstract aspect hierarchy with bounds"); }
+  public void testJRockitBooleanReturn_pr148007() { runTest("jrockit boolean fun");}
+  public void testJRockitBooleanReturn2_pr148007() { runTest("jrockit boolean fun (no aspects)");}
   
   public void testDeclareAtMethodRelationship_pr143924() {
          //AsmManager.setReporting("c:/debug.txt",true,true,true,true);
index 370d24ad9b4bdaa290023babe8cbd89c8f6ee55b..da553bad92072beccdefad61862aea1e24e1a957 100644 (file)
         </stderr>
       </run>
     </ajc-test>
-    
+       
+       <ajc-test dir="bugs152/pr148007" title="jrockit boolean fun">
+               <compile files="test/BooleanUnitTest.java, test/LoggingAspect.aj"/>
+               <run class="test.BooleanUnitTest"/>
+    </ajc-test>
+
+       <ajc-test dir="bugs152/pr148007/purejava" title="jrockit boolean fun (no aspects)">
+               <compile files="test/BooleanUnitTest.java, test/LoggingAspect.java" options="-inlineJSR"/>
+               <run class="test.BooleanUnitTest"/>
+    </ajc-test>    
 </suite>
\ No newline at end of file
index db76505607401ed2913bf2d833fb5d7d34ee33fa..30d6f6040ecb1352058d17e9673b2e58e1bd81c9 100644 (file)
@@ -1741,8 +1741,17 @@ public class BcelShadow extends Shadow {
         }
         InstructionList retList;
         InstructionHandle afterAdvice;
+        BcelVar returnValueVar = null;
+        
         if (ret != null) {
-            retList = new InstructionList(ret);
+               if (this.getReturnType() != ResolvedType.VOID) {
+                       returnValueVar = genTempVar(this.getReturnType());
+                   retList = new InstructionList();
+                   returnValueVar.appendLoad(retList,getFactory());
+               } else {
+                       retList = new InstructionList(ret);
+               }
+            retList.append(ret);
             afterAdvice = retList.getStart();
         } else /* if (munger.hasDynamicTests()) */ {
                /*
@@ -1765,6 +1774,7 @@ public class BcelShadow extends Shadow {
         }
 
         InstructionList advice = new InstructionList();
+        
         BcelVar tempVar = null;
         if (munger.hasExtraParameter()) {
             UnresolvedType tempVarType = getReturnType();
@@ -1779,17 +1789,32 @@ public class BcelShadow extends Shadow {
             }
         }
         advice.append(munger.getAdviceInstructions(this, tempVar, afterAdvice));            
-
+        
         if (ret != null) {
             InstructionHandle gotoTarget = advice.getStart();           
                        for (Iterator i = returns.iterator(); i.hasNext();) {
                                InstructionHandle ih = (InstructionHandle) i.next();
-                               Utility.replaceInstruction(
-                                       ih,
-                                       InstructionFactory.createBranchInstruction(
-                                               Constants.GOTO,
-                                               gotoTarget),
-                                       enclosingMethod);
+                               // pr148007, work around JRockit bug
+                               // replace ret with store into returnValueVar, followed by goto if not
+                               // at the end of the instruction list...
+                               InstructionList newInstructions = new InstructionList();
+                               if (returnValueVar != null) {
+                           if (munger.hasExtraParameter()) {
+                               // we have to dup the return val before consuming it...
+                               newInstructions.append(InstructionFactory.createDup(this.getReturnType().getSize()));
+                           }
+                                       // store the return value into this var
+                                       returnValueVar.appendStore(newInstructions,getFactory());
+                               }
+                               if (!isLastInstructionInRange(ih,range)) {
+                                       newInstructions.append(InstructionFactory.createBranchInstruction(
+                                                       Constants.GOTO,
+                                                       gotoTarget));
+                               }
+                               if (newInstructions.isEmpty()) {
+                                       newInstructions.append(InstructionConstants.NOP);
+                               }
+                               Utility.replaceInstruction(ih,newInstructions,enclosingMethod);
                        }
             range.append(advice);
             range.append(retList);
@@ -1799,6 +1824,10 @@ public class BcelShadow extends Shadow {
         }
     }
     
+    private boolean isLastInstructionInRange(InstructionHandle ih, ShadowRange aRange) {
+       return ih.getNext() == aRange.getEnd();
+    }
+    
     public void weaveAfterThrowing(BcelAdvice munger, UnresolvedType catchType) {
        // a good optimization would be not to generate anything here
        // if the shadow is GUARANTEED empty (i.e., there's NOTHING, not even
index 6587a3e143e69d78017b990f42b09e83723ce0e1..1f99c526fb2b31f670ffcd48632ea6333553bb2d 100644 (file)
@@ -562,6 +562,15 @@ public class Utility {
                deleteInstruction(ih, fresh, enclosingMethod);
     }
     
+    public static void replaceInstruction(
+       InstructionHandle ih,
+       InstructionList replacementInstructions,
+       LazyMethodGen enclosingMethod) {
+       InstructionList il = enclosingMethod.getBody();
+       InstructionHandle fresh = il.append(ih, replacementInstructions);
+       deleteInstruction(ih,fresh,enclosingMethod);
+    }
+       
        /** delete an instruction handle and retarget all targeters of the deleted instruction
         * to the next instruction.  Obviously, this should not be used to delete
         * a control transfer instruction unless you know what you're doing.
index 04fe22f18a708bcc6f54a75fd00d519cba693e42..bb35ec38ce42a7477b0c8fb792abd1be4c6d69e0 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     | catch java.lang.Throwable -> E0
@@ -12,6 +12,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ATHROW
     |           L0: INVOKESTATIC Aspect.ajc_after_constructor_execution ()V
     |               RETURN
+    |               RETURN
     constructor-execution(void FancyHelloWorld.<init>())
   end public void <init>()
 
@@ -34,7 +35,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             ASTORE_1
     | | finally -> E5
     | | | catch java.lang.Exception -> E4
-    | | | |         ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | | |         ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | | |         LDC "bye"
     | | | | method-call(void java.io.PrintStream.println(java.lang.String))
     | | | | | catch java.lang.Throwable -> E2
@@ -52,8 +53,8 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | | |         GOTO L3
     | | | catch java.lang.Exception -> E4
     | | |       E4: ASTORE_2   (line 12)
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 13)
-    | | |           ALOAD_2     // java.lang.Exception e
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | | |           ALOAD_2     // Ljava/lang/Exception; e
     | | | method-call(void java.io.PrintStream.println(java.lang.Object))
     | | | | catch java.lang.Throwable -> E1
     | | | | |       INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
@@ -76,7 +77,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |         L3: JSR L4
     | |             GOTO L6
     | |         L4: ASTORE_3
-    | |             ALOAD_1     // java.io.PrintStream out   (line 15)
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     | |             LDC "finally"
     | | method-call(void java.io.PrintStream.println(java.lang.String))
     | | | catch java.lang.Throwable -> E0
@@ -100,6 +101,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ATHROW
     |           L7: INVOKESTATIC Aspect.ajc_after_method_execution ()V
     |               RETURN
+    |               RETURN
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
 
@@ -108,7 +110,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | catch java.lang.Throwable -> E4
     | |             ICONST_0   (line 20)
     | |             ISTORE_0
-    | |             ILOAD_0     // int x   (line 21)
+    | |             ILOAD_0     // I x   (line 21)
     | |             LDC "name"
     | | method-call(int java.lang.String.hashCode())
     | | | catch java.lang.Throwable -> E3
@@ -124,7 +126,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | |           NOP
     | | method-call(int java.lang.String.hashCode())
     | |             IADD
-    | |             ISTORE_0     // int x
+    | |             ISTORE_0     // I x
     | |             LDC "name"   (line 22)
     | |             ASTORE_2
     | | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
@@ -143,7 +145,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | |           INVOKESTATIC Aspect.ajc_after_constructor_call ()V
     | | |           NOP
     | | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             ILOAD_0     // int x
+    | |             ILOAD_0     // I x
     | | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | | | catch java.lang.Throwable -> E1
     | | | |         INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
@@ -170,6 +172,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | |           INVOKESTATIC Aspect.ajc_after_method_call ()V
     | | |           NOP
     | | method-call(java.lang.String java.lang.StringBuffer.toString())
+    | |             ASTORE 7
     | |             GOTO L4
     | catch java.lang.Throwable -> E4
     |           E4: ASTORE 6
@@ -177,6 +180,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ALOAD 6
     |               ATHROW
     |           L4: INVOKESTATIC Aspect.ajc_after_method_execution ()V
+    |               ALOAD 7
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
index 190674778e5e07a1a314e08c6d7c43108cb14c58..2521c5f3c27c1f0b8f880ead4a1571222dbdf329 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     | catch java.lang.Throwable -> E0
@@ -12,6 +12,7 @@ public class HelloWorld extends java.lang.Object:
     |               ATHROW
     |           L0: INVOKESTATIC Aspect.ajc_after_constructor_execution ()V
     |               RETURN
+    |               RETURN
     constructor-execution(void HelloWorld.<init>())
   end public void <init>()
 
@@ -53,6 +54,7 @@ public class HelloWorld extends java.lang.Object:
     |               ATHROW
     |           L2: INVOKESTATIC Aspect.ajc_after_method_execution ()V
     |               RETURN
+    |               RETURN
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
 
index f45b4e78e434759caded4ec9b3582bda126fcf7d..12389948c2e95add0f17f454d3c24ff884c7cc6b 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     |               RETURN
@@ -24,14 +24,14 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | |           LDC "bye"
     | | |           INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     | | |           GOTO L1
     | | catch java.lang.Exception -> E0
     | |         E0: ASTORE_2   (line 12)
-    | |             ALOAD_1     // java.io.PrintStream out   (line 13)
-    | |             ALOAD_2     // java.lang.Exception e
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | |             ALOAD_2     // Ljava/lang/Exception; e
     | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | finally -> E1
     |               GOTO L1
@@ -42,7 +42,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L1: JSR L2
     |               GOTO L3
     |           L2: ASTORE_3
-    |               ALOAD_1     // java.io.PrintStream out   (line 15)
+    |               ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     |               LDC "finally"
     |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RET 3   (line 10)
@@ -54,16 +54,16 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     method-execution(java.lang.String FancyHelloWorld.getName())
     |               ICONST_0   (line 20)
     |               ISTORE_0
-    |               ILOAD_0     // int x   (line 21)
+    |               ILOAD_0     // I x   (line 21)
     |               LDC "name"
     |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
-    |               ISTORE_0     // int x
+    |               ISTORE_0     // I x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
     |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    |               ILOAD_0     // int x
+    |               ILOAD_0     // I x
     |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
     |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
index c7f6f95221ea1d6bf3b0eb8f274fb27d10ed21f7..bb6ca96de9bd8ae39d04be807d4ae565e416d571 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               RETURN
index 7c22dd71b065777fd3e889302728647777d60d39..4027330b3f9a46425ff3e3ae6276928af3f7793d 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     |               RETURN
@@ -13,7 +13,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | |           LDC "bye"
     | | | method-call(void java.io.PrintStream.println(java.lang.String))
     | | | |         INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
@@ -21,8 +21,8 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | |           GOTO L0
     | | catch java.lang.Exception -> E0
     | |         E0: ASTORE_2   (line 12)
-    | |             ALOAD_1     // java.io.PrintStream out   (line 13)
-    | |             ALOAD_2     // java.lang.Exception e
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | |             ALOAD_2     // Ljava/lang/Exception; e
     | | method-call(void java.io.PrintStream.println(java.lang.Object))
     | | |           INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | | method-call(void java.io.PrintStream.println(java.lang.Object))
@@ -35,7 +35,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L0: JSR L1
     |               GOTO L2
     |           L1: ASTORE_3
-    |               ALOAD_1     // java.io.PrintStream out   (line 15)
+    |               ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     |               LDC "finally"
     | method-call(void java.io.PrintStream.println(java.lang.String))
     | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
@@ -49,7 +49,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     method-execution(java.lang.String FancyHelloWorld.getName())
     |               ICONST_0   (line 20)
     |               ISTORE_0
-    |               ILOAD_0     // int x   (line 21)
+    |               ILOAD_0     // I x   (line 21)
     |               LDC "name"
     | method-call(int java.lang.String.hashCode())
     | |             INVOKEVIRTUAL java.lang.String.hashCode ()I
@@ -61,12 +61,12 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             NOP
     | method-call(int java.lang.String.hashCode())
     |               IADD
-    |               ISTORE_0     // int x
+    |               ISTORE_0     // I x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
     |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    |               ILOAD_0     // int x
+    |               ILOAD_0     // I x
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
index f2447b509ff9aaf6517ec89092d4d00ba3e27a18..8429607db8c9d9f3bf23a0fbd613c53b0f997030 100644 (file)
@@ -1,10 +1,11 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
-    |               GOTO L0
-    |           L0: INVOKESTATIC Aspect.ajc_afterReturning_constructor_execution ()V
+    |               NOP
+    |               INVOKESTATIC Aspect.ajc_afterReturning_constructor_execution ()V
+    |               RETURN
     |               RETURN
     constructor-execution(void FancyHelloWorld.<init>())
   end public void <init>()
@@ -19,7 +20,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | |           LDC "bye"
     | | | method-call(void java.io.PrintStream.println(java.lang.String))
     | | | |         INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
@@ -29,8 +30,8 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | |           GOTO L0
     | | catch java.lang.Exception -> E0
     | |         E0: ASTORE_2   (line 12)
-    | |             ALOAD_1     // java.io.PrintStream out   (line 13)
-    | |             ALOAD_2     // java.lang.Exception e
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | |             ALOAD_2     // Ljava/lang/Exception; e
     | | method-call(void java.io.PrintStream.println(java.lang.Object))
     | | |           INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | | |           INVOKESTATIC Aspect.ajc_afterReturning_method_call ()V
@@ -45,7 +46,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L0: JSR L1
     |               GOTO L2
     |           L1: ASTORE_3
-    |               ALOAD_1     // java.io.PrintStream out   (line 15)
+    |               ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     |               LDC "finally"
     | method-call(void java.io.PrintStream.println(java.lang.String))
     | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
@@ -53,8 +54,9 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             NOP
     | method-call(void java.io.PrintStream.println(java.lang.String))
     |               RET 3   (line 10)
-    |           L2: GOTO L3   (line 17)
-    |           L3: INVOKESTATIC Aspect.ajc_afterReturning_method_execution ()V
+    |           L2: NOP   (line 17)
+    |               INVOKESTATIC Aspect.ajc_afterReturning_method_execution ()V
+    |               RETURN
     |               RETURN
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
@@ -63,7 +65,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     method-execution(java.lang.String FancyHelloWorld.getName())
     |               ICONST_0   (line 20)
     |               ISTORE_0
-    |               ILOAD_0     // int x   (line 21)
+    |               ILOAD_0     // I x   (line 21)
     |               LDC "name"
     | method-call(int java.lang.String.hashCode())
     | |             INVOKEVIRTUAL java.lang.String.hashCode ()I
@@ -71,7 +73,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             NOP
     | method-call(int java.lang.String.hashCode())
     |               IADD
-    |               ISTORE_0     // int x
+    |               ISTORE_0     // I x
     |               LDC "name"   (line 22)
     |               ASTORE_1
     | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
@@ -82,7 +84,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             INVOKESTATIC Aspect.ajc_afterReturning_constructor_call ()V
     | |             NOP
     | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    |               ILOAD_0     // int x
+    |               ILOAD_0     // I x
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
     | |             INVOKESTATIC Aspect.ajc_afterReturning_method_call ()V
@@ -93,8 +95,9 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             INVOKESTATIC Aspect.ajc_afterReturning_method_call ()V
     | |             NOP
     | method-call(java.lang.String java.lang.StringBuffer.toString())
-    |               GOTO L0
-    |           L0: INVOKESTATIC Aspect.ajc_afterReturning_method_execution ()V
+    |               ASTORE_2
+    |               INVOKESTATIC Aspect.ajc_afterReturning_method_execution ()V
+    |               ALOAD_2
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
index 6f58d2f3d68f5c86c7bd4af3cd2e07305e7a79ff..abc748eb56ecdfebe712d272664b8131e2e96e5f 100644 (file)
@@ -1,10 +1,11 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
-    |               GOTO L0
-    |           L0: INVOKESTATIC Aspect.ajc_afterReturning_constructor_execution ()V
+    |               NOP
+    |               INVOKESTATIC Aspect.ajc_afterReturning_constructor_execution ()V
+    |               RETURN
     |               RETURN
     constructor-execution(void HelloWorld.<init>())
   end public void <init>()
@@ -22,8 +23,9 @@ public class HelloWorld extends java.lang.Object:
     | |             INVOKESTATIC Aspect.ajc_afterReturning_method_call ()V
     | |             NOP
     | method-call(void java.io.PrintStream.println(java.lang.String))
-    |               GOTO L0   (line 11)
-    |           L0: INVOKESTATIC Aspect.ajc_afterReturning_method_execution ()V
+    |               NOP   (line 11)
+    |               INVOKESTATIC Aspect.ajc_afterReturning_method_execution ()V
+    |               RETURN
     |               RETURN
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
index c84a28fac58de94db37d231b6fbf4005ea6076c0..4e21da3e6356275de164a053ba8459818bf355af 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     |               RETURN
@@ -20,14 +20,14 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | |           LDC "bye"
     | | |           INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     | | |           GOTO L0
     | | catch java.lang.Exception -> E0
     | |         E0: ASTORE_2   (line 12)
-    | |             ALOAD_1     // java.io.PrintStream out   (line 13)
-    | |             ALOAD_2     // java.lang.Exception e
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | |             ALOAD_2     // Ljava/lang/Exception; e
     | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | finally -> E1
     |               GOTO L0
@@ -38,7 +38,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L0: JSR L1
     |               GOTO L2
     |           L1: ASTORE_3
-    |               ALOAD_1     // java.io.PrintStream out   (line 15)
+    |               ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     |               LDC "finally"
     |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RET 3   (line 10)
@@ -50,16 +50,16 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     method-execution(java.lang.String FancyHelloWorld.getName())
     |               ICONST_0   (line 20)
     |               ISTORE_0
-    |               ILOAD_0     // int x   (line 21)
+    |               ILOAD_0     // I x   (line 21)
     |               LDC "name"
     |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
-    |               ISTORE_0     // int x
+    |               ISTORE_0     // I x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
     |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    |               ILOAD_0     // int x
+    |               ILOAD_0     // I x
     |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
     |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
index effaba7bd1e0118cba2d5013f983eefdb642cdf4..89840a11e5f5ea89c67913bd0978d46d71761e2f 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               RETURN
index 0323a017f88a0ba5ea8692e8167c56b4d8b6270f..6016b6d4b22cde231dac86ab00728d3f39a00d84 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     |               RETURN
@@ -15,7 +15,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | |           LDC "bye"
     | | |           ASTORE 5
     | | | method-call(void java.io.PrintStream.println(java.lang.String))
@@ -28,8 +28,8 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | |           GOTO L0
     | | catch java.lang.Exception -> E0
     | |         E0: ASTORE_2   (line 12)
-    | |             ALOAD_1     // java.io.PrintStream out   (line 13)
-    | |             ALOAD_2     // java.lang.Exception e
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | |             ALOAD_2     // Ljava/lang/Exception; e
     | |             ASTORE 6
     | | method-call(void java.io.PrintStream.println(java.lang.Object))
     | | |           ALOAD 6
@@ -47,7 +47,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L0: JSR L1
     |               GOTO L2
     |           L1: ASTORE_3
-    |               ALOAD_1     // java.io.PrintStream out   (line 15)
+    |               ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     |               LDC "finally"
     |               ASTORE 7
     | method-call(void java.io.PrintStream.println(java.lang.String))
@@ -58,10 +58,11 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             NOP
     | method-call(void java.io.PrintStream.println(java.lang.String))
     |               RET 3   (line 10)
-    |           L2: GOTO L3   (line 17)
-    |           L3: ALOAD 8
+    |           L2: NOP   (line 17)
+    |               ALOAD 8
     |               INVOKESTATIC Aspect.ajc_afterReturning_method_execution (Ljava/lang/Object;)V
     |               RETURN
+    |               RETURN
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
 
@@ -69,13 +70,13 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     method-execution(java.lang.String FancyHelloWorld.getName())
     |               ICONST_0   (line 20)
     |               ISTORE_0
-    |               ILOAD_0     // int x   (line 21)
+    |               ILOAD_0     // I x   (line 21)
     |               LDC "name"
     | method-call(int java.lang.String.hashCode())
     | |             INVOKEVIRTUAL java.lang.String.hashCode ()I
     | method-call(int java.lang.String.hashCode())
     |               IADD
-    |               ISTORE_0     // int x
+    |               ISTORE_0     // I x
     |               LDC "name"   (line 22)
     |               ASTORE_1
     | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
@@ -87,7 +88,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             INVOKESTATIC Aspect.ajc_afterReturning_constructor_call (Ljava/lang/Object;)V
     | |             NOP
     | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    |               ILOAD_0     // int x
+    |               ILOAD_0     // I x
     |               ISTORE_2
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             ILOAD_2
index f9c790f820732b12373228e0756532eee50e1995..d1de34129f2b9e71ae986865140406d7731f1bca 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               RETURN
@@ -21,10 +21,11 @@ public class HelloWorld extends java.lang.Object:
     | |             INVOKESTATIC Aspect.ajc_afterReturning_method_call (Ljava/lang/Object;)V
     | |             NOP
     | method-call(void java.io.PrintStream.println(java.lang.String))
-    |               GOTO L0   (line 11)
-    |           L0: ALOAD_2
+    |               NOP   (line 11)
+    |               ALOAD_2
     |               INVOKESTATIC Aspect.ajc_afterReturning_method_execution (Ljava/lang/Object;)V
     |               RETURN
+    |               RETURN
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
 
index 59a1abd99b197f280ca06b5d42c6dcb25d5c6e78..fa6fce935310519b333aaddb70a5789beb5c9db9 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               RETURN
index 5977df7f2e1a601b2082620daba4d8ba0f623550..e7abc1f5716682a5b8634e93ca54f2b89a98e016 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               RETURN
@@ -45,6 +45,7 @@ public class HelloWorld extends java.lang.Object:
     |           L1: ALOAD_3
     |               INVOKESTATIC Aspect.ajc_afterReturning_method_execution (Ljava/lang/Object;)V
     |               RETURN
+    |               RETURN
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
 
index c00923e0827dbe9222ad46df56016a98d6ce40c0..c6c066ae1c73f02dbb13aba809c0fc41c99f9d22 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     |               RETURN
@@ -21,14 +21,14 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             ASTORE_1
     | | finally -> E1
     | | | catch java.lang.Exception -> E0
-    | | | |         ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | | |         ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | | |         LDC "bye"
     | | | |         INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     | | | |         GOTO L1
     | | | catch java.lang.Exception -> E0
     | | |       E0: ASTORE_2   (line 12)
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 13)
-    | | |           ALOAD_2     // java.lang.Exception e
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | | |           ALOAD_2     // Ljava/lang/Exception; e
     | | |           INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | | finally -> E1
     | |             GOTO L1
@@ -39,7 +39,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |         L1: JSR L2
     | |             GOTO L3
     | |         L2: ASTORE_3
-    | |             ALOAD_1     // java.io.PrintStream out   (line 15)
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     | |             LDC "finally"
     | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     | |             RET 3   (line 10)
@@ -53,6 +53,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L4: GETSTATIC Aspect.ajc$perCflowStack Lorg/aspectj/runtime/internal/CFlowStack;
     |               INVOKEVIRTUAL org.aspectj.runtime.internal.CFlowStack.pop ()V
     |               RETURN
+    |               RETURN
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
 
@@ -60,16 +61,16 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     method-execution(java.lang.String FancyHelloWorld.getName())
     |               ICONST_0   (line 20)
     |               ISTORE_0
-    |               ILOAD_0     // int x   (line 21)
+    |               ILOAD_0     // I x   (line 21)
     |               LDC "name"
     |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
-    |               ISTORE_0     // int x
+    |               ISTORE_0     // I x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
     |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    |               ILOAD_0     // int x
+    |               ILOAD_0     // I x
     |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
     |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
index 6a249e205c62b67be06d9f8242b17248489bb42c..9970f974dfa18b5aa7f3d65f4d05e635b24faa53 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               RETURN
@@ -30,6 +30,7 @@ public class HelloWorld extends java.lang.Object:
     |           L1: GETSTATIC Aspect.ajc$perCflowStack Lorg/aspectj/runtime/internal/CFlowStack;
     |               INVOKEVIRTUAL org.aspectj.runtime.internal.CFlowStack.pop ()V
     |               RETURN
+    |               RETURN
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
 
index 19b4c7032b49476a833561c9b9eb850f5c24f33d..17f383f9c7de69c3b0cc6016e91c7d3300c3932f 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     |               ALOAD_0
@@ -63,7 +63,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
                     ASTORE_1   (line 9)
     finally -> E1
     | catch java.lang.Exception -> E0
-    | |             ALOAD_1     // java.io.PrintStream out   (line 11)
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | |             LDC "bye"
     | |             ASTORE_3
     | |             ASTORE 5
@@ -75,8 +75,8 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |             GOTO L0
     | catch java.lang.Exception -> E0
     |           E0: ASTORE 7   (line 12)
-    |               ALOAD_1     // java.io.PrintStream out   (line 13)
-    |               ALOAD 7
+    |               ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    |               ALOAD 7     // Ljava/lang/Exception; e
     |               ASTORE 9
     |               ASTORE 11
     | method-call(void java.io.PrintStream.println(java.lang.Object))
@@ -93,7 +93,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
                 L0: JSR L1
                     GOTO L2
                 L1: ASTORE 15
-                    ALOAD_1     // java.io.PrintStream out   (line 15)
+                    ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
                     LDC "finally"
                     ASTORE 17
                     ASTORE 19
@@ -136,7 +136,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
   static final String getName_extracted10():
                     ICONST_0   (line 20)
                     ISTORE_0
-                    ILOAD_0     // int x   (line 21)
+                    ILOAD_0     // I x   (line 21)
                     LDC "name"
                     ASTORE_2
     method-call(int java.lang.String.hashCode())
@@ -144,14 +144,14 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               INVOKESTATIC FancyHelloWorld.hashCode_extracted6 (Ljava/lang/String;)I
     method-call(int java.lang.String.hashCode())
                     IADD
-                    ISTORE_0     // int x
+                    ISTORE_0     // I x
                     LDC "name"   (line 22)
                     ASTORE 4
     constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
     |               ALOAD 4
     |               INVOKESTATIC FancyHelloWorld.init$_extracted7 (Ljava/lang/String;)Ljava/lang/StringBuffer;
     constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-                    ILOAD_0     // int x
+                    ILOAD_0     // I x
                     ISTORE 6
                     ASTORE 8
     method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
index 7ac93cbefe16b94e6891c27bb99425eb808d6bd9..9a9ee0e309f404daeaf4b01e18b3e1f4aefdba0e 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               ALOAD_0
index 84911837094f71287ecfb16d30afdc45784b6746..4c83bd5a2a3b47f9edd8b826acf383e44c76a6a8 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     |               RETURN
@@ -17,14 +17,14 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | |           LDC "bye"
     | | |           INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     | | |           GOTO L0
     | | catch java.lang.Exception -> E0
     | |         E0: ASTORE_2   (line 12)
-    | |             ALOAD_1     // java.io.PrintStream out   (line 13)
-    | |             ALOAD_2     // java.lang.Exception e
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | |             ALOAD_2     // Ljava/lang/Exception; e
     | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | finally -> E1
     |               GOTO L0
@@ -35,7 +35,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L0: JSR L1
     |               GOTO L2
     |           L1: ASTORE_3
-    |               ALOAD_1     // java.io.PrintStream out   (line 15)
+    |               ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     |               LDC "finally"
     |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RET 3   (line 10)
@@ -47,16 +47,16 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     method-execution(java.lang.String FancyHelloWorld.getName())
     |               ICONST_0   (line 20)
     |               ISTORE_0
-    |               ILOAD_0     // int x   (line 21)
+    |               ILOAD_0     // I x   (line 21)
     |               LDC "name"
     |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
-    |               ISTORE_0     // int x
+    |               ISTORE_0     // I x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
     |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    |               ILOAD_0     // int x
+    |               ILOAD_0     // I x
     |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
     |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
index c0a623943ef274113b7ed6cb9216f1f089b460cb..11823536c2381932af99711073d56027c4c619a8 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               RETURN
index e0f04013a01bf11b6acb63dc21ba5a2482667c01..766b688da02ec83aa92187b500c7e757969ad6bf 100644 (file)
@@ -1,6 +1,6 @@
 public abstract class FancyHelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    ALOAD_0     // LFancyHelloWorld; this   (line 7)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void FancyHelloWorld.<init>())
     |               RETURN
@@ -13,7 +13,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
-    | | |           ALOAD_1     // java.io.PrintStream out   (line 11)
+    | | |           ALOAD_1     // Ljava/io/PrintStream; out   (line 11)
     | | |           LDC "bye"
     | | |           ASTORE 5
     | | |           ASTORE 6
@@ -33,8 +33,8 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | |           GOTO L2
     | | catch java.lang.Exception -> E0
     | |         E0: ASTORE_2   (line 12)
-    | |             ALOAD_1     // java.io.PrintStream out   (line 13)
-    | |             ALOAD_2     // java.lang.Exception e
+    | |             ALOAD_1     // Ljava/io/PrintStream; out   (line 13)
+    | |             ALOAD_2     // Ljava/lang/Exception; e
     | |             ASTORE 7
     | |             ASTORE 8
     | | method-call(void java.io.PrintStream.println(java.lang.Object))
@@ -59,7 +59,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L2: JSR L3
     |               GOTO L5
     |           L3: ASTORE_3
-    |               ALOAD_1     // java.io.PrintStream out   (line 15)
+    |               ALOAD_1     // Ljava/io/PrintStream; out   (line 15)
     |               LDC "finally"
     |               ASTORE 9
     |               ASTORE 10
@@ -85,18 +85,18 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     method-execution(java.lang.String FancyHelloWorld.getName())
     |               ICONST_0   (line 20)
     |               ISTORE_0
-    |               ILOAD_0     // int x   (line 21)
+    |               ILOAD_0     // I x   (line 21)
     |               LDC "name"
     | method-call(int java.lang.String.hashCode())
     | |             INVOKEVIRTUAL java.lang.String.hashCode ()I
     | method-call(int java.lang.String.hashCode())
     |               IADD
-    |               ISTORE_0     // int x
+    |               ISTORE_0     // I x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
     |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    |               ILOAD_0     // int x
+    |               ILOAD_0     // I x
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
index c1a49d70494ce20d25069fcdc3d499dd0d47696e..31915bd60d9ead4a33dab68993b826b8b4da017c 100644 (file)
@@ -1,6 +1,6 @@
 public class HelloWorld extends java.lang.Object:
   public void <init>():
-                    ALOAD_0     // HelloWorld this   (line 5)
+                    ALOAD_0     // LHelloWorld; this   (line 5)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void HelloWorld.<init>())
     |               RETURN
index 358adf0c7450cca5621f09033100eb1862dca9b3..95a629d12e694f26ca89691f3be421bec67fe7b7 100644 (file)
@@ -1,6 +1,6 @@
 public class DynamicHelloWorld extends java.lang.Object implements java.io.Serializable:
   public void <init>():
-                    ALOAD_0     // DynamicHelloWorld this   (line 8)
+                    ALOAD_0     // LDynamicHelloWorld; this   (line 8)
                     INVOKESPECIAL java.lang.Object.<init> ()V
     constructor-execution(void DynamicHelloWorld.<init>())
     |               RETURN
@@ -24,7 +24,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
                     DUP
                     LDC "expected and caught: "
                     INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-                    ALOAD_1     // java.lang.UnsupportedOperationException t
+                    ALOAD_1     // Ljava/lang/UnsupportedOperationException; t
                     INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
                     INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
                     INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
@@ -67,23 +67,25 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     |               INVOKESPECIAL DynamicHelloWorld$AjcClosure3.<init> ([Ljava/lang/Object;)V
     |               INVOKEVIRTUAL Trace.ajc$around$Trace$2$a986034c (Lorg/aspectj/runtime/internal/AroundClosure;)Ljava/lang/Object;
     |               CHECKCAST java.lang.String
-    |               GOTO L0
-    |           L0: DUP
+    |               DUP
     |               ASTORE 7
+    |               DUP
+    |               ASTORE 8
     |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
     |               ALOAD_0
-    |               ALOAD 7
+    |               ALOAD 8
     |               INVOKEVIRTUAL MyTrace.ajc$afterReturning$MyTrace$1$2b31dfa3 (Ljava/lang/Object;Ljava/lang/Object;)V
+    |               ALOAD 7
     |               ARETURN
     method-execution(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
   end String doit(String, java.util.List)
 
   static final String doit_aroundBody0(DynamicHelloWorld, String, java.util.List):
-                    ALOAD_2     // java.util.List l   (line 21)
-                    ALOAD_1     // java.lang.String s
+                    ALOAD_2     // Ljava/util/List; l   (line 21)
+                    ALOAD_1     // Ljava/lang/String; s
                     INVOKEINTERFACE java.util.List.add (Ljava/lang/Object;)Z
                     POP
-                    ALOAD_2     // java.util.List l   (line 22)
+                    ALOAD_2     // Ljava/util/List; l   (line 22)
                     INVOKEVIRTUAL java.lang.Object.toString ()Ljava/lang/String;
                     ARETURN
   end static final String doit_aroundBody0(DynamicHelloWorld, String, java.util.List)