]> source.dussan.org Git - aspectj.git/commitdiff
fixed to use A.aspectOf() instead of A.ajc$perSingletonField for getting
authorjhugunin <jhugunin>
Mon, 23 Dec 2002 23:17:47 +0000 (23:17 +0000)
committerjhugunin <jhugunin>
Mon, 23 Dec 2002 23:17:47 +0000 (23:17 +0000)
singleton aspects
this lets us produce much better errors when the field is null

weaver/testdata/NonStaticBeforeFancyHelloWorld.txt
weaver/testdata/NonStaticBeforeHelloWorld.txt
weaver/testdata/TraceJarHello.txt
weaver/testsrc/Aspect.java

index 84821964a5916a856abe21349403576414b453ca..9fc3690396f39ad90e03cec390e65329a6a03f80 100644 (file)
@@ -10,7 +10,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 Aspect.ajc$perSingletonInstance LAspect;
+    | |             INVOKESTATIC Aspect.aspectOf ()LAspect;
     | |             INVOKEVIRTUAL Aspect.ajc_before ()V
     | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 9)
     | field-get(java.io.PrintStream java.lang.System.out)
@@ -76,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 2786f084466cc91caddaab0f4c4c0f5157fa6353..b8b7fb001e6551009f8f59cbc90e3eecee41198f 100644 (file)
@@ -10,7 +10,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 Aspect.ajc$perSingletonInstance LAspect;
+    | |             INVOKESTATIC Aspect.aspectOf ()LAspect;
     | |             INVOKEVIRTUAL Aspect.ajc_before ()V
     | |             GETSTATIC java.lang.System.out Ljava/io/PrintStream;   (line 8)
     | field-get(java.io.PrintStream java.lang.System.out)
@@ -21,4 +21,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 0741a7ac1eeb73025a0fcb034328ec151ac6cabd..6d96a90259a39dd4b374377695e99ed211785069 100644 (file)
@@ -62,10 +62,10 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
                     ALOAD_2
                     ASTORE 4
     method-execution(java.lang.String DynamicHelloWorld.doit(java.lang.String, java.util.List))
-    |               GETSTATIC MyTrace.ajc$perSingletonInstance LMyTrace;
+    |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
     |               ALOAD_0
     |               INVOKEVIRTUAL Trace.ajc$before$Trace$51 (Ljava/lang/Object;)V
-    |               GETSTATIC MyTrace.ajc$perSingletonInstance LMyTrace;
+    |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
     |               BIPUSH 3
     |               ANEWARRAY java.lang.Object
     |               ASTORE 6
@@ -90,7 +90,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
     |               GOTO L0
     |           L0: DUP
     |               ASTORE 7
-    |               GETSTATIC MyTrace.ajc$perSingletonInstance LMyTrace;
+    |               INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
     |               ALOAD_0
     |               ALOAD 7
     |               INVOKEVIRTUAL MyTrace.ajc$afterReturning$MyTrace$6e (Ljava/lang/Object;Ljava/lang/Object;)V
@@ -113,7 +113,7 @@ public class DynamicHelloWorld extends java.lang.Object implements java.io.Seria
   end static final String doit_aroundBody0(DynamicHelloWorld, String, java.util.List)
 
   static final String doit_aroundBody2(DynamicHelloWorld, String, java.util.List):
-                    GETSTATIC MyTrace.ajc$perSingletonInstance LMyTrace;
+                    INVOKESTATIC MyTrace.aspectOf ()LMyTrace;
                     ALOAD_0
                     BIPUSH 3
                     ANEWARRAY java.lang.Object
index bdb8108f4bd82c1d3be9416c391bbf912bd2eb84..1447c533598f104fb7f5a1cc223599d7057275ad 100644 (file)
@@ -329,6 +329,8 @@ public class Aspect {
        }
        
        public static Aspect aspectOf() {
+               if (ajc$perSingletonInstance != null) return ajc$perSingletonInstance;
+               
                return (Aspect) ajc$perCflowStack.peekInstance();
        }