aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/javassist/CtBehavior.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/javassist/CtBehavior.java')
-rw-r--r--src/main/javassist/CtBehavior.java7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/main/javassist/CtBehavior.java b/src/main/javassist/CtBehavior.java
index 92759e6f..7bde7ae6 100644
--- a/src/main/javassist/CtBehavior.java
+++ b/src/main/javassist/CtBehavior.java
@@ -799,10 +799,12 @@ public abstract class CtBehavior extends CtMember {
jv.recordLocalVariables(ca, index);
jv.recordParams(getParameterTypes(),
Modifier.isStatic(getModifiers()));
+ jv.setMaxLocals(ca.getMaxLocals());
jv.compileStmnt(src);
Bytecode b = jv.getBytecode();
- int stack = b.getMaxStack();
int locals = b.getMaxLocals();
+ int stack = b.getMaxStack();
+ ca.setMaxLocals(locals);
/* We assume that there is no values in the operand stack
* at the position where the bytecode is inserted.
@@ -810,9 +812,6 @@ public abstract class CtBehavior extends CtMember {
if (stack > ca.getMaxStack())
ca.setMaxStack(stack);
- if (locals > ca.getMaxLocals())
- ca.setMaxLocals(locals);
-
iterator.insert(index, b.get());
iterator.insert(b.getExceptionTable(), index);
return lineNum;