[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#39944: 27.0.90; JIT Stealth timer errors
From: |
Paul Eggert |
Subject: |
bug#39944: 27.0.90; JIT Stealth timer errors |
Date: |
Sat, 7 Mar 2020 10:02:28 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
On 3/6/20 8:11 AM, Eli Zaretskii wrote:
(the comments in that part of the code can really use some
enhancement; they currently seem to target only experts in both time
handling and GMP: many macros whose names don't explain what they do,
and plethora of calls to libgmp functions that have no comments
whatsoever).
Although comments in that area no doubt could use improvement, I'd rather not
see comments like this:
/* Add TM_YEAR_BASE to mpz[0]. */
mpz_add_ui (mpz[0], mpz[0], TM_YEAR_BASE);
as they would be the rough equivalent of:
/* Add 1 to I. */
i++;
+ (when (numberp time)
+ (setq time (timer-relative-time nil time))
+ (or (consp time)
+ (setq time (time-convert time 'list))))
This would catch some problems but not all, as the real bug here is in the code
(or (consp time) (error "Invalid time format")) which occurs a few lines later.
As near as I can tell this later code is both wrong and unnecessary. It's wrong
because it's no longer true that only conses are time values. It's unnecessary
because the immediately following (timer-set-function timer function args) call
checks the validity of TIME. On the off chance that a validity check is still
helpful (because we don't want to create garbage?) I installed the attached
patch. But it might be better in master to remove the "Invalid time format"
check entirely.
0001-Fix-bug-with-JIT-stealth-timers.patch
Description: Text Data