From 37a18847494fcf1ed380f644dc9c6533ec8d2738 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 17 Nov 2020 00:24:43 +0900 Subject: Simplify `mrb_num_div_int()`. --- src/numeric.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/numeric.c b/src/numeric.c index e4fea8455..f8d646594 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -118,23 +118,12 @@ mrb_num_div_int(mrb_state *mrb, mrb_int x, mrb_int y) int_overflow(mrb, "division"); } else { - mrb_int div, mod; + mrb_int div = x / y; - if (y < 0) { - if (x < 0) - div = -x / -y; - 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; + if (div < 0) { + if (x != div * y) { + div -= 1; + } } return div; } -- cgit v1.2.3