diff options
Diffstat (limited to 'extension')
-rw-r--r-- | extension/ChangeLog | 5 | ||||
-rw-r--r-- | extension/intdiv.c | 11 |
2 files changed, 8 insertions, 8 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog index 7b924399..1a018897 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,8 @@ +2020-07-26 Arnold D. Robbins <arnold@skeeve.com> + + * intdiv.c (do_intdiv): Change quotient and remainder to + local variables. No need to allocate/free them via the API. + 2020-07-22 Arnold D. Robbins <arnold@skeeve.com> * configure.ac: Use parent directory's m4 and build-aux. diff --git a/extension/intdiv.c b/extension/intdiv.c index 34b19a02..94c970ed 100644 --- a/extension/intdiv.c +++ b/extension/intdiv.c @@ -191,7 +191,7 @@ do_intdiv(int nargs, awk_value_t *result, struct awk_ext_func *unused) /* extended precision */ mpz_ptr numer, denom; mpz_t numer_tmp, denom_tmp; - mpz_ptr quotient, remainder; + mpz_t quotient, remainder; /* convert numerator and denominator to integer */ if (!(numer = mpz_conv(&nv, numer_tmp))) { @@ -213,9 +213,8 @@ do_intdiv(int nargs, awk_value_t *result, struct awk_ext_func *unused) return make_number(-1, result); } - /* ask gawk to allocate return values for us */ - quotient = get_mpz_ptr(); - remainder = get_mpz_ptr(); + mpz_init(quotient); + mpz_init(remainder); /* do the division */ mpz_tdiv_qr(quotient, remainder, numer, denom); @@ -223,12 +222,8 @@ do_intdiv(int nargs, awk_value_t *result, struct awk_ext_func *unused) array_set_mpz(array, "quotient", 8, quotient); array_set_mpz(array, "remainder", 9, remainder); - /* values were copied, so release out local ones */ mpz_clear(quotient); - gawk_free(quotient); - mpz_clear(remainder); - gawk_free(remainder); /* release temporary variables */ if (numer == numer_tmp) |