]> git.eshelyaron.com Git - emacs.git/commitdiff
Decode time conses before floats
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 14 Aug 2022 20:48:11 +0000 (13:48 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 14 Aug 2022 20:49:33 +0000 (13:49 -0700)
* src/timefns.c (decode_lisp_time): Test for conses before floats,
as conses are more common.

src/timefns.c

index edfd73e9b800ab472037e48b9a5b2eafcf89752a..b9d9a4ed9764bd3c12576e037a629bfc82af0c35 100644 (file)
@@ -822,17 +822,6 @@ decode_lisp_time (Lisp_Object specified_time, bool decode_secs_only,
 
   if (NILP (specified_time))
     form = TIMEFORM_NIL;
-  else if (FLOATP (specified_time))
-    {
-      double d = XFLOAT_DATA (specified_time);
-      if (!isfinite (d))
-       time_error (isnan (d) ? EDOM : EOVERFLOW);
-      if (result)
-       decode_float_time (d, result);
-      else
-       *dresult = d;
-      return TIMEFORM_FLOAT;
-    }
   else if (CONSP (specified_time))
     {
       high = XCAR (specified_time);
@@ -872,6 +861,17 @@ decode_lisp_time (Lisp_Object specified_time, bool decode_secs_only,
       if (! INTEGERP (low))
        form = TIMEFORM_INVALID;
     }
+  else if (FLOATP (specified_time))
+    {
+      double d = XFLOAT_DATA (specified_time);
+      if (!isfinite (d))
+       time_error (isnan (d) ? EDOM : EOVERFLOW);
+      if (result)
+       decode_float_time (d, result);
+      else
+       *dresult = d;
+      return TIMEFORM_FLOAT;
+    }
 
   int err = decode_time_components (form, high, low, usec, psec,
                                    result, dresult);