You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2007/09/04 11:07:38 UTC

svn commit: r572587 - /felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java

Author: cziegeler
Date: Tue Sep  4 02:07:37 2007
New Revision: 572587

URL: http://svn.apache.org/viewvc?rev=572587&view=rev
Log:
Correct byte code generation: calculate max frames and locals by hand (they're constant anyway) to avoid altering the existing byte code; fix putfield operation.

Modified:
    felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java

Modified: felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java?rev=572587&r1=572586&r2=572587&view=diff
==============================================================================
--- felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java (original)
+++ felix/trunk/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java Tue Sep  4 02:07:37 2007
@@ -247,7 +247,7 @@
             final ClassReader reader = new ClassReader(new FileInputStream(fileName));
             reader.accept(cn, 0);
 
-            final ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_FRAMES);
+            final ClassWriter writer = new ClassWriter(0);
             cn.accept(writer);
             if ( createBind ) {
                 this.createMethod(writer, propertyName, className, true);
@@ -274,9 +274,9 @@
         } else {
             mv.visitInsn(Opcodes.ACONST_NULL);
         }
-        mv.visitFieldInsn(Opcodes.PUTFIELD, this.getName(), propertyName, type.toString());
+        mv.visitFieldInsn(Opcodes.PUTFIELD, this.getName().replace('.', '/'), propertyName, type.toString());
         mv.visitInsn(Opcodes.RETURN);
-        mv.visitMaxs(0, 0);
+        mv.visitMaxs(2, 2);
         // add to qdox
         final JavaParameter param = new JavaParameter(new Type(typeName), "param");
         final JavaParameter[] params = new JavaParameter[] {param};