diff --git a/mpfr.c b/mpfr.c index e1712863..231e6e85 100644 --- a/mpfr.c +++ b/mpfr.c @@ -113,9 +113,11 @@ mpg_node(unsigned int flags) if (flags == MPFN) /* Initialize, set precision to the default precision, and value to NaN */ mpfr_init(r->mpg_numbr); - else + else { /* Initialize and set value to 0 */ mpz_init(r->mpg_i); + printf("debug: mpz_init(%p) %p\n", r, r->mpg_i->_mp_d); + } return r; } @@ -138,6 +140,7 @@ mpg_make_number(double x) } else { r = mpg_integer(); mpz_set_d(r->mpg_i, ival); + printf("debug: mpg_make_number(%p) to %g at %p\n", r, x, r->mpg_i->_mp_d); } return r; } @@ -257,8 +260,11 @@ mpg_zero(NODE *n) if (! is_mpg_integer(n)) { mpz_init(n->mpg_i); /* this also sets its value to 0 */ n->flags |= MPZN; - } else + printf("debug: mpgz_zero(%p) %p\n", n, n->mpg_i->_mp_d); + } else { mpz_set_si(n->mpg_i, 0); + printf("debug: zeroing(%p) %p\n", n, n->mpg_i->_mp_d); + } } @@ -1775,8 +1781,10 @@ mpfr_unset(NODE *n) { if (is_mpg_float(n)) mpfr_clear(n->mpg_numbr); - else if (is_mpg_integer(n)) + else if (is_mpg_integer(n)) { + printf("debug: mpz_clear(%p): %p _mp_alloc %d _mp_size %d mp_d %p\n", n, n->mpg_i, n->mpg_i->_mp_alloc, n->mpg_i->_mp_size, n->mpg_i->_mp_d); mpz_clear(n->mpg_i); + } } #else diff --git a/node.c b/node.c index bcb9a4a5..f28299d6 100644 --- a/node.c +++ b/node.c @@ -496,6 +496,7 @@ make_typed_regex(const char *re, size_t len) void r_unref(NODE *tmp) { + printf("debug: r_unref(%p)\n", tmp); #ifdef GAWKDEBUG /* Do the same as in awk.h:unref(). */ assert(tmp == NULL || tmp->valref > 0); @@ -1039,6 +1040,7 @@ r_getblock(int id) nextfree[id].active++; if (nextfree[id].highwater < nextfree[id].active) nextfree[id].highwater = nextfree[id].active; + printf("debug: r_getblock(size %zu) -> %p\n", nextfree[id].size, res); return res; }