]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify float_arith_driver
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 19 Aug 2018 03:47:24 +0000 (20:47 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 19 Aug 2018 03:47:40 +0000 (20:47 -0700)
* src/data.c (float_arith_driver): Simplify, as we needn’t
worry about that 30-year-old compiler bug any more.

src/data.c

index 7a8179ed38d5ddd67206fb0f075ba207ebbec738..5ef0ef85571d235bd2a3833225745ebfc605c0f7 100644 (file)
@@ -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: