diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-04-07 22:08:45 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-04-07 22:08:45 -0400 |
commit | 8acdeb7104ad8d90f93c7dca6ee0d32149b32fc1 (patch) | |
tree | b094b1d74243cb3ab9fed66aac3d6e434a3017ab /lisp/emacs-lisp | |
parent | 285c8184afc5b3ad20b21947ac4c8fee7668c516 (diff) | |
download | emacs-8acdeb7104ad8d90f93c7dca6ee0d32149b32fc1.tar.gz emacs-8acdeb7104ad8d90f93c7dca6ee0d32149b32fc1.tar.bz2 emacs-8acdeb7104ad8d90f93c7dca6ee0d32149b32fc1.zip |
* lisp/emacs-lisp/timer.el (timer-event-handler): Don't retrigger a canceled
timer.
Fixes: debbugs:14156
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/timer.el | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 8b019d0a785..8b1dca8cb78 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -314,8 +314,12 @@ This function is called, by name, directly by the C code." (save-current-buffer (apply (timer--function timer) (timer--args timer))) (error (message "Error in timer: %S" err))) - (if retrigger - (setf (timer--triggered timer) nil))) + (when (and retrigger + ;; If the timer's been canceled, don't "retrigger" it + ;; since it might still be in the copy of timer-list kept + ;; by keyboard.c:timer_check (bug#14156). + (memq timer timer-list)) + (setf (timer--triggered timer) nil))) (error "Bogus timer event")))) ;; This function is incompatible with the one in levents.el. |