diff --git a/jode/ChangeLog b/jode/ChangeLog index 08664b9..eda1998 100644 --- a/jode/ChangeLog +++ b/jode/ChangeLog @@ -1,3 +1,8 @@ +2001-05-02 Jochen Hoenicke + + * jode/obfuscator/modules/ConstantAnalyzer.java.in (handleOpcode): + Added divide by zero checks for opc_irem and opc_lrem. + 2001-04-10 Jochen Hoenicke * jode/decompiler/Main.java (usage): Reworked usage message. diff --git a/jode/jode/obfuscator/modules/ConstantAnalyzer.java.in b/jode/jode/obfuscator/modules/ConstantAnalyzer.java.in index f93db63..595d1b3 100644 --- a/jode/jode/obfuscator/modules/ConstantAnalyzer.java.in +++ b/jode/jode/obfuscator/modules/ConstantAnalyzer.java.in @@ -734,9 +734,9 @@ public class ConstantAnalyzer implements Opcodes, CodeAnalyzer { boolean known = value1.value != ConstValue.VOLATILE && value2.value != ConstValue.VOLATILE; if (known) { - if ((opcode == opc_idiv + if (((opcode == opc_idiv || opcode == opc_irem) && ((Integer)value2.value).intValue() == 0) - || (opcode == opc_ldiv + || ((opcode == opc_ldiv || opcode == opc_lrem) && ((Long)value2.value).longValue() == 0)) known = false; }