From 52e1ebe191819ea20d9c3ed79cd9b44028ecfcf9 Mon Sep 17 00:00:00 2001 From: Hoshiumi Arata Date: Wed, 11 Dec 2024 20:58:03 +0900 Subject: [PATCH] mruby-bigint: handle rhs bigint in int_mod and int_divmod functions --- src/numeric.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/numeric.c b/src/numeric.c index bfa8465f3..9fe516b10 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -1111,6 +1111,9 @@ int_mod(mrb_state *mrb, mrb_value x) if (mrb_bigint_p(x)) { return mrb_bint_mod(mrb, x, y); } + if (mrb_bigint_p(y)) { + return mrb_bint_mod(mrb, mrb_as_bint(mrb, x), y); + } #endif a = mrb_integer(x); if (a == 0) return x; @@ -1159,6 +1162,9 @@ int_divmod(mrb_state *mrb, mrb_value x) #endif return mrb_bint_divmod(mrb, x, y); } + if (mrb_bigint_p(y)) { + return mrb_bint_divmod(mrb, mrb_as_bint(mrb, x), y); + } #endif if (mrb_integer_p(y)) { mrb_int div, mod;