[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master a1b7956: Simplify float_arith_driver
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master a1b7956: Simplify float_arith_driver |
Date: |
Sat, 18 Aug 2018 23:47:44 -0400 (EDT) |
branch: master
commit a1b79567a8253a8e8a1ceed02145a64b87a4768d
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Simplify float_arith_driver
* src/data.c (float_arith_driver): Simplify, as we needn’t
worry about that 30-year-old compiler bug any more.
---
src/data.c | 20 ++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)
diff --git a/src/data.c b/src/data.c
index 7a8179e..5ef0ef8 100644
--- a/src/data.c
+++ b/src/data.c
@@ -2966,26 +2966,14 @@ static Lisp_Object
float_arith_driver (double accum, ptrdiff_t argnum, enum arithop code,
ptrdiff_t nargs, Lisp_Object *args)
{
- register Lisp_Object val;
- double next;
-
for (; argnum < nargs; argnum++)
{
- /* using args[argnum] as argument to CHECK_NUMBER_... */
- val = args[argnum];
+ Lisp_Object val = args[argnum];
CHECK_NUMBER_COERCE_MARKER (val);
+ double next = (FIXNUMP (val) ? XFIXNUM (val)
+ : FLOATP (val) ? XFLOAT_DATA (val)
+ : mpz_get_d (XBIGNUM (val)->value));
- if (FLOATP (val))
- {
- next = XFLOAT_DATA (val);
- }
- else if (BIGNUMP (val))
- next = mpz_get_d (XBIGNUM (val)->value);
- else
- {
- args[argnum] = val; /* runs into a compiler bug. */
- next = XFIXNUM (args[argnum]);
- }
switch (code)
{
case Aadd:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master a1b7956: Simplify float_arith_driver,
Paul Eggert <=