Simplify `mrb_num_div_int()`.

parent 3107d1ca
...@@ -118,23 +118,12 @@ mrb_num_div_int(mrb_state *mrb, mrb_int x, mrb_int y) ...@@ -118,23 +118,12 @@ mrb_num_div_int(mrb_state *mrb, mrb_int x, mrb_int y)
int_overflow(mrb, "division"); int_overflow(mrb, "division");
} }
else { else {
mrb_int div, mod; mrb_int div = x / y;
if (y < 0) { if (div < 0) {
if (x < 0) if (x != div * y) {
div = -x / -y; div -= 1;
else }
div = - (x / -y);
}
else {
if (x < 0)
div = - (-x / y);
else
div = x / y;
}
mod = x - div * y;
if ((mod < 0 && y > 0) || (mod > 0 && y < 0)) {
div -= 1;
} }
return div; return div;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment