Mercurial > emacs
changeset 70992:dcab6d42213c
(ewoc-delete): Compute last node once before looping.
author | Thien-Thi Nguyen <ttn@gnuvola.org> |
---|---|
date | Sat, 27 May 2006 09:36:11 +0000 |
parents | 989ad5a031e2 |
children | 320310f2740c |
files | lisp/emacs-lisp/ewoc.el |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/emacs-lisp/ewoc.el Sat May 27 08:56:11 2006 +0000 +++ b/lisp/emacs-lisp/ewoc.el Sat May 27 09:36:11 2006 +0000 @@ -385,12 +385,12 @@ (defun ewoc-delete (ewoc &rest nodes) "Delete NODES from EWOC." (ewoc--set-buffer-bind-dll-let* ewoc - ((L nil) (R nil)) + ((L nil) (R nil) (last (ewoc--last-node ewoc))) (dolist (node nodes) ;; If we are about to delete the node pointed at by last-node, ;; set last-node to nil. - (if (eq (ewoc--last-node ewoc) node) - (setf (ewoc--last-node ewoc) nil)) + (when (eq last node) + (setf last nil (ewoc--last-node ewoc) nil)) (delete-region (ewoc--node-start-marker node) (ewoc--node-start-marker (ewoc--node-next node))) (set-marker (ewoc--node-start-marker node) nil)