aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/javassist/expr
diff options
context:
space:
mode:
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>2007-06-02 14:12:36 +0000
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>2007-06-02 14:12:36 +0000
commitb8445cabacd7ab2a9c04bc5936583060f35ef505 (patch)
tree0d3ed708d5c2ef0b2849e45b44d1ec3e250062a5 /src/main/javassist/expr
parent8242ef42ef19f1f6a3f15e9b230f0317067f3863 (diff)
downloadjavassist-b8445cabacd7ab2a9c04bc5936583060f35ef505.tar.gz
javassist-b8445cabacd7ab2a9c04bc5936583060f35ef505.zip
fixed bugs related to stack map tables.
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@378 30ef5769-5b8d-40dd-aea6-55b5d6557bb3
Diffstat (limited to 'src/main/javassist/expr')
-rw-r--r--src/main/javassist/expr/ExprEditor.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/javassist/expr/ExprEditor.java b/src/main/javassist/expr/ExprEditor.java
index 9bba13b7..db9cb437 100644
--- a/src/main/javassist/expr/ExprEditor.java
+++ b/src/main/javassist/expr/ExprEditor.java
@@ -101,12 +101,21 @@ public class ExprEditor {
}
}
- // codeAttr might be modified by other partys
+ // codeAttr might be modified by other partiess
// so I check the current value of max-locals.
if (codeAttr.getMaxLocals() < context.maxLocals)
codeAttr.setMaxLocals(context.maxLocals);
codeAttr.setMaxStack(codeAttr.getMaxStack() + context.maxStack);
+ try {
+ if (edited)
+ minfo.rebuildStackMapIf6(clazz.getClassPool(),
+ clazz.getClassFile2());
+ }
+ catch (BadBytecode b) {
+ throw new CannotCompileException(b.getMessage(), b);
+ }
+
return edited;
}