diff options
Diffstat (limited to 'src/main/java/org/apache/bcel/generic/IINC.java')
-rw-r--r-- | src/main/java/org/apache/bcel/generic/IINC.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/org/apache/bcel/generic/IINC.java b/src/main/java/org/apache/bcel/generic/IINC.java index 7efbb8ec..c01e8b1a 100644 --- a/src/main/java/org/apache/bcel/generic/IINC.java +++ b/src/main/java/org/apache/bcel/generic/IINC.java @@ -75,7 +75,12 @@ public class IINC extends LocalVariableInstruction { private void setWide() { - wide = (super.getIndex() > org.apache.bcel.Const.MAX_BYTE) || (Math.abs(c) > Byte.MAX_VALUE); + wide = (super.getIndex() > org.apache.bcel.Const.MAX_BYTE); + if (c > 0) { + wide = wide || (c > Byte.MAX_VALUE); + } else { + wide = wide || (c < Byte.MIN_VALUE); + } if (wide) { super.setLength(6); // wide byte included } else { |