diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2022-11-17 09:08:24 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2022-11-17 09:08:24 -0500 |
commit | 13003105a8edf746a8e8819122bd1bcdf7f9ecdd (patch) | |
tree | 127f1973a5c76e109c61545bfbb3b9ecf2175126 /lisp/emacs-lisp/hierarchy.el | |
parent | 7781121c44736a9a5ad0422955f23bfc045f5504 (diff) | |
download | emacs-13003105a8edf746a8e8819122bd1bcdf7f9ecdd.tar.gz emacs-13003105a8edf746a8e8819122bd1bcdf7f9ecdd.tar.bz2 emacs-13003105a8edf746a8e8819122bd1bcdf7f9ecdd.zip |
itree.c: Add new "stateless" iterator code and post-order traversal
This still uses the old iterator code, but runs the new code
alongside to make sure they behave identically.
* src/itree.c (struct itree_iterator): New field `node`.
(itree_iterator_create): Give it a sane default value.
(itree_iterator_busy_p, itree_iterator_start, itree_iterator_finish):
Move down to the "iterator" section of the file.
(itree_iter_next_in_subtree, itree_iterator_first_node)
(itree_iter_next): New functions.
(itree_iterator_start): Initialize the new `node` field.
(itree_iterator_next): Add post-order case.
Call the new "stateless" `itree_iter_next` function and check that it
agrees.
* src/itree.h (enum itree_order): New value for post-order traversals.
Diffstat (limited to 'lisp/emacs-lisp/hierarchy.el')
0 files changed, 0 insertions, 0 deletions