[Gmp-commit] /var/hg/gmp: mini-gmp: In mpz_get_string, call mpz_sizeinbase on...

mercurial at gmplib.org mercurial at gmplib.org
Thu Oct 8 22:56:52 CEST 2026


details:   /var/hg/gmp/rev/33db65e2da2e
changeset: 18591:33db65e2da2e
user:      Niels Möller <nisse at lysator.liu.se>
date:      Thu Oct 08 22:56:44 2026 +0200
description:
mini-gmp: In mpz_get_string, call mpz_sizeinbase only when needed for allocation.

diffstat:

 mini-gmp/ChangeLog  |  6 ++++++
 mini-gmp/mini-gmp.c |  3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

diffs (28 lines):

diff -r b1b63a9b9220 -r 33db65e2da2e mini-gmp/ChangeLog
--- a/mini-gmp/ChangeLog	Sun Sep 20 20:02:16 2026 +0200
+++ b/mini-gmp/ChangeLog	Thu Oct 08 22:56:44 2026 +0200
@@ -1,3 +1,9 @@
+2026-10-08  Niels Möller  <nisse at lysator.liu.se>
+
+	From Pádraig Brady:
+	* mini-gmp.c (mpz_get_str): The expensive mpz_sizeinbase() call is
+	unneeded when a buffer is supplied.
+
 2026-07-12  Marco Bodrato <marco.bodrato at protonmail.com>
 
 	* mini-gmp.c (mpz_perfect_square_root): New function.
diff -r b1b63a9b9220 -r 33db65e2da2e mini-gmp/mini-gmp.c
--- a/mini-gmp/mini-gmp.c	Sun Sep 20 20:02:16 2026 +0200
+++ b/mini-gmp/mini-gmp.c	Thu Oct 08 22:56:44 2026 +0200
@@ -4332,10 +4332,9 @@
 	return NULL;
     }
 
-  sn = 1 + mpz_sizeinbase (u, base);
   if (!sp)
     {
-      osn = 1 + sn;
+      osn = 2 + mpz_sizeinbase (u, base);
       sp = (char *) gmp_alloc (osn);
     }
   else


More information about the gmp-commit mailing list