mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 04:57:00 -04:00
prevent crash with div 0 and mod 0
This commit is contained in:
@@ -504,14 +504,16 @@ void instrBinary (BinaryInstructionType i, ScriptValueP& a, const ScriptValueP&
|
||||
a = to_script(a->toDouble() / b->toDouble());
|
||||
break;
|
||||
case I_DIV:
|
||||
if (at == SCRIPT_DOUBLE || bt == SCRIPT_DOUBLE) {
|
||||
if (b->toDouble() == 0.0) a = to_script(a->toDouble() / b->toDouble());
|
||||
else if (at == SCRIPT_DOUBLE || bt == SCRIPT_DOUBLE) {
|
||||
a = to_script((int)(a->toDouble() / b->toDouble()));
|
||||
} else {
|
||||
a = to_script(a->toInt() / b->toInt());
|
||||
}
|
||||
break;
|
||||
case I_MOD:
|
||||
if (at == SCRIPT_DOUBLE || bt == SCRIPT_DOUBLE) {
|
||||
if (b->toDouble() == 0.0) a = to_script(a->toDouble() / b->toDouble());
|
||||
else if (at == SCRIPT_DOUBLE || bt == SCRIPT_DOUBLE) {
|
||||
a = to_script(fmod(a->toDouble(), b->toDouble()));
|
||||
} else {
|
||||
a = to_script(a->toInt() % b->toInt());
|
||||
|
||||
Reference in New Issue
Block a user