diff options
author | Torbjorn Granlund <tege@gmplib.org> | 2014-06-16 15:46:27 +0200 |
---|---|---|
committer | Torbjorn Granlund <tege@gmplib.org> | 2014-06-16 15:46:27 +0200 |
commit | cbf97afdfb7202eebb85983865577c832f0f9316 (patch) | |
tree | 01c5a5575aa5bec249c139f180585e885030c6b5 | |
parent | e771abaf17c19bbd72f34a5d5528c97e00c4bfee (diff) | |
download | gmp-cbf97afdfb7202eebb85983865577c832f0f9316.tar.gz |
Postpone TMP_MARK.
-rw-r--r-- | mpf/mul.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -38,9 +38,7 @@ mpf_mul (mpf_ptr r, mpf_srcptr u, mpf_srcptr v) mp_size_t usize, vsize; mp_size_t sign_product; mp_size_t prec = r->_mp_prec; - TMP_DECL; - TMP_MARK; usize = u->_mp_size; vsize = v->_mp_size; sign_product = usize ^ vsize; @@ -72,7 +70,9 @@ mpf_mul (mpf_ptr r, mpf_srcptr u, mpf_srcptr v) mp_limb_t cy_limb; mp_ptr rp, tp; mp_size_t adj; + TMP_DECL; + TMP_MARK; rsize = usize + vsize; tp = TMP_ALLOC_LIMBS (rsize); cy_limb = (usize >= vsize @@ -91,6 +91,7 @@ mpf_mul (mpf_ptr r, mpf_srcptr u, mpf_srcptr v) MPN_COPY (rp, tp, rsize); r->_mp_exp = u->_mp_exp + v->_mp_exp - adj; r->_mp_size = sign_product >= 0 ? rsize : -rsize; + + TMP_FREE; } - TMP_FREE; } |