$ ./configure --without-libgmp --quiet
  $ dd bs=64k count=1 if=/dev/urandom of=58.in

  $ time src/basenc-before --base58 58.in >/dev/null
  real  0m6.588s

  $ time src/basenc-after --base58 58.in >/dev/null
  real  0m3.463s

* src/basenc.c (base58_encode): Remove an affirm that is very expensive
in the minigmp implementation.  Essentially the same affirm was done
at the start of the function anyway.
---
 src/basenc.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/basenc.c b/src/basenc.c
index a9c9f2f30..8aaef0d8b 100644
--- a/src/basenc.c
+++ b/src/basenc.c
@@ -1289,7 +1289,6 @@ base58_encode (char const *data, size_t data_len,
   if (data_len - zeros)
     {
       mpz_import (num, data_len - zeros, 1, 1, 0, 0, data + zeros);
-      affirm (mpz_sizeinbase (num, 58) + 1 <= *outlen);
       for (p = mpz_get_str (p, 58, num); *p; p++)
         *p = gmp_to_base58[to_uchar (*p)];
     }
-- 
2.55.0


Reply via email to