summaryrefslogtreecommitdiff
path: root/mpq/neg.c
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2012-06-01 08:19:24 +0200
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2012-06-01 08:19:24 +0200
commit7254eaa28b343bfc05de46c618f6617ec7de23aa (patch)
tree5ea5188cca613dd4b8a0c941b3be7be468aea4d6 /mpq/neg.c
parentd16b005b490eabeda823c3fb00fef9329a4cf649 (diff)
downloadgmp-7254eaa28b343bfc05de46c618f6617ec7de23aa.tar.gz
mpq: Use more macros and MPZ_REALLOC return value when possible.
Diffstat (limited to 'mpq/neg.c')
-rw-r--r--mpq/neg.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/mpq/neg.c b/mpq/neg.c
index 066daa4c3..a292cced2 100644
--- a/mpq/neg.c
+++ b/mpq/neg.c
@@ -1,6 +1,6 @@
/* mpq_neg -- negate a rational.
-Copyright 2000, 2001 Free Software Foundation, Inc.
+Copyright 2000, 2001, 2012 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -30,16 +30,17 @@ mpq_neg (mpq_ptr dst, mpq_srcptr src)
if (src != dst)
{
- mp_size_t num_abs_size = ABS(num_size);
- mp_size_t den_size = SIZ(DEN(src));
+ mp_size_t size;
+ mp_ptr dp;
- MPZ_REALLOC (mpq_numref(dst), num_abs_size);
- MPZ_REALLOC (mpq_denref(dst), den_size);
+ size = ABS(num_size);
+ dp = MPZ_REALLOC (NUM(dst), size);
+ MPN_COPY (dp, PTR(NUM(src)), size);
- MPN_COPY (PTR(NUM(dst)), PTR(NUM(src)), num_abs_size);
- MPN_COPY (PTR(DEN(dst)), PTR(DEN(src)), den_size);
-
- SIZ(DEN(dst)) = den_size;
+ size = SIZ(DEN(src));
+ dp = MPZ_REALLOC (DEN(dst), size);
+ SIZ(DEN(dst)) = size;
+ MPN_COPY (dp, PTR(DEN(src)), size);
}
SIZ(NUM(dst)) = -num_size;