aboutsummaryrefslogtreecommitdiffstats
path: root/extension/intdiv.c
diff options
context:
space:
mode:
Diffstat (limited to 'extension/intdiv.c')
-rw-r--r--extension/intdiv.c11
1 files changed, 3 insertions, 8 deletions
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)