From df098385033e1a97c388d055befee4652e4c1ff0 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 25 Apr 2022 10:02:54 +0900 Subject: [PATCH] numeric.c: mrb_float_to_integer can return a big integer. --- src/numeric.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/numeric.c b/src/numeric.c index 08599901b..c84ce47d7 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -1571,7 +1571,11 @@ mrb_float_to_integer(mrb_state *mrb, mrb_value x) z = (mrb_int)d; } else { +#ifdef MRB_USE_BIGINT + return mrb_bint_new_float(mrb, d); +#else mrb_raisef(mrb, E_RANGE_ERROR, "number (%v) too big for integer", x); +#endif } } return mrb_int_value(mrb, z);