From 74597c6159a8d5fd40347f9a5643e12ffe54581f Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sun, 20 Mar 2022 18:54:06 +0900 Subject: [PATCH] numeric.c: fix compile errors with `MRB_NO_FLOAT`; fix #5672 --- src/numeric.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/numeric.c b/src/numeric.c index b8161878b..681088d31 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -188,12 +188,9 @@ int_idiv(mrb_state *mrb, mrb_value x) static mrb_value int_quo(mrb_state *mrb, mrb_value x) { - mrb_value y = mrb_get_arg1(mrb); - mrb_int a = mrb_integer(x); - #ifndef MRB_USE_RATIONAL #ifdef MRB_NO_FLOAT - return int_idiv(mrb, xv); + return int_idiv(mrb, x); #else mrb_float y; @@ -201,9 +198,11 @@ int_quo(mrb_state *mrb, mrb_value x) if (y == 0) { mrb_int_zerodiv(mrb); } - return mrb_float_value(mrb, mrb_integer(xv) / y); + return mrb_float_value(mrb, mrb_integer(x) / y); #endif #else + mrb_int a = mrb_integer(x); + mrb_value y = mrb_get_arg1(mrb); if (mrb_integer_p(y) && mrb_class_defined_id(mrb, MRB_SYM(Rational))) { return mrb_rational_new(mrb, a, mrb_integer(y)); }