aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2012-03-27 16:43:09 -0400
committerStefan Monnier2012-03-27 16:43:09 -0400
commitb973155e956eec4de5128effca7cc749897c1a45 (patch)
treed32509bfce107caeb7f09ad906348cd746c71225
parent5d956bc22e57b78f47312001272f2e6643f31334 (diff)
downloademacs-b973155e956eec4de5128effca7cc749897c1a45.tar.gz
emacs-b973155e956eec4de5128effca7cc749897c1a45.zip
* lisp/emacs-lisp/avl-tree.el (avl-tree--enter-balance): Fix paren typo.
(avl-tree--check, avl-tree--check-node): New funs. Fixes: debbugs:11077
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/emacs-lisp/avl-tree.el16
2 files changed, 22 insertions, 7 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7d81bbb46b5..65018db7e4d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,8 +1,14 @@
12012-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * emacs-lisp/avl-tree.el (avl-tree--enter-balance): Fix paren typo
4 (bug#11077).
5 (avl-tree--check, avl-tree--check-node): New funs.
6
12012-03-27 Martin Rudalics <rudalics@gmx.at> 72012-03-27 Martin Rudalics <rudalics@gmx.at>
2 8
3 * window.el (switch-to-visible-buffer): New option. 9 * window.el (switch-to-visible-buffer): New option.
4 (switch-to-prev-buffer, switch-to-next-buffer): Observe 10 (switch-to-prev-buffer, switch-to-next-buffer):
5 switch-to-visible-buffer. Make sure that checking for a window 11 Observe switch-to-visible-buffer. Make sure that checking for a window
6 showing a buffer already is done on the same frame. 12 showing a buffer already is done on the same frame.
7 13
82012-03-27 Glenn Morris <rgm@gnu.org> 142012-03-27 Glenn Morris <rgm@gnu.org>
@@ -28,8 +34,7 @@
282012-03-25 Eli Zaretskii <eliz@gnu.org> 342012-03-25 Eli Zaretskii <eliz@gnu.org>
29 35
30 * makefile.w32-in (install): Use $(DIRNAME)_same-dir.tst instead 36 * makefile.w32-in (install): Use $(DIRNAME)_same-dir.tst instead
31 of same-dir.tst, to avoid stepping on other (parallel) Make job's 37 of same-dir.tst, to avoid stepping on other (parallel) Make job's toes.
32 toes.
33 38
342012-03-25 Chong Yidong <cyd@gnu.org> 392012-03-25 Chong Yidong <cyd@gnu.org>
35 40
diff --git a/lisp/emacs-lisp/avl-tree.el b/lisp/emacs-lisp/avl-tree.el
index cb5ea048999..9f348767478 100644
--- a/lisp/emacs-lisp/avl-tree.el
+++ b/lisp/emacs-lisp/avl-tree.el
@@ -295,9 +295,9 @@ Return t if the height of the tree has grown."
295 (if (> (* sgn b2) 0) (- sgn) 0) 295 (if (> (* sgn b2) 0) (- sgn) 0)
296 (avl-tree--node-balance p1) 296 (avl-tree--node-balance p1)
297 (if (< (* sgn b2) 0) sgn 0) 297 (if (< (* sgn b2) 0) sgn 0)
298 (avl-tree--node-branch node branch) p2 298 (avl-tree--node-branch node branch) p2))
299 (avl-tree--node-balance 299 (setf (avl-tree--node-balance
300 (avl-tree--node-branch node branch)) 0)) 300 (avl-tree--node-branch node branch)) 0)
301 nil)))) 301 nil))))
302 302
303(defun avl-tree--do-enter (cmpfun root branch data &optional updatefun) 303(defun avl-tree--do-enter (cmpfun root branch data &optional updatefun)
@@ -339,6 +339,16 @@ inserted data."
339 (cons nil newdata)) ; return value 339 (cons nil newdata)) ; return value
340 )))) 340 ))))
341 341
342(defun avl-tree--check (tree)
343 "Check the tree's balance."
344 (avl-tree--check-node (avl-tree--root tree)))
345(defun avl-tree--check-node (node)
346 (if (null node) 0
347 (let ((dl (avl-tree--check-node (avl-tree--node-left node)))
348 (dr (avl-tree--check-node (avl-tree--node-right node))))
349 (assert (= (- dr dl) (avl-tree--node-balance node)))
350 (1+ (max dl dr)))))
351
342;; ---------------------------------------------------------------- 352;; ----------------------------------------------------------------
343 353
344 354