aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/apache/bcel/generic/IINC.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/apache/bcel/generic/IINC.java')
-rw-r--r--src/main/java/org/apache/bcel/generic/IINC.java7
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 {