diff options
author | acolyer <acolyer> | 2006-06-22 04:49:26 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2006-06-22 04:49:26 +0000 |
commit | 426cbdccfdf8fcfcda07b86d8e524d1034b2d0b7 (patch) | |
tree | 86e17625eadc66a8d7c6d908d5db6c7c746c7eec /weaver/testdata/AfterReturningHelloWorld.txt | |
parent | 497dcf1140b7ec4eab3aab80fa5a22c8259bae48 (diff) | |
download | aspectj-426cbdccfdf8fcfcda07b86d8e524d1034b2d0b7.tar.gz aspectj-426cbdccfdf8fcfcda07b86d8e524d1034b2d0b7.zip |
tests and "fix" for pr148007 - workaround JRockit "goto" bug by generating code closer to that produced by javac when weaving after and after returning. In particular: avoid adding a goto that branches to the next instruction (now replaces that return opcode with a nop instead), and store the return value on the top of the stack in a temp before branching to the after advice dispatch and restore it afterwards.
Diffstat (limited to 'weaver/testdata/AfterReturningHelloWorld.txt')
-rw-r--r-- | weaver/testdata/AfterReturningHelloWorld.txt | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/weaver/testdata/AfterReturningHelloWorld.txt b/weaver/testdata/AfterReturningHelloWorld.txt index 6f58d2f3d..abc748eb5 100644 --- a/weaver/testdata/AfterReturningHelloWorld.txt +++ b/weaver/testdata/AfterReturningHelloWorld.txt @@ -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[]) |