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