* emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Avoid
infinite recursion on erroneous lambda form. (Bug#7114)
This commit is contained in:
parent
789af3cd80
commit
c19f76a18b
2 changed files with 10 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
|||
2010-09-27 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Avoid
|
||||
infinite recursion on erroneous lambda form. (Bug#7114)
|
||||
|
||||
2010-09-27 Kenichi Handa <handa@m17n.org>
|
||||
|
||||
* tar-mode.el (tar-header-block-tokenize): Decode filenames in
|
||||
|
|
|
@ -381,9 +381,11 @@
|
|||
form))
|
||||
((or (byte-code-function-p fn)
|
||||
(eq 'lambda (car-safe fn)))
|
||||
(byte-optimize-form-code-walker
|
||||
(byte-compile-unfold-lambda form)
|
||||
for-effect))
|
||||
(let ((newform (byte-compile-unfold-lambda form)))
|
||||
(if (eq newform form)
|
||||
;; Some error occured, avoid infinite recursion
|
||||
form
|
||||
(byte-optimize-form-code-walker newform for-effect))))
|
||||
((memq fn '(let let*))
|
||||
;; recursively enter the optimizer for the bindings and body
|
||||
;; of a let or let*. This for depth-firstness: forms that
|
||||
|
|
Loading…
Add table
Reference in a new issue