diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2010-08-11 07:42:48 +0200 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2010-08-11 07:42:48 +0200 |
commit | c566235d981eba73c88bbff00b6a1d88360b6e9f (patch) | |
tree | f8d653add3570fe750a83d1123ed35022e0bf4ef /lisp/emacs-lisp/timer.el | |
parent | 0bfdb86f425a88fe43ebc88851c6f9a6418e1862 (diff) | |
parent | 490b89acab3e759426ede25c31c94268df55e925 (diff) | |
download | emacs-c566235d981eba73c88bbff00b6a1d88360b6e9f.tar.gz emacs-c566235d981eba73c88bbff00b6a1d88360b6e9f.tar.bz2 emacs-c566235d981eba73c88bbff00b6a1d88360b6e9f.zip |
Merge from trunk
Diffstat (limited to 'lisp/emacs-lisp/timer.el')
-rw-r--r-- | lisp/emacs-lisp/timer.el | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index f3b8ddcd123..94f39940b66 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -321,7 +321,11 @@ This function is called, by name, directly by the C code." ;; We do this after rescheduling so that the handler function ;; can cancel its own timer successfully with cancel-timer. (condition-case nil - (apply (timer--function timer) (timer--args timer)) + ;; Timer functions should not change the current buffer. + ;; If they do, all kinds of nasty surprises can happen, + ;; and it can be hellish to track down their source. + (save-current-buffer + (apply (timer--function timer) (timer--args timer))) (error nil)) (if retrigger (setf (timer--triggered timer) nil))) |