diff options
Diffstat (limited to 'mpf')
-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; } |