$ ./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