From bf2db1ed2bf9f8f0ff734984178c73ef3418a26a Mon Sep 17 00:00:00 2001 From: dearblue Date: Sun, 21 Jan 2024 10:59:06 +0900 Subject: [PATCH] Check `mrb_bigint_p()` before `mrb_integer()` --- src/numeric.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/numeric.c b/src/numeric.c index 743cdb3ae..4ad523f22 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -1976,7 +1976,6 @@ MRB_API mrb_value mrb_integer_to_str(mrb_state *mrb, mrb_value x, mrb_int base) { char buf[MRB_INT_BIT+1]; - mrb_int val = mrb_integer(x); if (base < 2 || 36 < base) { mrb_raisef(mrb, E_ARGUMENT_ERROR, "invalid radix %i", base); @@ -1986,6 +1985,7 @@ mrb_integer_to_str(mrb_state *mrb, mrb_value x, mrb_int base) return mrb_bint_to_s(mrb, x, base); } #endif + mrb_int val = mrb_integer(x); const char *p = mrb_int_to_cstr(buf, sizeof(buf), val, base); mrb_assert(p != NULL); mrb_value str = mrb_str_new_cstr(mrb, p);