You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ko...@apache.org on 2006/01/04 08:18:20 UTC

svn commit: r365847 - in /jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm: ContinuationMethodAdapter.java ContinuationMethodAnalyzer.java

Author: kohsuke
Date: Tue Jan  3 23:18:16 2006
New Revision: 365847

URL: http://svn.apache.org/viewcvs?rev=365847&view=rev
Log:
applied a patch from Eugene Kuleshov

Modified:
    jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAdapter.java
    jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAnalyzer.java

Modified: jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAdapter.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAdapter.java?rev=365847&r1=365846&r2=365847&view=diff
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAdapter.java (original)
+++ jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAdapter.java Tue Jan  3 23:18:16 2006
@@ -56,7 +56,7 @@
     this.analyzer = a.analyzer;
     this.labels = a.labels;
     this.nodes = a.nodes;
-    this.stackRecorderVar = a.maxLocals;
+    this.stackRecorderVar = a.stackRecorderVar;
     this.isStatic = (a.access & ACC_STATIC)>0;
     this.methodDesc = a.desc;
   }

Modified: jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAnalyzer.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAnalyzer.java?rev=365847&r1=365846&r2=365847&view=diff
==============================================================================
--- jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAnalyzer.java (original)
+++ jakarta/commons/sandbox/javaflow/trunk/src/java/org/apache/commons/javaflow/bytecode/transformation/asm/ContinuationMethodAnalyzer.java Tue Jan  3 23:18:16 2006
@@ -56,6 +56,7 @@
     protected final List methods = new ArrayList();
 
     protected Analyzer analyzer;
+    public int stackRecorderVar;
 
 
     public ContinuationMethodAnalyzer(String className, ClassVisitor cv,
@@ -86,6 +87,7 @@
           return;
         }
 
+        this.stackRecorderVar = maxLocals;
         try {
           moveNew();
 
@@ -147,7 +149,7 @@
           MethodInsnNode mnode = (MethodInsnNode) e.getValue();
           int nm = instructions.indexOf(mnode);
 
-          int varOffset = maxLocals+1;
+          int varOffset = stackRecorderVar+1;
           Type[] args = Type.getArgumentTypes(mnode.desc);
 
           // save stack
@@ -156,7 +158,9 @@
               instructions.add(nm++, new VarInsnNode(type.getOpcode(ISTORE), varOffset));
               varOffset += type.getSize();
           }
-          maxLocals = varOffset;
+          if(varOffset>maxLocals) {
+              maxLocals = varOffset;
+          }
 
           instructions.add(nm++, node1);  // NEW
           if(hasCopy) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org