From 450382735b2dcdb063f0a425dd9ed7810ff6d637 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 20 Jul 2022 14:40:45 +0900 Subject: [PATCH] bigint.c (mrb_bint_to_s): shortcut for bigint zero. --- mrbgems/mruby-bigint/core/bigint.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mrbgems/mruby-bigint/core/bigint.c b/mrbgems/mruby-bigint/core/bigint.c index d984c2fdc..7b42c3935 100644 --- a/mrbgems/mruby-bigint/core/bigint.c +++ b/mrbgems/mruby-bigint/core/bigint.c @@ -1372,6 +1372,9 @@ mrb_value mrb_bint_to_s(mrb_state *mrb, mrb_value x, mrb_int base) { struct RBigint *b = RBIGINT(x); + + if (b->mp.sz == 0) return mrb_str_new_lit(mrb, "0"); + mrb_int len = mpz_sizeinbase(&b->mp, (int)base); mrb_value str = mrb_str_new(mrb, NULL, len+2); mpz_get_str(mrb, RSTRING_PTR(str), len, base, &b->mp);