aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/javassist/bytecode/stackmap/MapMaker.java
diff options
context:
space:
mode:
authorchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>2009-11-08 14:53:47 +0000
committerchiba <chiba@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>2009-11-08 14:53:47 +0000
commit24f91de8b90ff7beae305dd4df4c9a5f0c8879e1 (patch)
tree5c8be7f0e20557ad570d37e47227d7e4ff167add /src/main/javassist/bytecode/stackmap/MapMaker.java
parentceca8f6f36a9e0b7f40bd73730000f377ec925d1 (diff)
downloadjavassist-24f91de8b90ff7beae305dd4df4c9a5f0c8879e1.tar.gz
javassist-24f91de8b90ff7beae305dd4df4c9a5f0c8879e1.zip
for JIRA JASSIST-95
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@502 30ef5769-5b8d-40dd-aea6-55b5d6557bb3
Diffstat (limited to 'src/main/javassist/bytecode/stackmap/MapMaker.java')
-rw-r--r--src/main/javassist/bytecode/stackmap/MapMaker.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/javassist/bytecode/stackmap/MapMaker.java b/src/main/javassist/bytecode/stackmap/MapMaker.java
index 6d2bf685..92cd37c6 100644
--- a/src/main/javassist/bytecode/stackmap/MapMaker.java
+++ b/src/main/javassist/bytecode/stackmap/MapMaker.java
@@ -502,7 +502,16 @@ public class MapMaker extends Tracer {
}
private void writeVerifyTypeInfo(StackMap.Writer writer, ConstPool cp, TypeData[] types, int num) {
- writer.write16bit(num);
+ int numDWord = 0;
+ for (int i = 0; i < num; i++) {
+ TypeData td = types[i];
+ if (td != null && td.is2WordType()) {
+ numDWord++;
+ i++;
+ }
+ }
+
+ writer.write16bit(num - numDWord);
for (int i = 0; i < num; i++) {
TypeData td = types[i];
if (td == TOP)