# HG changeset patch # User Thien-Thi Nguyen # Date 1147862200 0 # Node ID 9d6a9b899f950eca7d26f3a8b998f8b4d52c6cf5 # Parent 2006f23b693ce21eb052d931ede90d315602c138 (ewoc-map, ewoc-invalidate): Compute PP before looping. diff -r 2006f23b693c -r 9d6a9b899f95 lisp/emacs-lisp/ewoc.el --- 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.