changeset 70687:9d6a9b899f95

(ewoc-map, ewoc-invalidate): Compute PP before looping.
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Wed, 17 May 2006 10:36:40 +0000
parents 2006f23b693c
children 06a49350cd52
files lisp/emacs-lisp/ewoc.el
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/ewoc.el	Wed May 17 06:12:44 2006 +0000
+++ b/lisp/emacs-lisp/ewoc.el	Wed May 17 10:36:40 2006 +0000
@@ -352,11 +352,12 @@
 arguments will be passed to MAP-FUNCTION."
   (ewoc--set-buffer-bind-dll-let* ewoc
       ((footer (ewoc--footer ewoc))
+       (pp (ewoc--pretty-printer ewoc))
        (node (ewoc--node-nth dll 1)))
     (save-excursion
       (while (not (eq node footer))
         (if (apply map-function (ewoc--node-data node) args)
-            (ewoc--refresh-node (ewoc--pretty-printer ewoc) node))
+            (ewoc--refresh-node pp node))
         (setq node (ewoc--node-next dll node))))))
 
 (defun ewoc-filter (ewoc predicate &rest args)
@@ -465,10 +466,11 @@
 (defun ewoc-invalidate (ewoc &rest nodes)
   "Call EWOC's pretty-printer for each element in NODES.
 Delete current text first, thus effecting a \"refresh\"."
-  (ewoc--set-buffer-bind-dll ewoc
+  (ewoc--set-buffer-bind-dll-let* ewoc
+      ((pp (ewoc--pretty-printer ewoc)))
     (save-excursion
       (dolist (node nodes)
-        (ewoc--refresh-node (ewoc--pretty-printer ewoc) node)))))
+        (ewoc--refresh-node pp node)))))
 
 (defun ewoc-goto-prev (ewoc arg)
   "Move point to the ARGth previous element in EWOC.