]> source.dussan.org Git - aspectj.git/commitdiff
fix for pr59076, much more memory efficient creation of join point static parts
authoracolyer <acolyer>
Thu, 1 Sep 2005 14:17:29 +0000 (14:17 +0000)
committeracolyer <acolyer>
Thu, 1 Sep 2005 14:17:29 +0000 (14:17 +0000)
lib/aspectj/lib/aspectjrt.jar
lib/test/aspectjrt.jar
runtime/src/org/aspectj/runtime/reflect/Factory.java
runtime/src/org/aspectj/runtime/reflect/SignatureImpl.java
weaver/src/org/aspectj/weaver/bcel/LazyClassGen.java
weaver/testdata/StaticEnclosingTjpBeforeHelloWorld.txt
weaver/testdata/StaticTjpBeforeHelloWorld.txt
weaver/testdata/TjpAround2HelloWorld.txt
weaver/testdata/TjpAroundHelloWorld.txt
weaver/testdata/TjpBeforeHelloWorld.txt

index 72e4de63c788e7900749b7cbcd5057420b0e7006..e4d62b34ab17341ebc331df67188c29e41908d21 100644 (file)
Binary files a/lib/aspectj/lib/aspectjrt.jar and b/lib/aspectj/lib/aspectjrt.jar differ
index 72e4de63c788e7900749b7cbcd5057420b0e7006..e4d62b34ab17341ebc331df67188c29e41908d21 100644 (file)
Binary files a/lib/test/aspectjrt.jar and b/lib/test/aspectjrt.jar differ
index c3e66287461d3f4cb6dd84bfce5b2afa352be4ad..95c9de06803ea64fee7e02104b6481175aeb1231 100644 (file)
@@ -18,6 +18,8 @@ package org.aspectj.runtime.reflect;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
+import java.util.Hashtable;
+import java.util.StringTokenizer;
 
 import org.aspectj.lang.*;
 import org.aspectj.lang.reflect.*;
@@ -26,6 +28,42 @@ public final class Factory {
     Class lexicalClass;
     ClassLoader lookupClassLoader;
     String filename;
+
+    static Hashtable prims = new Hashtable();
+    static {
+        prims.put("void", Void.TYPE);
+        prims.put("boolean", Boolean.TYPE);
+        prims.put("byte", Byte.TYPE);
+        prims.put("char", Character.TYPE);
+        prims.put("short", Short.TYPE);
+        prims.put("int", Integer.TYPE);
+        prims.put("long", Long.TYPE);
+        prims.put("float", Float.TYPE);
+        prims.put("double", Double.TYPE);
+    }
+        
+    static Class makeClass(String s, ClassLoader loader) {
+        if (s.equals("*")) return null;
+        Class ret = (Class)prims.get(s);
+        if (ret != null) return ret;
+        try {
+            /* The documentation of Class.forName explains why this is the right thing
+             * better than I could here.
+             */
+            if (loader == null) {
+                return Class.forName(s);
+            } else {
+               // used to be 'return loader.loadClass(s)' but that didn't cause
+               // array types to be created and loaded correctly. (pr70404)
+                return Class.forName(s,false,loader);
+            }
+        } catch (ClassNotFoundException e) {
+            //System.out.println("null for: " + s);
+            //XXX there should be a better return value for this
+            return ClassNotFoundException.class;
+        }
+    }
+    
     public Factory(String filename, Class lexicalClass) {
         //System.out.println("making
         this.filename = filename;  
@@ -33,6 +71,8 @@ public final class Factory {
         lookupClassLoader = lexicalClass.getClassLoader();
     }
     
+    
+    
     public JoinPoint.StaticPart makeSJP(String kind, Signature sig, SourceLocation loc) {
         return new JoinPointImpl.StaticPartImpl(kind, sig, loc);
     }
@@ -112,6 +152,35 @@ public final class Factory {
         return ret;
     }
     
+    
+       public MethodSignature makeMethodSig(String modifiers, String methodName, String declaringType, String paramTypes, String paramNames, String exceptionTypes, String returnType) {
+               int modifiersAsInt = Integer.parseInt(modifiers, 16);
+   
+               Class declaringTypeClass = makeClass(declaringType,lookupClassLoader);
+   
+               StringTokenizer st = new StringTokenizer(paramTypes, ":");
+               int numParams = st.countTokens();
+               Class[] paramTypeClasses = new Class[numParams];
+               for(int i = 0; i < numParams; i++) paramTypeClasses[i] = makeClass(st.nextToken(),lookupClassLoader);
+   
+               st = new StringTokenizer(paramNames, ":");
+               numParams = st.countTokens();
+               String[] paramNamesArray = new String[numParams];
+               for(int i = 0; i < numParams; i++) paramNamesArray[i] = st.nextToken();
+                       
+               st = new StringTokenizer(exceptionTypes, ":");
+               numParams = st.countTokens();
+               Class[] exceptionTypeClasses = new Class[numParams];
+               for(int i = 0; i < numParams; i++) exceptionTypeClasses[i] = makeClass(st.nextToken(),lookupClassLoader);
+   
+               Class returnTypeClass = makeClass(returnType,lookupClassLoader);
+   
+               MethodSignatureImpl ret =
+                       new MethodSignatureImpl(modifiersAsInt, methodName, declaringTypeClass, paramTypeClasses, paramNamesArray, exceptionTypeClasses, returnTypeClass);
+   
+               return ret;
+       }
+       
     public MethodSignature makeMethodSig(int modifiers, String name, Class declaringType, 
             Class[] parameterTypes, String[] parameterNames, Class[] exceptionTypes,
                Class returnType) {
@@ -126,6 +195,32 @@ public final class Factory {
         return ret;
     }
     
+    public ConstructorSignature makeConstructorSig(String modifiers, String declaringType, String paramTypes, String paramNames, String exceptionTypes) {
+               int modifiersAsInt = Integer.parseInt(modifiers, 16);
+
+               Class declaringTypeClass = makeClass(declaringType,lookupClassLoader);
+
+               StringTokenizer st = new StringTokenizer(paramTypes, ":");
+               int numParams = st.countTokens();
+               Class[] paramTypeClasses = new Class[numParams];
+               for(int i = 0; i < numParams; i++) paramTypeClasses[i] = makeClass(st.nextToken(),lookupClassLoader);
+
+               st = new StringTokenizer(paramNames, ":");
+               numParams = st.countTokens();
+               String[] paramNamesArray = new String[numParams];
+               for(int i = 0; i < numParams; i++) paramNamesArray[i] = st.nextToken();
+                       
+               st = new StringTokenizer(exceptionTypes, ":");
+               numParams = st.countTokens();
+               Class[] exceptionTypeClasses = new Class[numParams];
+               for(int i = 0; i < numParams; i++) exceptionTypeClasses[i] = makeClass(st.nextToken(),lookupClassLoader);
+       
+       ConstructorSignatureImpl ret = new ConstructorSignatureImpl(modifiersAsInt, declaringTypeClass, paramTypeClasses, paramNamesArray, exceptionTypeClasses);
+       ret.setLookupClassLoader(lookupClassLoader);
+       return ret;
+   }
+     
+    
     public ConstructorSignature makeConstructorSig(int modifiers, Class declaringType, 
             Class[] parameterTypes, String[] parameterNames, Class[] exceptionTypes) {
         ConstructorSignatureImpl ret = new ConstructorSignatureImpl(modifiers,declaringType,parameterTypes,parameterNames,exceptionTypes);
@@ -139,6 +234,17 @@ public final class Factory {
         return ret;
     }
     
+    
+    public FieldSignature makeFieldSig(String modifiers, String name, String declaringType, String fieldType) {
+       int modifiersAsInt = Integer.parseInt(modifiers, 16);
+       Class declaringTypeClass = makeClass(declaringType,lookupClassLoader);
+       Class fieldTypeClass = makeClass(fieldType,lookupClassLoader);
+                       
+       FieldSignatureImpl ret = new FieldSignatureImpl(modifiersAsInt, name, declaringTypeClass, fieldTypeClass);
+       ret.setLookupClassLoader(lookupClassLoader);
+       return ret;
+    }
+    
     public FieldSignature makeFieldSig(int modifiers, String name, Class declaringType, 
             Class fieldType) {
         FieldSignatureImpl ret = new FieldSignatureImpl(modifiers,name,declaringType,fieldType);
@@ -152,6 +258,33 @@ public final class Factory {
         return ret;
     }
 
+    public AdviceSignature makeAdviceSig(String modifiers, String name, String declaringType, String paramTypes, String paramNames, String exceptionTypes, String returnType) {
+       int modifiersAsInt = Integer.parseInt(modifiers, 16);
+       
+       Class declaringTypeClass = makeClass(declaringType,lookupClassLoader);
+               
+       StringTokenizer st = new StringTokenizer(paramTypes, ":");
+       int numParams = st.countTokens();
+       Class[] paramTypeClasses = new Class[numParams];
+       for(int i = 0; i < numParams; i++) paramTypeClasses[i] = makeClass(st.nextToken(),lookupClassLoader);
+       
+       st = new StringTokenizer(paramNames, ":");
+       numParams = st.countTokens();
+       String[] paramNamesArray = new String[numParams];
+       for(int i = 0; i < numParams; i++) paramNamesArray[i] = st.nextToken();
+       
+       st = new StringTokenizer(exceptionTypes, ":");
+       numParams = st.countTokens();
+       Class[] exceptionTypeClasses = new Class[numParams];
+       for(int i = 0; i < numParams; i++) exceptionTypeClasses[i] = makeClass(st.nextToken(),lookupClassLoader);;
+       
+       Class returnTypeClass = makeClass(returnType,lookupClassLoader);
+                       
+       AdviceSignatureImpl ret = new AdviceSignatureImpl(modifiersAsInt, name, declaringTypeClass, paramTypeClasses, paramNamesArray, exceptionTypeClasses, returnTypeClass);
+       ret.setLookupClassLoader(lookupClassLoader);
+       return ret;
+    }
+    
     public AdviceSignature makeAdviceSig(int modifiers, String name, Class declaringType, 
             Class[] parameterTypes, String[] parameterNames, Class[] exceptionTypes,
                Class returnType) {
@@ -166,6 +299,15 @@ public final class Factory {
         return ret;
     }
 
+    public InitializerSignature makeInitializerSig(String modifiers, String declaringType) {
+       int modifiersAsInt = Integer.parseInt(modifiers, 16);
+       Class declaringTypeClass = makeClass(declaringType,lookupClassLoader);
+               
+       InitializerSignatureImpl ret = new InitializerSignatureImpl(modifiersAsInt, declaringTypeClass);
+       ret.setLookupClassLoader(lookupClassLoader);
+       return ret;
+    }
+    
     public InitializerSignature makeInitializerSig(int modifiers, Class declaringType) {
         InitializerSignatureImpl ret = new InitializerSignatureImpl(modifiers,declaringType);
         ret.setLookupClassLoader(lookupClassLoader);
@@ -177,6 +319,20 @@ public final class Factory {
         ret.setLookupClassLoader(lookupClassLoader);
         return ret;
     }
+    public CatchClauseSignature makeCatchClauseSig(String declaringType, String parameterType, String parameterName) {
+       Class declaringTypeClass = makeClass(declaringType,lookupClassLoader);
+               
+       StringTokenizer st = new StringTokenizer(parameterType, ":");
+       Class parameterTypeClass = makeClass(st.nextToken(),lookupClassLoader);
+    
+       st = new StringTokenizer(parameterName, ":");
+       String parameterNameForReturn = st.nextToken();
+    
+               CatchClauseSignatureImpl ret = new CatchClauseSignatureImpl(declaringTypeClass, parameterTypeClass, parameterNameForReturn);
+               ret.setLookupClassLoader(lookupClassLoader);
+       return ret;
+    }
     
     public CatchClauseSignature makeCatchClauseSig(Class declaringType, 
             Class parameterType, String parameterName) {
index 9045880e012ec711c1bf9beff6f8be59a9c0d75e..127b39c25ef057ad54d7ebe54a8c6b1a318a458e 100644 (file)
@@ -17,7 +17,6 @@ package org.aspectj.runtime.reflect;
 import org.aspectj.lang.Signature;
 
 import java.lang.ref.SoftReference;
-import java.util.Hashtable;
 import java.util.StringTokenizer;
 
 abstract class SignatureImpl implements Signature {
@@ -155,44 +154,10 @@ abstract class SignatureImpl implements Signature {
     
     Class extractType(int n) {
         String s = extractString(n);
-        return makeClass(s);
+        return Factory.makeClass(s,getLookupClassLoader());
     }
     
-    static Hashtable prims = new Hashtable();
-    static {
-        prims.put("void", Void.TYPE);
-        prims.put("boolean", Boolean.TYPE);
-        prims.put("byte", Byte.TYPE);
-        prims.put("char", Character.TYPE);
-        prims.put("short", Short.TYPE);
-        prims.put("int", Integer.TYPE);
-        prims.put("long", Long.TYPE);
-        prims.put("float", Float.TYPE);
-        prims.put("double", Double.TYPE);
-    }
-        
-    Class makeClass(String s) {
-        if (s.equals("*")) return null;
-        Class ret = (Class)prims.get(s);
-        if (ret != null) return ret;
-        try {
-            /* The documentation of Class.forName explains why this is the right thing
-             * better than I could here.
-             */
-            ClassLoader loader = getLookupClassLoader();
-            if (loader == null) {
-                return Class.forName(s);
-            } else {
-               // used to be 'return loader.loadClass(s)' but that didn't cause
-               // array types to be created and loaded correctly. (pr70404)
-                return Class.forName(s,false,loader);
-            }
-        } catch (ClassNotFoundException e) {
-            //System.out.println("null for: " + s);
-            //XXX there should be a better return value for this
-            return ClassNotFoundException.class;
-        }
-    }
     
     static String[] EMPTY_STRING_ARRAY = new String[0];
     static Class[] EMPTY_CLASS_ARRAY = new Class[0];
@@ -212,7 +177,7 @@ abstract class SignatureImpl implements Signature {
         StringTokenizer st = new StringTokenizer(s, INNER_SEP);
         final int N = st.countTokens();
         Class[] ret = new Class[N];
-        for (int i = 0; i < N; i++) ret[i]= makeClass(st.nextToken());
+        for (int i = 0; i < N; i++) ret[i]= Factory.makeClass(st.nextToken(),getLookupClassLoader());
         return ret;
     }
 
index 7c63a0575540dd4526e10377b8e0c772882f0316..887b1a16bb4ad1dbdbac8a51132427fc99bd4c5b 100644 (file)
@@ -945,13 +945,87 @@ public final class LazyClassGen {
        
        // create the signature
        list.append(InstructionFactory.createLoad(factoryType, 0));
-       list.append(new PUSH(getConstantPoolGen(), sig.getSignatureString(shadow.getWorld())));
-       list.append(fact.createInvoke(factoryType.getClassName(), 
-                                       sig.getSignatureMakerName(),
-                                       new ObjectType(sig.getSignatureType()),
-                                       new Type[] { Type.STRING },
-                                       Constants.INVOKEVIRTUAL));
        
+       if (sig.getKind().equals(Member.METHOD)) {
+               BcelWorld w = shadow.getWorld();
+               // For methods, push the parts of the signature on.
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getModifiers(w))));
+               list.append(new PUSH(getConstantPoolGen(),sig.getName()));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getDeclaringType())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getParameterTypes())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getParameterNames(w))));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getExceptions(w))));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getReturnType())));
+               // And generate a call to the variant of makeMethodSig() that takes 7 strings
+               list.append(fact.createInvoke(factoryType.getClassName(), 
+                               sig.getSignatureMakerName(),
+                               new ObjectType(sig.getSignatureType()),
+                               new Type[] { Type.STRING,Type.STRING,Type.STRING,Type.STRING,Type.STRING,Type.STRING,Type.STRING },
+                               Constants.INVOKEVIRTUAL));
+       } else if (sig.getKind().equals(Member.HANDLER)) {
+               BcelWorld w = shadow.getWorld();
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getDeclaringType())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getParameterTypes())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getParameterNames(w))));
+               list.append(fact.createInvoke(factoryType.getClassName(),
+                               sig.getSignatureMakerName(),
+                               new ObjectType(sig.getSignatureType()),
+                               new Type[] { Type.STRING, Type.STRING, Type.STRING },
+                               Constants.INVOKEVIRTUAL));      
+       } else if(sig.getKind().equals(Member.CONSTRUCTOR)) {
+               BcelWorld w = shadow.getWorld();
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getModifiers(w))));    
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getDeclaringType())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getParameterTypes())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getParameterNames(w))));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getExceptions(w))));
+               list.append(fact.createInvoke(factoryType.getClassName(),
+                               sig.getSignatureMakerName(),
+                               new ObjectType(sig.getSignatureType()),
+                               new Type[] { Type.STRING, Type.STRING, Type.STRING, Type.STRING, Type.STRING },
+                               Constants.INVOKEVIRTUAL));      
+       } else if(sig.getKind().equals(Member.FIELD)) {
+               BcelWorld w = shadow.getWorld();
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getModifiers(w))));
+               list.append(new PUSH(getConstantPoolGen(),sig.getName()));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getDeclaringType())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getReturnType())));
+               list.append(fact.createInvoke(factoryType.getClassName(),
+                               sig.getSignatureMakerName(),
+                               new ObjectType(sig.getSignatureType()),
+                               new Type[] { Type.STRING, Type.STRING, Type.STRING, Type.STRING },
+                               Constants.INVOKEVIRTUAL));      
+       } else if(sig.getKind().equals(Member.ADVICE)) {
+               BcelWorld w = shadow.getWorld();
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getModifiers(w))));
+               list.append(new PUSH(getConstantPoolGen(),sig.getName()));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getDeclaringType())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getParameterTypes())));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getParameterNames(w))));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getExceptions(w))));
+               list.append(new PUSH(getConstantPoolGen(),makeString((sig.getReturnType()))));                  
+               list.append(fact.createInvoke(factoryType.getClassName(),
+                               sig.getSignatureMakerName(),
+                               new ObjectType(sig.getSignatureType()),
+                               new Type[] { Type.STRING, Type.STRING, Type.STRING, Type.STRING, Type.STRING, Type.STRING, Type.STRING },
+                               Constants.INVOKEVIRTUAL));      
+       } else if(sig.getKind().equals(Member.STATIC_INITIALIZATION)) {
+               BcelWorld w = shadow.getWorld();
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getModifiers(w))));
+               list.append(new PUSH(getConstantPoolGen(),makeString(sig.getDeclaringType())));
+               list.append(fact.createInvoke(factoryType.getClassName(),
+                               sig.getSignatureMakerName(),
+                               new ObjectType(sig.getSignatureType()),
+                               new Type[] { Type.STRING, Type.STRING },
+                               Constants.INVOKEVIRTUAL));
+       } else {
+         list.append(new PUSH(getConstantPoolGen(), sig.getSignatureString(shadow.getWorld())));
+         list.append(fact.createInvoke(factoryType.getClassName(), 
+                                  sig.getSignatureMakerName(),
+                                  new ObjectType(sig.getSignatureType()),
+                                  new Type[] { Type.STRING },
+                                  Constants.INVOKEVIRTUAL));
+       }       
        //XXX should load source location from shadow
        list.append(Utility.createConstant(fact, shadow.getSourceLine()));
 
@@ -973,7 +1047,42 @@ public final class LazyClassGen {
                field.getType(), Constants.PUTSTATIC));
     }
     
-
+    
+    protected String makeString(int i) {
+       return Integer.toString(i, 16);  //??? expensive
+    }
+    
+    
+    protected String makeString(UnresolvedType t) {
+       // this is the inverse of the odd behavior for Class.forName w/ arrays
+       if (t.isArray()) {
+               // this behavior matches the string used by the eclipse compiler for Foo.class literals
+               return t.getSignature().replace('/', '.');
+       } else {
+               return t.getName();
+       }
+    }
+          
+    protected String makeString(UnresolvedType[] types) {
+       if (types == null) return "";
+       StringBuffer buf = new StringBuffer();
+       for (int i = 0, len=types.length; i < len; i++) {
+               buf.append(makeString(types[i]));
+               buf.append(':');
+       }
+       return buf.toString();
+    }
+       
+    protected String makeString(String[] names) {
+       if (names == null) return "";
+       StringBuffer buf = new StringBuffer();
+       for (int i = 0, len=names.length; i < len; i++) {
+               buf.append(names[i]);
+               buf.append(':');
+       }
+       return buf.toString();
+    } 
+       
        public ResolvedType getType() {
                if (myType == null) return null;
                return myType.getResolvedTypeX();
index 11b4e4731b64468758793f780730b0b6273d5c9b..d0d4f15e1e7254d70af1e99103825b197128fed8 100644 (file)
@@ -41,16 +41,26 @@ public class HelloWorld extends java.lang.Object:
                     ALOAD_0
                     LDC "constructor-execution"
                     ALOAD_0
-                    LDC "1--HelloWorld----"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
+                    LDC "1"
+                    LDC "HelloWorld"
+                    LDC ""
+                    LDC ""
+                    LDC ""
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
                     BIPUSH 5
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeESJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$EnclosingStaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_0 Lorg/aspectj/lang/JoinPoint$EnclosingStaticPart;
                     ALOAD_0
                     LDC "method-execution"
                     ALOAD_0
-                    LDC "9-main-HelloWorld-[Ljava.lang.String;:-args:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "9"
+                    LDC "main"
+                    LDC "HelloWorld"
+                    LDC "[Ljava.lang.String;:"
+                    LDC "args:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeESJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$EnclosingStaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_1 Lorg/aspectj/lang/JoinPoint$EnclosingStaticPart;
index 84bc0a28468c9c625c19aaa71ac313614fd6fea2..6f38203d248127d63002ef27e6433e8d712200d8 100644 (file)
@@ -43,32 +43,51 @@ public class HelloWorld extends java.lang.Object:
                     ALOAD_0
                     LDC "constructor-execution"
                     ALOAD_0
-                    LDC "1--HelloWorld----"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
+                    LDC "1"
+                    LDC "HelloWorld"
+                    LDC ""
+                    LDC ""
+                    LDC ""
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
                     BIPUSH 5
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_0 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "field-get"
                     ALOAD_0
-                    LDC "19-out-java.lang.System-java.io.PrintStream-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeFieldSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/FieldSignature;
+                    LDC "19"
+                    LDC "out"
+                    LDC "java.lang.System"
+                    LDC "java.io.PrintStream"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeFieldSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/FieldSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_1 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "method-call"
                     ALOAD_0
-                    LDC "1-println-java.io.PrintStream-java.lang.String:-arg0:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "1"
+                    LDC "println"
+                    LDC "java.io.PrintStream"
+                    LDC "java.lang.String:"
+                    LDC "arg0:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 9
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_2 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "method-execution"
                     ALOAD_0
-                    LDC "9-main-HelloWorld-[Ljava.lang.String;:-args:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "9"
+                    LDC "main"
+                    LDC "HelloWorld"
+                    LDC "[Ljava.lang.String;:"
+                    LDC "args:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_3 Lorg/aspectj/lang/JoinPoint$StaticPart;
index 355f5cbbdb1d51a5a650e64759403469a4c819b1..05cd14d227cf8c5a6ba7c62c88bbedad2792434d 100644 (file)
@@ -77,32 +77,51 @@ public class HelloWorld extends java.lang.Object:
                     ALOAD_0
                     LDC "constructor-execution"
                     ALOAD_0
-                    LDC "1--HelloWorld----"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
+                    LDC "1"
+                    LDC "HelloWorld"
+                    LDC ""
+                    LDC ""
+                    LDC ""
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
                     BIPUSH 5
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_0 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "field-get"
                     ALOAD_0
-                    LDC "19-out-java.lang.System-java.io.PrintStream-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeFieldSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/FieldSignature;
+                    LDC "19"
+                    LDC "out"
+                    LDC "java.lang.System"
+                    LDC "java.io.PrintStream"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeFieldSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/FieldSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_1 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "method-call"
                     ALOAD_0
-                    LDC "1-println-java.io.PrintStream-java.lang.String:-arg0:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "1"
+                    LDC "println"
+                    LDC "java.io.PrintStream"
+                    LDC "java.lang.String:"
+                    LDC "arg0:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 9
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_2 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "method-execution"
                     ALOAD_0
-                    LDC "9-main-HelloWorld-[Ljava.lang.String;:-args:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "9"
+                    LDC "main"
+                    LDC "HelloWorld"
+                    LDC "[Ljava.lang.String;:"
+                    LDC "args:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_3 Lorg/aspectj/lang/JoinPoint$StaticPart;
index 6cb565f843e6dfa069d55cfd8a8cb322aa50c00d..6cb8f4544a7db6150c84201169d69eec0e7362f0 100644 (file)
@@ -77,32 +77,51 @@ public class HelloWorld extends java.lang.Object:
                     ALOAD_0
                     LDC "constructor-execution"
                     ALOAD_0
-                    LDC "1--HelloWorld----"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
+                    LDC "1"
+                    LDC "HelloWorld"
+                    LDC ""
+                    LDC ""
+                    LDC ""
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
                     BIPUSH 5
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_0 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "field-get"
                     ALOAD_0
-                    LDC "19-out-java.lang.System-java.io.PrintStream-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeFieldSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/FieldSignature;
+                    LDC "19"
+                    LDC "out"
+                    LDC "java.lang.System"
+                    LDC "java.io.PrintStream"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeFieldSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/FieldSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_1 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "method-call"
                     ALOAD_0
-                    LDC "1-println-java.io.PrintStream-java.lang.String:-arg0:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "1"
+                    LDC "println"
+                    LDC "java.io.PrintStream"
+                    LDC "java.lang.String:"
+                    LDC "arg0:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 9
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_2 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "method-execution"
                     ALOAD_0
-                    LDC "9-main-HelloWorld-[Ljava.lang.String;:-args:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "9"
+                    LDC "main"
+                    LDC "HelloWorld"
+                    LDC "[Ljava.lang.String;:"
+                    LDC "args:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_3 Lorg/aspectj/lang/JoinPoint$StaticPart;
index 47fdec6bc9e296b9dbfb557976978674297c1427..38b3766ed4a3ab6bddf52213452f71a98c9a6785 100644 (file)
@@ -71,32 +71,51 @@ public class HelloWorld extends java.lang.Object:
                     ALOAD_0
                     LDC "constructor-execution"
                     ALOAD_0
-                    LDC "1--HelloWorld----"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
+                    LDC "1"
+                    LDC "HelloWorld"
+                    LDC ""
+                    LDC ""
+                    LDC ""
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeConstructorSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/ConstructorSignature;
                     BIPUSH 5
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_0 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "field-get"
                     ALOAD_0
-                    LDC "19-out-java.lang.System-java.io.PrintStream-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeFieldSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/FieldSignature;
+                    LDC "19"
+                    LDC "out"
+                    LDC "java.lang.System"
+                    LDC "java.io.PrintStream"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeFieldSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/FieldSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_1 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "method-call"
                     ALOAD_0
-                    LDC "1-println-java.io.PrintStream-java.lang.String:-arg0:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "1"
+                    LDC "println"
+                    LDC "java.io.PrintStream"
+                    LDC "java.lang.String:"
+                    LDC "arg0:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 9
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_2 Lorg/aspectj/lang/JoinPoint$StaticPart;
                     ALOAD_0
                     LDC "method-execution"
                     ALOAD_0
-                    LDC "9-main-HelloWorld-[Ljava.lang.String;:-args:--void-"
-                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
+                    LDC "9"
+                    LDC "main"
+                    LDC "HelloWorld"
+                    LDC "[Ljava.lang.String;:"
+                    LDC "args:"
+                    LDC ""
+                    LDC "void"
+                    INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeMethodSig (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/aspectj/lang/reflect/MethodSignature;
                     BIPUSH 8
                     INVOKEVIRTUAL org.aspectj.runtime.reflect.Factory.makeSJP (Ljava/lang/String;Lorg/aspectj/lang/Signature;I)Lorg/aspectj/lang/JoinPoint$StaticPart;
                     PUTSTATIC HelloWorld.ajc$tjp_3 Lorg/aspectj/lang/JoinPoint$StaticPart;