summaryrefslogtreecommitdiffstatshomepage
path: root/py/mpz.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/mpz.c')
-rw-r--r--py/mpz.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/py/mpz.c b/py/mpz.c
index a6b024ca87..b42e96ee18 100644
--- a/py/mpz.c
+++ b/py/mpz.c
@@ -1255,7 +1255,7 @@ uint mpz_as_str_inpl(const mpz_t *i, uint base, const char *prefix, char base_ch
return s - str;
}
- // make a copy of mpz digits
+ // make a copy of mpz digits, so we can do the div/mod calculation
mpz_dig_t *dig = m_new(mpz_dig_t, ilen);
memcpy(dig, i->dig, ilen * sizeof(mpz_dig_t));
@@ -1295,6 +1295,9 @@ uint mpz_as_str_inpl(const mpz_t *i, uint base, const char *prefix, char base_ch
}
while (!done);
+ // free the copy of the digits array
+ m_del(mpz_dig_t, dig, ilen);
+
if (prefix) {
const char *p = &prefix[strlen(prefix)];
while (p > prefix) {