summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-09-03 21:13:19 +0900
committerYukihiro Matsumoto <[email protected]>2012-09-03 21:13:19 +0900
commit7d1673276c17db67e33387d5c54e1b584d5f0dbc (patch)
treeea46ef8df40778791b7ad689e8769bf9261f2843
parentdabe3ca0c72cdddd18faf184203387c732dd696c (diff)
downloadmruby-7d1673276c17db67e33387d5c54e1b584d5f0dbc.tar.gz
mruby-7d1673276c17db67e33387d5c54e1b584d5f0dbc.zip
zero check before overflow check devision; close #446
-rw-r--r--src/vm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/vm.c b/src/vm.c
index 62594358d..04a65f26e 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1360,7 +1360,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
x = mrb_fixnum(regs[a]);
y = mrb_fixnum(regs[a+1]);
z = x * y;
- if (z/x != y) {
+ if (x != 0 && z/x != y) {
regs[a] = mrb_float_value((mrb_float)x * (mrb_float)y);
}
else {