[jboss-cvs] JBossAS SVN: r60419 - projects/aop/trunk/aop/src/main/org/jboss/aop/instrument.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Feb 7 20:34:29 EST 2007


Author: flavia.rainone at jboss.com
Date: 2007-02-07 20:34:28 -0500 (Wed, 07 Feb 2007)
New Revision: 60419

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedBehaviourInvocations.java
Log:
[JBAOP-352] Little optimization: don't update typed args when it may not be necessary.

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedBehaviourInvocations.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedBehaviourInvocations.java	2007-02-08 01:32:48 UTC (rev 60418)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/instrument/OptimizedBehaviourInvocations.java	2007-02-08 01:34:28 UTC (rev 60419)
@@ -27,10 +27,10 @@
 import javassist.CtField;
 import javassist.CtMethod;
 import javassist.CtNewMethod;
-import javassist.CtPrimitiveType;
 import javassist.Modifier;
 import javassist.NotFoundException;
 
+import org.jboss.aop.joinpoint.MethodInvocation;
 import org.jboss.aop.util.JavassistToReflect;
 
 /**
@@ -170,44 +170,13 @@
    private static void addSetArguments(ClassPool pool, CtClass invocation, CtClass[] params)throws NotFoundException, CannotCompileException 
    {
       if (params.length == 0) return;
-      CtClass methodInvocation = pool.get("org.jboss.aop.joinpoint.MethodInvocation");
+      CtClass methodInvocation = pool.get(MethodInvocation.class.getName());
       CtMethod template = methodInvocation.getDeclaredMethod(SET_ARGUMENTS);
    
       StringBuffer code = new StringBuffer("{");
-      code.append("   inconsistentArgs = false;");
+      code.append("   inconsistentArgs = true;");
       code.append("   arguments = $1; ");
-      for (int i = 0; i < params.length; i++)
-      {
-         if (params[i].isPrimitive())
-         {
-            CtPrimitiveType primitive = (CtPrimitiveType) params[i];
-            code.append("   arg");
-            code.append(i);
-            code.append(" = ((");
-            code.append(primitive.getWrapperName());
-            code.append(")$1[");
-            code.append(i);
-            code.append("]).");
-            code.append(primitive.getGetMethodName());
-            code.append("(); ");
-         }
-         else
-         {
-            code.append("   Object warg");
-            code.append(i);
-            code.append(" = $1[");
-            code.append(i);
-            code.append("]; ");
-            code.append("   arg");
-            code.append(i);
-            code.append(" = (");
-            code.append(params[i].getName());
-            code.append(")warg");
-            code.append(i);
-            code.append("; ");
-         }
-      }
-      code.append("   inconsistentArgs = false;");
+      code.append("   inconsistentArgs = true;");
       code.append("}");
       CtMethod setArguments = null;
       try
@@ -230,8 +199,8 @@
    private static void addGetArguments(ClassPool pool, CtClass invocation, CtClass[] params, boolean hasMarshalledArguments) throws CannotCompileException
    {
       try {
-         CtClass superInvocation = invocation.getSuperclass();
-         CtMethod template = superInvocation.getDeclaredMethod(GET_ARGUMENTS);
+         CtClass methodInvocation = pool.get(MethodInvocation.class.getName());
+         CtMethod template = methodInvocation.getDeclaredMethod(GET_ARGUMENTS);
          
          StringBuffer code = new StringBuffer();
          code.append("{ ");




More information about the jboss-cvs-commits mailing list