[seam-commits] Seam SVN: r15168 - branches/enterprise/JBPAPP_5_1_2_ER2_JBPAPP-10031/src/main/org/jboss/seam/util.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Wed Sep 26 17:42:23 EDT 2012


Author: ivassile
Date: 2012-09-26 17:42:22 -0400 (Wed, 26 Sep 2012)
New Revision: 15168

Modified:
   branches/enterprise/JBPAPP_5_1_2_ER2_JBPAPP-10031/src/main/org/jboss/seam/util/ProxyFactory.java
Log:
Porting changes:
sorted out some compiler warnings (13909)
JBSEAM-4840 aplied JAVASSIST fix for JASSIST-66 (14240)

Modified: branches/enterprise/JBPAPP_5_1_2_ER2_JBPAPP-10031/src/main/org/jboss/seam/util/ProxyFactory.java
===================================================================
--- branches/enterprise/JBPAPP_5_1_2_ER2_JBPAPP-10031/src/main/org/jboss/seam/util/ProxyFactory.java	2012-09-26 19:44:03 UTC (rev 15167)
+++ branches/enterprise/JBPAPP_5_1_2_ER2_JBPAPP-10031/src/main/org/jboss/seam/util/ProxyFactory.java	2012-09-26 21:42:22 UTC (rev 15168)
@@ -199,9 +199,11 @@
             proxyClass = null;
         }
 
-        public int hashCode() { return hash; }
+      @Override
+      public int hashCode() { return hash; }
 
-        public boolean equals(Object obj) {
+      @Override
+      public boolean equals(Object obj) {
             if (obj instanceof CacheKey) {
                 CacheKey target = (CacheKey)obj;
                 return target.filter == filter && target.handler == handler
@@ -561,7 +563,7 @@
         cf.addField(finfo3);
 
         HashMap allMethods = getMethods(superClass, interfaces);
-        int size = allMethods.size();
+        //int size = allMethods.size();
         makeConstructors(classname, cf, pool, classname);
         int s = overrideMethods(cf, pool, classname, allMethods);
         addMethodsHolder(cf, pool, classname, s);
@@ -858,6 +860,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 +873,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 +896,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 +998,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