summaryrefslogtreecommitdiff
path: root/mpf
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2014-06-16 15:46:27 +0200
committerTorbjorn Granlund <tege@gmplib.org>2014-06-16 15:46:27 +0200
commitcbf97afdfb7202eebb85983865577c832f0f9316 (patch)
tree01c5a5575aa5bec249c139f180585e885030c6b5 /mpf
parente771abaf17c19bbd72f34a5d5528c97e00c4bfee (diff)
downloadgmp-cbf97afdfb7202eebb85983865577c832f0f9316.tar.gz
Postpone TMP_MARK.
Diffstat (limited to 'mpf')
-rw-r--r--mpf/mul.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/mpf/mul.c b/mpf/mul.c
index 41d1db7c1..5bde28c4b 100644
--- a/mpf/mul.c
+++ b/mpf/mul.c
@@ -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;
}