From: Paul Eggert Date: Thu, 13 Sep 2012 06:09:45 +0000 (-0700) Subject: Fix glitches caused by addition of psec to timers. X-Git-Tag: emacs-24.2.90~293 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=72eac303eabbb403eae650c9dd0c93851b0fec23;p=emacs.git Fix glitches caused by addition of psec to timers. * etc/NEWS: Document timer format change. * lisp/image.el (image-animate-timer): * lisp/time.el (display-time-world-timer): Use timer--function and timer--args rather than raw access to timer vector. * lisp/gnus/gnus-art.el (gnus-article-stop-animations): Use timer--function rather than raw access to timer vector. Fixes: debbugs:12430 --- diff --git a/etc/ChangeLog b/etc/ChangeLog index 11e7e5ca108..20ded2fd847 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@ -1,3 +1,7 @@ +2012-09-13 Paul Eggert + + * NEWS: Document timer format change (Bug#12430). + 2012-09-11 Paul Eggert Simplify, document, and port floating-point (Bug#12381). diff --git a/etc/NEWS b/etc/NEWS index a7388c4e9fa..eb5a2ed6660 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -101,6 +101,11 @@ machines. Other functions that use this format, such as file-attributes and format-time-string, have been changed accordingly. Old-format time stamps are still accepted. +** The format of timers in timer-list and timer-idle-list is now +[HIGH-SECONDS LOW-SECONDS USECS PSECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY]. +The PSECS slot is new, and uses picosecond resolution. It can be +accessed via the new timer--psecs accessor. + ** Emacs now generates backtraces on fatal errors. On encountering a fatal error, Emacs now outputs a textual description of the fatal signal, and a short backtrace on platforms like glibc diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 41dc46021f6..1bb8f913c20 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2012-09-13 Paul Eggert + + Fix glitches caused by addition of psec to timers (Bug#12430). + * image.el (image-animate-timer): + * time.el (display-time-world-timer): + Use timer--function and timer--args rather than raw access to + timer vector. + 2012-09-13 Glenn Morris * emacs-lisp/bytecomp.el (byte-compile-warning-prefix): diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 5c7f106f6db..3f69a84db88 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,3 +1,9 @@ +2012-09-13 Paul Eggert + + Fix glitches caused by addition of psec to timers. + * gnus-art.el (gnus-article-stop-animations): Use timer--function + rather than raw access to timer vector. + 2012-09-11 Julien Danjou * gnus-notifications.el (gnus-notifications): Check for nil values in diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index b9020a40b75..4dc004f04d4 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -4554,7 +4554,7 @@ commands: (defun gnus-article-stop-animations () (dolist (timer (and (boundp 'timer-list) timer-list)) - (when (eq (elt timer 5) 'image-animate-timeout) + (when (eq (timer--function timer) 'image-animate-timeout) (cancel-timer timer)))) (defun gnus-stop-downloads () diff --git a/lisp/image.el b/lisp/image.el index 7801923c3fe..99c0a74a512 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -645,8 +645,8 @@ number, play until that number of seconds has elapsed." (while tail (setq timer (car tail) tail (cdr tail)) - (if (and (eq (aref timer 5) 'image-animate-timeout) - (eq (car-safe (aref timer 6)) image)) + (if (and (eq (timer--function timer) 'image-animate-timeout) + (eq (car-safe (timer--args timer)) image)) (setq tail nil) (setq timer nil))) timer)) diff --git a/lisp/time.el b/lisp/time.el index 8d43b565416..fe3cdbb57be 100644 --- a/lisp/time.el +++ b/lisp/time.el @@ -575,7 +575,8 @@ To turn off the world time display, go to that window and type `q'." (let ((list timer-list)) (while list (let ((elt (pop list))) - (when (equal (symbol-name (aref elt 5)) "display-time-world-timer") + (when (equal (symbol-name (timer--function elt)) + "display-time-world-timer") (cancel-timer elt))))))) ;;;###autoload