[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