bug fix. Didn't check for division by zero
This commit is contained in:
@@ -330,7 +330,14 @@ static Object *do_math_op(Object *lop, Object *rop, Opcode opcode, Heap *heap, E
|
|||||||
case OPCODE_ADD: (z) = (x) + (y); break; \
|
case OPCODE_ADD: (z) = (x) + (y); break; \
|
||||||
case OPCODE_SUB: (z) = (x) - (y); break; \
|
case OPCODE_SUB: (z) = (x) - (y); break; \
|
||||||
case OPCODE_MUL: (z) = (x) * (y); break; \
|
case OPCODE_MUL: (z) = (x) * (y); break; \
|
||||||
case OPCODE_DIV: (z) = (x) / (y); break; \
|
case OPCODE_DIV: \
|
||||||
|
if((y) == 0) \
|
||||||
|
{ \
|
||||||
|
Error_Report(error, 0, "Division by zero"); \
|
||||||
|
return NULL; \
|
||||||
|
} \
|
||||||
|
(z) = (x) / (y); \
|
||||||
|
break; \
|
||||||
default: assert(0); break; \
|
default: assert(0); break; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user