From: Paul Eggert Date: Sun, 14 Aug 2022 20:48:11 +0000 (-0700) Subject: Decode time conses before floats X-Git-Tag: emacs-29.0.90~1447^2~158 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=15aba5e64496414ec4659118f910516d2dc5e8b4;p=emacs.git Decode time conses before floats * src/timefns.c (decode_lisp_time): Test for conses before floats, as conses are more common. --- diff --git a/src/timefns.c b/src/timefns.c index edfd73e9b80..b9d9a4ed976 100644 --- a/src/timefns.c +++ b/src/timefns.c @@ -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);