[seam-commits] Seam SVN: r15231 - branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Tue Oct 9 06:00:25 EDT 2012
Author: manaRH
Date: 2012-10-09 06:00:25 -0400 (Tue, 09 Oct 2012)
New Revision: 15231
Modified:
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util/ProxyFactory.java
Log:
JBPAPP-10130 updated ProxyFactory with javassist patch
Modified: branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util/ProxyFactory.java
===================================================================
--- branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util/ProxyFactory.java 2012-10-09 09:55:00 UTC (rev 15230)
+++ branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/util/ProxyFactory.java 2012-10-09 10:00:25 UTC (rev 15231)
@@ -858,6 +858,9 @@
code.addGetstatic(thisClassName, HOLDER, HOLDER_TYPE);
code.addAstore(arrayVar);
code.addAload(arrayVar);
+
+ callFind2Methods(code, meth.getName(), delegatorName, origIndex, desc, arrayVar);
+ /*
code.addIconst(origIndex);
code.addOpcode(Opcode.AALOAD);
code.addOpcode(Opcode.IFNONNULL);
@@ -868,7 +871,7 @@
callFindMethod(code, "findMethod", arrayVar, delIndex, delegatorName, desc);
int pc2 = code.currentPc();
- code.write16bit(pc, pc2 - pc + 1);
+ code.write16bit(pc, pc2 - pc + 1);*/
code.addAload(0);
code.addGetfield(thisClassName, HANDLER, HANDLER_TYPE);
code.addAload(0);
@@ -891,10 +894,10 @@
CodeAttribute ca = code.toCodeAttribute();
forwarder.setCodeAttribute(ca);
- StackMapTable.Writer writer = new StackMapTable.Writer(32);
+ /*StackMapTable.Writer writer = new StackMapTable.Writer(32);
writer.appendFrame(pc2, new int[] { StackMapTable.OBJECT },
new int[] { cp.addClassInfo(HOLDER_TYPE) });
- ca.setAttribute(writer.toStackMapTable(cp));
+ ca.setAttribute(writer.toStackMapTable(cp));*/
return forwarder;
}
@@ -993,6 +996,27 @@
}
}
+ private static void callFind2Methods(Bytecode code, String superMethod, String thisMethod,
+ int index, String desc, int arrayVar)
+ {
+ String findClass = RuntimeSupport.class.getName();
+ String findDesc = "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/reflect/Method;)V";
+ code.addAload(0);
+ code.addLdc(superMethod);
+ if (thisMethod == null)
+ {
+ code.addOpcode(Opcode.ACONST_NULL);
+ }
+ else
+ {
+ code.addLdc(thisMethod);
+ }
+ code.addIconst(index);
+ code.addLdc(desc);
+ code.addAload(arrayVar);
+ code.addInvokestatic(findClass, "find2Methods", findDesc);
+ }
+
private static int makeWrapper(Bytecode code, Class type, int regno) {
int index = FactoryHelper.typeIndex(type);
String wrapper = FactoryHelper.wrapperTypes[index];
More information about the seam-commits
mailing list