]> source.dussan.org Git - aspectj.git/commitdiff
payback time for all the "kinding" work - only ever generate and match
authoracolyer <acolyer>
Thu, 16 Dec 2004 10:41:15 +0000 (10:41 +0000)
committeracolyer <acolyer>
Thu, 16 Dec 2004 10:41:15 +0000 (10:41 +0000)
against shadows that we know might be matched.

40 files changed:
weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java
weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java
weaver/testdata/AddNotResidueDynamicHelloWorld.txt
weaver/testdata/AddResidueDynamicHelloWorld.txt
weaver/testdata/AddStateResidueDynamicHelloWorld.txt
weaver/testdata/AfterReturningCheckcastParamFancyHelloWorld.txt
weaver/testdata/AfterReturningCheckcastParamHelloWorld.txt
weaver/testdata/AfterReturningConversionParam.txt
weaver/testdata/AfterReturningParamFancyHelloWorld.txt
weaver/testdata/AfterReturningParamHelloWorld.txt
weaver/testdata/AfterThrowingParamFancyHelloWorld.txt
weaver/testdata/AfterThrowingParamHelloWorld.txt
weaver/testdata/ArgsAfterReturningFancyHelloWorld.txt
weaver/testdata/ArgsAfterReturningHelloWorld.txt
weaver/testdata/ArgsAfterThrowingHelloWorld.txt
weaver/testdata/ArgsBeforeAfterHelloWorld.txt
weaver/testdata/AroundAndOthersFancyHelloWorld.txt
weaver/testdata/AroundAndOthersHelloWorld.txt
weaver/testdata/AroundArgsDynamicHelloWorld.txt
weaver/testdata/AroundFancyHelloWorld.txt
weaver/testdata/AroundHelloWorld.txt
weaver/testdata/CflowNonStaticBeforeFancyHelloWorld.txt
weaver/testdata/CflowNonStaticBeforeHelloWorld.txt
weaver/testdata/CflowStateResidueDynamicHelloWorld.txt
weaver/testdata/FieldSet.txt
weaver/testdata/Id2FancyHelloWorld.txt [new file with mode: 0644]
weaver/testdata/Id2HelloWorld.txt [new file with mode: 0644]
weaver/testdata/IdFancyHelloWorld.txt
weaver/testdata/IdHelloWorld.txt
weaver/testdata/NoResidueDynamicHelloWorld.txt
weaver/testdata/NonStaticBeforeFancyHelloWorld.txt
weaver/testdata/NonStaticBeforeHelloWorld.txt
weaver/testdata/PerThisNonStaticBeforeFancyHelloWorld.txt
weaver/testdata/PerThisNonStaticBeforeHelloWorld.txt
weaver/testdata/StateResidueMultiArgHelloWorld.txt
weaver/testdata/StringResidue1MultiArgHelloWorld.txt
weaver/testdata/StringResidue2MultiArgHelloWorld.txt
weaver/testdata/StringResidue3MultiArgHelloWorld.txt
weaver/testsrc/org/aspectj/weaver/bcel/IdWeaveTestCase.java
weaver/testsrc/org/aspectj/weaver/bcel/WeaveTestCase.java

index a5752e5ed12e447091f1042eb41a3e98fd726c37..e7b6b93c2bdee11434767b084da697d949ac96cd 100644 (file)
@@ -114,8 +114,6 @@ class BcelClassWeaver implements IClassWeaver {
     
     private BcelShadow clinitShadow = null;
     
-   
-    
     /**
      * This holds the initialization and pre-initialization shadows for this class
      * that were actually matched by mungers (if no match, then we don't even create the
@@ -148,22 +146,35 @@ class BcelClassWeaver implements IClassWeaver {
     private boolean canMatchBodyShadows = false;
     private boolean canMatchInitialization = false;
     private void fastMatchShadowMungers(List shadowMungers) {
-       perKindShadowMungers = new List[Shadow.MAX_SHADOW_KIND+1];
-       for (int i = 0; i < Shadow.SHADOW_KINDS.length; i++) {
-                       Shadow.Kind kind = Shadow.SHADOW_KINDS[i];
+       // beware the annoying property that SHADOW_KINDS[i].getKey == (i+1) !
+       
+       perKindShadowMungers = new List[Shadow.MAX_SHADOW_KIND + 1];
+       for (int i = 0; i < perKindShadowMungers.length; i++) {
                        ArrayList mungers = new ArrayList(0);
-                       perKindShadowMungers[kind.getKey()] = mungers;
-                       fastMatchShadowMungers(shadowMungers, mungers, kind);
-                       if (mungers.isEmpty()) {
-                               perKindShadowMungers[kind.getKey()] = null;
-                       } else {
-                               if (kind == Shadow.Initialization) {
-                                       canMatchInitialization = true;
-                               } else if (!kind.isEnclosingKind()) {
-                                       canMatchBodyShadows = true;
-                               }
+                       perKindShadowMungers[i] = new ArrayList(0);
+       }
+       for (Iterator iter = shadowMungers.iterator(); iter.hasNext();) {
+                       ShadowMunger munger = (ShadowMunger) iter.next();
+                       Set couldMatchKinds = munger.getPointcut().couldMatchKinds();
+                       for (Iterator kindIterator = couldMatchKinds.iterator(); 
+                            kindIterator.hasNext();) {
+                               Shadow.Kind aKind = (Shadow.Kind) kindIterator.next();
+                               perKindShadowMungers[aKind.getKey()].add(munger);
                        }
                }
+       
+       if (!perKindShadowMungers[Shadow.Initialization.getKey()].isEmpty())
+               canMatchInitialization = true;
+       
+       for (int i = 0; i < Shadow.SHADOW_KINDS.length; i++) {
+                       Shadow.Kind kind = Shadow.SHADOW_KINDS[i];
+                       if (!kind.isEnclosingKind() && !perKindShadowMungers[i+1].isEmpty()) {
+                               canMatchBodyShadows = true;
+                       }
+                       if (perKindShadowMungers[i+1].isEmpty()) {
+                               perKindShadowMungers[i+1] = null;
+                       }
+       }
     }
     
     private boolean canMatch(Shadow.Kind kind) {
@@ -827,8 +838,10 @@ class BcelClassWeaver implements IClassWeaver {
                                        match(mg, h, enclosingShadow, shadowAccumulator);
                                }
                        }
-                       if (match(enclosingShadow, shadowAccumulator)) {
-                               enclosingShadow.init();
+                       if (canMatch(enclosingShadow.getKind())) {
+                               if (match(enclosingShadow, shadowAccumulator)) {
+                                       enclosingShadow.init();
+                               }
                        }
                        mg.matchedShadows = shadowAccumulator;
                        return !shadowAccumulator.isEmpty();
@@ -859,7 +872,8 @@ class BcelClassWeaver implements IClassWeaver {
                                        match(mg, h, beforeSuperOrThisCall ? null : enclosingShadow, shadowAccumulator);
                                }
                        }
-                       match(enclosingShadow, shadowAccumulator);
+                       if (canMatch(Shadow.ConstructorExecution))
+                               match(enclosingShadow, shadowAccumulator);
                }
                
                // XXX we don't do pre-inits of interfaces
@@ -943,7 +957,9 @@ class BcelClassWeaver implements IClassWeaver {
                List shadowAccumulator) 
        {
                Instruction i = ih.getInstruction();
-               if (i instanceof FieldInstruction) {
+               if ((i instanceof FieldInstruction) && 
+                       (canMatch(Shadow.FieldGet) || canMatch(Shadow.FieldSet))
+               ) {
                        FieldInstruction fi = (FieldInstruction) i;
                                                
                        if (fi instanceof PUTFIELD || fi instanceof PUTSTATIC) {
@@ -962,20 +978,24 @@ class BcelClassWeaver implements IClassWeaver {
                                                // it's final, so it's the set of a final constant, so it's
                                                // not a join point according to 1.0.6 and 1.1.
                                        } else {
-                                               matchSetInstruction(mg, ih, enclosingShadow, shadowAccumulator);
+                                               if (canMatch(Shadow.FieldSet))
+                                                       matchSetInstruction(mg, ih, enclosingShadow, shadowAccumulator);
                                        }                                               
                                } else {
-                                       matchSetInstruction(mg, ih, enclosingShadow, shadowAccumulator);
+                                       if (canMatch(Shadow.FieldSet))
+                                               matchSetInstruction(mg, ih, enclosingShadow, shadowAccumulator);
                                }
                        } else {
-                               matchGetInstruction(mg, ih, enclosingShadow, shadowAccumulator);
+                               if (canMatch(Shadow.FieldGet))
+                                       matchGetInstruction(mg, ih, enclosingShadow, shadowAccumulator);
                        }
                } else if (i instanceof InvokeInstruction) {
                        InvokeInstruction ii = (InvokeInstruction) i;
                        if (ii.getMethodName(clazz.getConstantPoolGen()).equals("<init>")) {
-                               match(
-                                       BcelShadow.makeConstructorCall(world, mg, ih, enclosingShadow),
-                                       shadowAccumulator);
+                               if (canMatch(Shadow.ConstructorCall))
+                                       match(
+                                                       BcelShadow.makeConstructorCall(world, mg, ih, enclosingShadow),
+                                                       shadowAccumulator);
                        } else if (ii instanceof INVOKESPECIAL) {
                                String onTypeName = ii.getClassName(cpg);
                                if (onTypeName.equals(mg.getEnclosingClass().getName())) {
@@ -991,6 +1011,7 @@ class BcelClassWeaver implements IClassWeaver {
                // performance optimization... we only actually care about ASTORE instructions, 
                // since that's what every javac type thing ever uses to start a handler, but for
                // now we'll do this for everybody.
+               if (!canMatch(Shadow.ExceptionHandler)) return;
                if (Range.isRangeHandle(ih)) return;
                InstructionTargeter[] targeters = ih.getTargeters();
                if (targeters != null) {
@@ -1099,23 +1120,26 @@ class BcelClassWeaver implements IClassWeaver {
                                        kind = Shadow.FieldGet;
                                }
                                
-                               match(BcelShadow.makeShadowForMethodCall(world, mg, ih, enclosingShadow,
-                                               kind, declaredSig),
-                                       shadowAccumulator);
+                               if (canMatch(Shadow.FieldGet) || canMatch(Shadow.FieldSet))
+                                       match(BcelShadow.makeShadowForMethodCall(world, mg, ih, enclosingShadow,
+                                                       kind, declaredSig),
+                                                       shadowAccumulator);
                        } else {
                                AjAttribute.EffectiveSignatureAttribute effectiveSig =
                                        declaredSig.getEffectiveSignature();
                                if (effectiveSig == null) return;
                                //System.err.println("call to inter-type member: " + effectiveSig);
                                if (effectiveSig.isWeaveBody()) return;
-                               match(BcelShadow.makeShadowForMethodCall(world, mg, ih, enclosingShadow,
-                                               effectiveSig.getShadowKind(), effectiveSig.getEffectiveSignature()),
-                                       shadowAccumulator);
+                               if (canMatch(effectiveSig.getShadowKind()))
+                                       match(BcelShadow.makeShadowForMethodCall(world, mg, ih, enclosingShadow,
+                                                       effectiveSig.getShadowKind(), effectiveSig.getEffectiveSignature()),
+                                                       shadowAccumulator);
                        }
                } else {
-                       match(
-                               BcelShadow.makeMethodCall(world, mg, ih, enclosingShadow),
-                               shadowAccumulator);
+                       if (canMatch(Shadow.MethodCall))
+                               match(
+                                               BcelShadow.makeMethodCall(world, mg, ih, enclosingShadow),
+                                               shadowAccumulator);
                }
        }
        
index da83af2af23ea9ae392154408e01f00a57e9e470..ae0fc6852b9edb6cad3fc6aec4810de968d9a664 100644 (file)
@@ -102,6 +102,7 @@ public final class LazyMethodGen {
      * only used by {@link BcelClassWeaver}
      */
     List /*ShadowMungers*/ matchedShadows;
+    List /*Test*/ matchedShadowTests;
     
     // Used for interface introduction
     // this is the type of the interface the method is technically on
index 674db3af5aaee4e937cc281bea5092ebfa808771..ee151b164a4f61801559e5eeccb6d2111c0ed523 100644 (file)
@@ -12,13 +12,9 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | catch java.lang.UnsupportedOperationException -> E0
     | |             NEW DynamicHelloWorld   (line 12)
     | |             DUP
-    | | constructor-call(void DynamicHelloWorld.<init>())
-    | | |           INVOKESPECIAL DynamicHelloWorld.<init> ()V
-    | | constructor-call(void DynamicHelloWorld.<init>())
+    | |             INVOKESPECIAL DynamicHelloWorld.<init> ()V
     | |             LDC "hello"
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
-    | | |           GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
+    | |             GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
     | | |           INVOKEVIRTUAL DynamicHelloWorld.doit (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
@@ -26,15 +22,11 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | |             GOTO L0
     | catch java.lang.UnsupportedOperationException -> E0
     |           E0: ASTORE_1   (line 13)
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
     |               NEW java.lang.StringBuffer
     |               DUP
     |               LDC "expected and caught: "
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ALOAD_1     // java.lang.UnsupportedOperationException t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -49,9 +41,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     |           L0: NEW java.lang.RuntimeException   (line 17)
     |               DUP
     |               LDC "should have caught exception"
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
     |               ATHROW
     method-execution(void DynamicHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
index a990db62b13f7e385e09ee21c694e755035b263e..0a8caefcfccaa1a189e1f78df8f0dcf908f76f83 100644 (file)
@@ -12,13 +12,9 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | catch java.lang.UnsupportedOperationException -> E0
     | |             NEW DynamicHelloWorld   (line 12)
     | |             DUP
-    | | constructor-call(void DynamicHelloWorld.<init>())
-    | | |           INVOKESPECIAL DynamicHelloWorld.<init> ()V
-    | | constructor-call(void DynamicHelloWorld.<init>())
+    | |             INVOKESPECIAL DynamicHelloWorld.<init> ()V
     | |             LDC "hello"
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
-    | | |           GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
+    | |             GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
     | | |           INVOKEVIRTUAL DynamicHelloWorld.doit (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
@@ -26,15 +22,11 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | |             GOTO L0
     | catch java.lang.UnsupportedOperationException -> E0
     |           E0: ASTORE_1   (line 13)
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
     |               NEW java.lang.StringBuffer
     |               DUP
     |               LDC "expected and caught: "
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ALOAD_1     // java.lang.UnsupportedOperationException t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -49,9 +41,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     |           L0: NEW java.lang.RuntimeException   (line 17)
     |               DUP
     |               LDC "should have caught exception"
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
     |               ATHROW
     method-execution(void DynamicHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
index 8a3862c4b50e4c23e1dea7aca66a08e84b0f9269..6bc8e2154b844a3e5ab29066304e82580930bdfe 100644 (file)
@@ -12,13 +12,9 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | catch java.lang.UnsupportedOperationException -> E0
     | |             NEW DynamicHelloWorld   (line 12)
     | |             DUP
-    | | constructor-call(void DynamicHelloWorld.<init>())
-    | | |           INVOKESPECIAL DynamicHelloWorld.<init> ()V
-    | | constructor-call(void DynamicHelloWorld.<init>())
+    | |             INVOKESPECIAL DynamicHelloWorld.<init> ()V
     | |             LDC "hello"
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
-    | | |           GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
+    | |             GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
     | | |           INVOKEVIRTUAL DynamicHelloWorld.doit (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
@@ -26,15 +22,11 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | |             GOTO L0
     | catch java.lang.UnsupportedOperationException -> E0
     |           E0: ASTORE_1   (line 13)
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
     |               NEW java.lang.StringBuffer
     |               DUP
     |               LDC "expected and caught: "
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ALOAD_1     // java.lang.UnsupportedOperationException t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -49,9 +41,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     |           L0: NEW java.lang.RuntimeException   (line 17)
     |               DUP
     |               LDC "should have caught exception"
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
     |               ATHROW
     method-execution(void DynamicHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
index 868a634294fc2d3d9b0cd6daa13a8ba6f74492dc..f45b4e78e434759caded4ec9b3582bda126fcf7d 100644 (file)
@@ -26,17 +26,13 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | catch java.lang.Exception -> E0
     | | |           ALOAD_1     // java.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
-    | | | method-call(void java.io.PrintStream.println(java.lang.String))
+    | | |           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
-    | | 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))
+    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | finally -> E1
     |               GOTO L1
     |           E1: ASTORE 4   (line 14)
@@ -48,9 +44,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L2: ASTORE_3
     |               ALOAD_1     // java.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
-    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RET 3   (line 10)
     |           L3: RETURN   (line 17)
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
@@ -62,25 +56,18 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ISTORE_0
     |               ILOAD_0     // int 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())
+    |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
     |               ISTORE_0     // int x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int 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))
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
-    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
+    |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
+    |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
+
 end public abstract class FancyHelloWorld
index 0aa498026b3a9232e849a108744073befd9d37db..c7f6f95221ea1d6bf3b0eb8f274fb27d10ed21f7 100644 (file)
@@ -22,10 +22,9 @@ public class HelloWorld extends java.lang.Object:
     | |         L0: NOP
     | field-get(java.io.PrintStream java.lang.System.out)
     |               LDC "hello world"   (line 9)
-    | method-call(void java.io.PrintStream.println(java.lang.String))
-    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
-    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RETURN   (line 11)
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
+
 end public class HelloWorld
index 7920b30d2e492345c17548553784f0d4e4004853..7c22dd71b065777fd3e889302728647777d60d39 100644 (file)
@@ -9,9 +9,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
@@ -67,9 +65,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int x
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
@@ -80,4 +76,5 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
+
 end public abstract class FancyHelloWorld
index 9598628434424beb02e22ce20e1fab04355a98b5..c84a28fac58de94db37d231b6fbf4005ea6076c0 100644 (file)
@@ -22,17 +22,13 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | catch java.lang.Exception -> E0
     | | |           ALOAD_1     // java.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
-    | | | method-call(void java.io.PrintStream.println(java.lang.String))
+    | | |           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
-    | | 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))
+    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | finally -> E1
     |               GOTO L0
     |           E1: ASTORE 4   (line 14)
@@ -44,9 +40,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L1: ASTORE_3
     |               ALOAD_1     // java.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
-    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RET 3   (line 10)
     |           L2: RETURN   (line 17)
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
@@ -58,25 +52,18 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ISTORE_0
     |               ILOAD_0     // int 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())
+    |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
     |               ISTORE_0     // int x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int 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))
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
-    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
+    |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
+    |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
+
 end public abstract class FancyHelloWorld
index 6da75a8f8bd8e945c283b8842257d603452f64a9..effaba7bd1e0118cba2d5013f983eefdb642cdf4 100644 (file)
@@ -18,10 +18,9 @@ public class HelloWorld extends java.lang.Object:
     | |             NOP
     | field-get(java.io.PrintStream java.lang.System.out)
     |               LDC "hello world"   (line 9)
-    | method-call(void java.io.PrintStream.println(java.lang.String))
-    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
-    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RETURN   (line 11)
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
+
 end public class HelloWorld
index 0e995aaff7eeb844e32e9321b0fe2b686e75b85c..ecc17dcbd3944402f4174614f2c01aea719fc005 100644 (file)
@@ -26,17 +26,13 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | catch java.lang.Exception -> E0
     | | |           ALOAD_1     // java.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
-    | | | method-call(void java.io.PrintStream.println(java.lang.String))
+    | | |           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
-    | | 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))
+    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | finally -> E1
     |               GOTO L1
     |           E1: ASTORE 4   (line 14)
@@ -48,9 +44,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L2: ASTORE_3
     |               ALOAD_1     // java.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
-    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RET 3   (line 10)
     |           L3: RETURN   (line 17)
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
@@ -62,24 +56,16 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ISTORE_0
     |               ILOAD_0     // int 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())
+    |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
     |               ISTORE_0     // int x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int 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))
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
-    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
+    |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
+    |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
index c94486d2220a05dfb57d66a1a5d8a249253aaaa0..26d625457517a4bfa6dfbf1cea2433ec030a131b 100644 (file)
@@ -22,10 +22,9 @@ public class HelloWorld extends java.lang.Object:
     | |         L0: NOP
     | field-get(java.io.PrintStream java.lang.System.out)
     |               LDC "hello world"   (line 9)
-    | method-call(void java.io.PrintStream.println(java.lang.String))
-    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
-    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RETURN   (line 11)
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
+
 end public class HelloWorld
index 1aa2a4f0922b71357254eb1ec73de23fba5b1868..0323a017f88a0ba5ea8692e8167c56b4d8b6270f 100644 (file)
@@ -11,9 +11,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
                     ALOAD_0
                     ASTORE 8
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
@@ -105,4 +103,5 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
+
 end public abstract class FancyHelloWorld
index 1b3c0e0e7613cb8ea8c96365cc7b28041ab02015..f9c790f820732b12373228e0756532eee50e1995 100644 (file)
@@ -11,9 +11,7 @@ public class HelloWorld extends java.lang.Object:
                     ALOAD_0
                     ASTORE_2
     method-execution(void HelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     |               LDC "hello world"   (line 9)
     |               ASTORE_1
     | method-call(void java.io.PrintStream.println(java.lang.String))
@@ -29,4 +27,5 @@ public class HelloWorld extends java.lang.Object:
     |               RETURN
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
+
 end public class HelloWorld
index e71e5a4f16f67d96d329905597a36a7b7a85862b..59a1abd99b197f280ca06b5d42c6dcb25d5c6e78 100644 (file)
@@ -12,9 +12,7 @@ public class HelloWorld extends java.lang.Object:
                     ASTORE_3
     method-execution(void HelloWorld.main(java.lang.String[]))
     | catch java.lang.Throwable -> E1
-    | | field-get(java.io.PrintStream java.lang.System.out)
-    | | |           GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
-    | | field-get(java.io.PrintStream java.lang.System.out)
+    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     | |             LDC "hello world"   (line 9)
     | |             ASTORE_1
     | | method-call(void java.io.PrintStream.println(java.lang.String))
@@ -39,4 +37,5 @@ public class HelloWorld extends java.lang.Object:
     |               ATHROW
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
+
 end public class HelloWorld
index cddac2323371ca6dd1d4a4223f3639134c19c2cb..5977df7f2e1a601b2082620daba4d8ba0f623550 100644 (file)
@@ -14,9 +14,7 @@ public class HelloWorld extends java.lang.Object:
     | catch java.lang.Throwable -> E1
     | |             ALOAD_3
     | |             INVOKESTATIC Aspect.ajc_before_method_execution (Ljava/lang/Object;)V
-    | | field-get(java.io.PrintStream java.lang.System.out)
-    | | |           GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
-    | | field-get(java.io.PrintStream java.lang.System.out)
+    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     | |             LDC "hello world"   (line 9)
     | |             ASTORE_1
     | | method-call(void java.io.PrintStream.println(java.lang.String))
@@ -49,4 +47,5 @@ public class HelloWorld extends java.lang.Object:
     |               RETURN
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
+
 end public class HelloWorld
index a8a2bd44e4d4d9b26bcbdb15e557c4dbe46293d2..b12b451206fb45898558a0f607e00a2cf68501cc 100644 (file)
@@ -9,9 +9,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
@@ -118,9 +116,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int x
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
index 66240b877a403b893fafef667bcc3cfee9885e34..ba9460b6920f59867aa460ff5c8ad47464df7459 100644 (file)
@@ -9,9 +9,7 @@ public class HelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void HelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     |               LDC "hello world"   (line 9)
     |               ASTORE_1
     |               ASTORE_2
index 56ef15d8bcfc41aa7346d0dfcbf257b3e3c08641..0ca60f0593f114ce7db72d8451f101c227615189 100644 (file)
@@ -12,13 +12,9 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | catch java.lang.UnsupportedOperationException -> E0
     | |             NEW DynamicHelloWorld   (line 12)
     | |             DUP
-    | | constructor-call(void DynamicHelloWorld.<init>())
-    | | |           INVOKESPECIAL DynamicHelloWorld.<init> ()V
-    | | constructor-call(void DynamicHelloWorld.<init>())
+    | |             INVOKESPECIAL DynamicHelloWorld.<init> ()V
     | |             LDC "hello"
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
-    | | |           GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
+    | |             GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
     | | |           INVOKEVIRTUAL DynamicHelloWorld.doit (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
@@ -26,15 +22,11 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | |             GOTO L0
     | catch java.lang.UnsupportedOperationException -> E0
     |           E0: ASTORE_1   (line 13)
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
     |               NEW java.lang.StringBuffer
     |               DUP
     |               LDC "expected and caught: "
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ALOAD_1     // java.lang.UnsupportedOperationException t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -49,9 +41,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     |           L0: NEW java.lang.RuntimeException   (line 17)
     |               DUP
     |               LDC "should have caught exception"
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
     |               ATHROW
     method-execution(void DynamicHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
index f558cb548e857e870273776f5df92b0238fe9f28..e37bf022391a1b21c0cb2d0b5e3fe871ab0d9421 100644 (file)
@@ -9,9 +9,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
@@ -115,9 +113,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int x
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
index dcddb75fac283b08e27dda09bfd2693673b17a6e..919f74b9a22f2c2afa0d058e6812b44b5ac44ec3 100644 (file)
@@ -9,9 +9,7 @@ public class HelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void HelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     |               LDC "hello world"   (line 9)
     |               ASTORE_1
     |               ASTORE_2
index 722fe93c2a62474d6f15eaf4719b48e480b38e41..c00923e0827dbe9222ad46df56016a98d6ce40c0 100644 (file)
@@ -23,17 +23,13 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | | catch java.lang.Exception -> E0
     | | | |         ALOAD_1     // java.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
-    | | | | method-call(void java.io.PrintStream.println(java.lang.String))
+    | | | |         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
-    | | | 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))
+    | | |           INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | | finally -> E1
     | |             GOTO L1
     | |         E1: ASTORE 4   (line 14)
@@ -45,9 +41,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | |         L2: ASTORE_3
     | |             ALOAD_1     // java.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
-    | | method-call(void java.io.PrintStream.println(java.lang.String))
+    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     | |             RET 3   (line 10)
     | |         L3: GOTO L4   (line 17)
     | catch java.lang.Throwable -> E2
@@ -68,24 +62,16 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ISTORE_0
     |               ILOAD_0     // int 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())
+    |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
     |               ISTORE_0     // int x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int 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))
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
-    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
+    |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
+    |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
index 206a668aa226f1c5692b9a9a25ab1e5e1799c0d7..6a249e205c62b67be06d9f8242b17248489bb42c 100644 (file)
@@ -19,9 +19,7 @@ public class HelloWorld extends java.lang.Object:
     | | |       L0: GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     | | field-get(java.io.PrintStream java.lang.System.out)
     | |             LDC "hello world"   (line 9)
-    | | method-call(void java.io.PrintStream.println(java.lang.String))
-    | | |           INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
-    | | method-call(void java.io.PrintStream.println(java.lang.String))
+    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     | |             GOTO L1   (line 11)
     | catch java.lang.Throwable -> E0
     |           E0: ASTORE_2
index 6f3061d6b38dd5e98819e4b3f67b25be11fe3049..4745c2af0eccfb77b32ab809e6cbdd762feaa04a 100644 (file)
@@ -20,13 +20,9 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | catch java.lang.UnsupportedOperationException -> E0
     | |         L0: NEW DynamicHelloWorld   (line 12)
     | |             DUP
-    | | constructor-call(void DynamicHelloWorld.<init>())
-    | | |           INVOKESPECIAL DynamicHelloWorld.<init> ()V
-    | | constructor-call(void DynamicHelloWorld.<init>())
+    | |             INVOKESPECIAL DynamicHelloWorld.<init> ()V
     | |             LDC "hello"
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
-    | | |           GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
+    | |             GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
     | | |           INVOKEVIRTUAL DynamicHelloWorld.doit (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
@@ -34,15 +30,11 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | |             GOTO L1
     | catch java.lang.UnsupportedOperationException -> E0
     |           E0: ASTORE_1   (line 13)
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
     |               NEW java.lang.StringBuffer
     |               DUP
     |               LDC "expected and caught: "
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ALOAD_1     // java.lang.UnsupportedOperationException t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -57,9 +49,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     |           L1: NEW java.lang.RuntimeException   (line 17)
     |               DUP
     |               LDC "should have caught exception"
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
     |               ATHROW
     method-execution(void DynamicHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
index c89c7e7bcb263cd6e1f9eb773c2acff2fa168fe8..a32fad0f71b7eb3812140a4ffe65a2d642ba3d6f 100644 (file)
@@ -3,9 +3,7 @@ public class FieldyHelloWorld extends java.lang.Object:
   static void <clinit>():
     staticinitialization(void FieldyHelloWorld.<clinit>())
     |               LDC "Hello"   (line 3)
-    | field-set(java.lang.String FieldyHelloWorld.str)
-    | |             PUTSTATIC FieldyHelloWorld.str Ljava/lang/String;
-    | field-set(java.lang.String FieldyHelloWorld.str)
+    |               PUTSTATIC FieldyHelloWorld.str Ljava/lang/String;
     |               RETURN   (line 1)
     staticinitialization(void FieldyHelloWorld.<clinit>())
   end static void <clinit>()
@@ -47,9 +45,7 @@ public class FieldyHelloWorld extends java.lang.Object:
     | |             INVOKESTATIC Aspect.ajc_before_method_call ()V
     | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     | method-call(java.lang.String java.lang.StringBuffer.toString())
-    | field-set(java.lang.String FieldyHelloWorld.str)
-    | |             PUTSTATIC FieldyHelloWorld.str Ljava/lang/String;
-    | field-set(java.lang.String FieldyHelloWorld.str)
+    |               PUTSTATIC FieldyHelloWorld.str Ljava/lang/String;
     | field-get(java.io.PrintStream java.lang.System.out)
     | |             INVOKESTATIC Aspect.ajc_before_field_get ()V
     | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
diff --git a/weaver/testdata/Id2FancyHelloWorld.txt b/weaver/testdata/Id2FancyHelloWorld.txt
new file mode 100644 (file)
index 0000000..00c30d7
--- /dev/null
@@ -0,0 +1,78 @@
+public abstract class FancyHelloWorld extends java.lang.Object:
+  public void <init>():
+                    ALOAD_0     // FancyHelloWorld this   (line 7)
+                    INVOKESPECIAL java.lang.Object.<init> ()V
+    constructor-execution(void FancyHelloWorld.<init>())
+    |               RETURN
+    constructor-execution(void FancyHelloWorld.<init>())
+  end public void <init>()
+
+  public static void main(String[]):
+    method-execution(void FancyHelloWorld.main(java.lang.String[]))
+    | field-get(java.io.PrintStream java.lang.System.out)
+    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
+    | field-get(java.io.PrintStream java.lang.System.out)
+    |               ASTORE_1
+    | finally -> E1
+    | | catch java.lang.Exception -> E0
+    | | |           ALOAD_1     // java.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
+    | | | method-call(void java.io.PrintStream.println(java.lang.String))
+    | | |           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
+    | | 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))
+    | finally -> E1
+    |               GOTO L0
+    |           E1: ASTORE 4   (line 14)
+    |               JSR L1
+    |               ALOAD 4
+    |               ATHROW
+    |           L0: JSR L1
+    |               GOTO L2
+    |           L1: ASTORE_3
+    |               ALOAD_1     // java.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
+    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               RET 3   (line 10)
+    |           L2: RETURN   (line 17)
+    method-execution(void FancyHelloWorld.main(java.lang.String[]))
+  end public static void main(String[])
+
+  public static String getName():
+    method-execution(java.lang.String FancyHelloWorld.getName())
+    |               ICONST_0   (line 20)
+    |               ISTORE_0
+    |               ILOAD_0     // int 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
+    |               NEW java.lang.StringBuffer   (line 22)
+    |               DUP
+    |               LDC "name"
+    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
+    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               ILOAD_0     // int 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))
+    | method-call(java.lang.String java.lang.StringBuffer.toString())
+    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
+    | method-call(java.lang.String java.lang.StringBuffer.toString())
+    |               ARETURN
+    method-execution(java.lang.String FancyHelloWorld.getName())
+  end public static String getName()
+
+end public abstract class FancyHelloWorld
diff --git a/weaver/testdata/Id2HelloWorld.txt b/weaver/testdata/Id2HelloWorld.txt
new file mode 100644 (file)
index 0000000..121366e
--- /dev/null
@@ -0,0 +1,23 @@
+public class HelloWorld extends java.lang.Object:
+  public void <init>():
+                    ALOAD_0     // HelloWorld this   (line 5)
+                    INVOKESPECIAL java.lang.Object.<init> ()V
+    constructor-execution(void HelloWorld.<init>())
+    |               RETURN
+    constructor-execution(void HelloWorld.<init>())
+  end public void <init>()
+
+  public static void main(String[]):
+    method-execution(void HelloWorld.main(java.lang.String[]))
+    | field-get(java.io.PrintStream java.lang.System.out)
+    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
+    | field-get(java.io.PrintStream java.lang.System.out)
+    |               LDC "hello world"   (line 9)
+    | method-call(void java.io.PrintStream.println(java.lang.String))
+    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
+    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               RETURN   (line 11)
+    method-execution(void HelloWorld.main(java.lang.String[]))
+  end public static void main(String[])
+
+end public class HelloWorld
index 86d44a5543a990338a9959091a40800974566f40..354fbf55102ffc153c7533b5709866e69ac741b4 100644 (file)
@@ -9,9 +9,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
@@ -61,9 +59,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int x
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
@@ -74,4 +70,5 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
+
 end public abstract class FancyHelloWorld
index dfd6deff9ab5adb18f683999f923ea7b297da23e..bbe9a3ac43bab4c213d7ab5cf9b2afdddb39bd04 100644 (file)
@@ -9,9 +9,7 @@ public class HelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void HelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     |               LDC "hello world"   (line 9)
     | method-call(void java.io.PrintStream.println(java.lang.String))
     | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
@@ -19,4 +17,5 @@ public class HelloWorld extends java.lang.Object:
     |               RETURN   (line 11)
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
+
 end public class HelloWorld
index 9fb9172e9f7b88974df1cb4afb54bca9761808e2..b81c0801d0475ccb0d56e3c99d898860b5b32bdc 100644 (file)
@@ -12,13 +12,9 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | catch java.lang.UnsupportedOperationException -> E0
     | |             NEW DynamicHelloWorld   (line 12)
     | |             DUP
-    | | constructor-call(void DynamicHelloWorld.<init>())
-    | | |           INVOKESPECIAL DynamicHelloWorld.<init> ()V
-    | | constructor-call(void DynamicHelloWorld.<init>())
+    | |             INVOKESPECIAL DynamicHelloWorld.<init> ()V
     | |             LDC "hello"
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
-    | | |           GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
-    | | field-get(java.util.List java.util.Collections.EMPTY_LIST)
+    | |             GETSTATIC java.util.Collections.EMPTY_LIST Ljava/util/List;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
     | | |           INVOKEVIRTUAL DynamicHelloWorld.doit (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
     | | method-call(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
@@ -26,15 +22,11 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     | |             GOTO L0
     | catch java.lang.UnsupportedOperationException -> E0
     |           E0: ASTORE_1   (line 13)
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 14)
     |               NEW java.lang.StringBuffer
     |               DUP
     |               LDC "expected and caught: "
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ALOAD_1     // java.lang.UnsupportedOperationException t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -49,9 +41,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     |           L0: NEW java.lang.RuntimeException   (line 17)
     |               DUP
     |               LDC "should have caught exception"
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.RuntimeException.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.RuntimeException.<init> (Ljava/lang/String;)V
     |               ATHROW
     method-execution(void DynamicHelloWorld.main(java.lang.String[]))
   end public static void main(String[])
index 9fc3690396f39ad90e03cec390e65329a6a03f80..84911837094f71287ecfb16d30afdc45784b6746 100644 (file)
@@ -19,17 +19,13 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     | | catch java.lang.Exception -> E0
     | | |           ALOAD_1     // java.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
-    | | | method-call(void java.io.PrintStream.println(java.lang.String))
+    | | |           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
-    | | 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))
+    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/Object;)V
     | finally -> E1
     |               GOTO L0
     |           E1: ASTORE 4   (line 14)
@@ -41,9 +37,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |           L1: ASTORE_3
     |               ALOAD_1     // java.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
-    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RET 3   (line 10)
     |           L2: RETURN   (line 17)
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
@@ -55,24 +49,16 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               ISTORE_0
     |               ILOAD_0     // int 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())
+    |               INVOKEVIRTUAL java.lang.String.hashCode ()I
     |               IADD
     |               ISTORE_0     // int x
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int 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))
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
-    | |             INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
-    | method-call(java.lang.String java.lang.StringBuffer.toString())
+    |               INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
+    |               INVOKEVIRTUAL java.lang.StringBuffer.toString ()Ljava/lang/String;
     |               ARETURN
     method-execution(java.lang.String FancyHelloWorld.getName())
   end public static String getName()
index b8b7fb001e6551009f8f59cbc90e3eecee41198f..c0a623943ef274113b7ed6cb9216f1f089b460cb 100644 (file)
@@ -15,9 +15,7 @@ public class HelloWorld extends java.lang.Object:
     | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     | field-get(java.io.PrintStream java.lang.System.out)
     |               LDC "hello world"   (line 9)
-    | method-call(void java.io.PrintStream.println(java.lang.String))
-    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
-    | method-call(void java.io.PrintStream.println(java.lang.String))
+    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
     |               RETURN   (line 11)
     method-execution(void HelloWorld.main(java.lang.String[]))
   end public static void main(String[])
index c4ad70f94ca7f739dd42ef81d96d8230ad40ce53..e0f04013a01bf11b6acb63dc21ba5a2482667c01 100644 (file)
@@ -9,9 +9,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void FancyHelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
     |               ASTORE_1
     | finally -> E1
     | | catch java.lang.Exception -> E0
@@ -97,9 +95,7 @@ public abstract class FancyHelloWorld extends java.lang.Object:
     |               NEW java.lang.StringBuffer   (line 22)
     |               DUP
     |               LDC "name"
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
-    | constructor-call(void java.lang.StringBuffer.<init>(java.lang.String))
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> (Ljava/lang/String;)V
     |               ILOAD_0     // int x
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(int))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (I)Ljava/lang/StringBuffer;
index 1b62d4c68b7788802819e34d5af4473f86bfcd91..c1a49d70494ce20d25069fcdc3d499dd0d47696e 100644 (file)
@@ -9,9 +9,7 @@ public class HelloWorld extends java.lang.Object:
 
   public static void main(String[]):
     method-execution(void HelloWorld.main(java.lang.String[]))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     |               LDC "hello world"   (line 9)
     |               ASTORE_1
     |               ASTORE_2
index b5e01bee0c3698b6fa34db8fe6329b55f490638f..8e7f5481cc45e103a152f2da5abd43cb87b3aeed 100644 (file)
@@ -30,14 +30,10 @@ public class MultiArgHelloWorld extends java.lang.Object:
 
   static void foo(Object, Object):
     method-execution(void MultiArgHelloWorld.foo(java.lang.Object, java.lang.Object))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
     |               NEW java.lang.StringBuffer
     |               DUP
-    | constructor-call(void java.lang.StringBuffer.<init>())
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> ()V
-    | constructor-call(void java.lang.StringBuffer.<init>())
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> ()V
     |               ALOAD_0     // java.lang.Object s
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -46,7 +42,7 @@ public class MultiArgHelloWorld extends java.lang.Object:
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
-    |               ALOAD_1     // java.lang.Object arg1
+    |               ALOAD_1     // java.lang.Object t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
index e3bacfd97c21ebad3defe9119514388453dfb349..a07e2539c38eee4151edb69ece48107e42ba43f0 100644 (file)
@@ -31,14 +31,10 @@ public class MultiArgHelloWorld extends java.lang.Object:
 
   static void foo(Object, Object):
     method-execution(void MultiArgHelloWorld.foo(java.lang.Object, java.lang.Object))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
     |               NEW java.lang.StringBuffer
     |               DUP
-    | constructor-call(void java.lang.StringBuffer.<init>())
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> ()V
-    | constructor-call(void java.lang.StringBuffer.<init>())
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> ()V
     |               ALOAD_0     // java.lang.Object s
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -47,7 +43,7 @@ public class MultiArgHelloWorld extends java.lang.Object:
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
-    |               ALOAD_1     // java.lang.Object arg1
+    |               ALOAD_1     // java.lang.Object t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
index 61e882ea54f0cf58f7d1320f32f1f7cd71531a3e..db000a60e4373991e0eb91bf289f39186158f09a 100644 (file)
@@ -28,14 +28,10 @@ public class MultiArgHelloWorld extends java.lang.Object:
 
   static void foo(Object, Object):
     method-execution(void MultiArgHelloWorld.foo(java.lang.Object, java.lang.Object))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
     |               NEW java.lang.StringBuffer
     |               DUP
-    | constructor-call(void java.lang.StringBuffer.<init>())
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> ()V
-    | constructor-call(void java.lang.StringBuffer.<init>())
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> ()V
     |               ALOAD_0     // java.lang.Object s
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -44,7 +40,7 @@ public class MultiArgHelloWorld extends java.lang.Object:
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
-    |               ALOAD_1     // java.lang.Object arg1
+    |               ALOAD_1     // java.lang.Object t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
index db3b1504cf139ce9fcb610dba4a518c62b4c6a6e..f59804e69e89b0091d972825748c3a528d970781 100644 (file)
@@ -28,14 +28,10 @@ public class MultiArgHelloWorld extends java.lang.Object:
 
   static void foo(Object, Object):
     method-execution(void MultiArgHelloWorld.foo(java.lang.Object, java.lang.Object))
-    | field-get(java.io.PrintStream java.lang.System.out)
-    | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
-    | field-get(java.io.PrintStream java.lang.System.out)
+    |               GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 10)
     |               NEW java.lang.StringBuffer
     |               DUP
-    | constructor-call(void java.lang.StringBuffer.<init>())
-    | |             INVOKESPECIAL java.lang.StringBuffer.<init> ()V
-    | constructor-call(void java.lang.StringBuffer.<init>())
+    |               INVOKESPECIAL java.lang.StringBuffer.<init> ()V
     |               ALOAD_0     // java.lang.Object s
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
@@ -44,7 +40,7 @@ public class MultiArgHelloWorld extends java.lang.Object:
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/String;)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.String))
-    |               ALOAD_1     // java.lang.Object arg1
+    |               ALOAD_1     // java.lang.Object t
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
     | |             INVOKEVIRTUAL java.lang.StringBuffer.append (Ljava/lang/Object;)Ljava/lang/StringBuffer;
     | method-call(java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object))
index c17c4956982e8e0398baa999c79ae06fe33a939d..075ad8c20d9138ff39455e6d4f680b47267d9849 100644 (file)
@@ -40,7 +40,7 @@ public class IdWeaveTestCase extends WeaveTestCase {
                        return false;
                    }
                };
-        weaveTest(new String[] {"FancyHelloWorld"}, "Id", p);
+        weaveTest(new String[] {"FancyHelloWorld"}, "Id2", p);
         
         checkShadowSet(l, new String[] {
             "method-call(void java.io.PrintStream.println(java.lang.Object))",
@@ -57,6 +57,7 @@ public class IdWeaveTestCase extends WeaveTestCase {
         });
     }   
 
+
     public void testId() throws IOException {
         final List l = new ArrayList();
         BcelAdvice p = new BcelAdvice(null, makePointcutAll(), null, 0, -1, -1, null, null) {
@@ -64,7 +65,7 @@ public class IdWeaveTestCase extends WeaveTestCase {
                 l.add(shadow);
             }
         };
-        weaveTest(new String[] {"HelloWorld"}, "Id", p);
+        weaveTest(new String[] {"HelloWorld"}, "Id2", p);
         
         checkShadowSet(l, new String[] {
             "method-execution(void HelloWorld.main(java.lang.String[]))",
index 9a7a4e7b0262564fd3ca8cf13df6417cab1ed0a1..d14176891648de973ff9700cfd85bb412f27ab15 100644 (file)
@@ -104,6 +104,7 @@ public abstract class WeaveTestCase extends TestCase {
                 TestUtil.runMain(makeClassPath(outDirPath), name);
                        }
                } catch (Error e) {
+                       System.err.println("Comparing to " + outName + ".txt");
                        gen.print(System.err);
                        throw e;
                } catch (RuntimeException e) {