diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-02-06 17:15:14 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-02-06 17:34:41 -0800 |
commit | 03a012a79679c730634537f966200878bfd1c0b4 (patch) | |
tree | 66647b38bffa3eb904da993d9d583cc770c443df /lisp/emacs-lisp/cl-generic.el | |
parent | d45dbccc5d2360818e70bbb0bc816c62c8cf6cbe (diff) | |
download | emacs-03a012a79679c730634537f966200878bfd1c0b4.tar.gz emacs-03a012a79679c730634537f966200878bfd1c0b4.tar.bz2 emacs-03a012a79679c730634537f966200878bfd1c0b4.zip |
Make FOR_EACH_TAIL more like other FOR_EACH macros
See comments by Stefan Monnier in:
http://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00181.html
and by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00207.html
* src/fns.c (internal_equal): Do not bypass check for depth
overflow when tail-recursing via a dotted list tail or an overlay
plist, to avoid a rare infloop.
* src/lisp.h (FOR_EACH_TAIL, FOR_EACH_TAIL_SAFE): Take TAIL as an
arg, and update it at each iteration, rather than have callers
access it.tail. All callers changed.
(FOR_EACH_TAIL): Do not check for dotted lists, as this is now
the caller’s responsibility. All callers changed.
(FOR_EACH_TAIL_CONS): Remove. All callers changed.
(struct for_each_tail_internal.tail): Remove; no longer needed.
(FOR_EACH_TAIL_INTERNAL): Remove dotted arg, and set the tail
arg each time through the loop. All callers changed.
Diffstat (limited to 'lisp/emacs-lisp/cl-generic.el')
0 files changed, 0 insertions, 0 deletions