diff options
author | Kenichi Handa <handa@m17n.org> | 2010-09-29 09:55:58 +0900 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2010-09-29 09:55:58 +0900 |
commit | 9fb7a510c91c6aad04d2d6ba8e8c0889d19e1d79 (patch) | |
tree | e4efb3b3174cb991030691a6ff61a2ee53555f07 /lisp/emacs-lisp | |
parent | 18acb5ad4fcf3b8b00aacaca14cb5e0b24a854c4 (diff) | |
parent | dec834684640a6495b39bf11e500d326b4ff193b (diff) | |
download | emacs-9fb7a510c91c6aad04d2d6ba8e8c0889d19e1d79.tar.gz emacs-9fb7a510c91c6aad04d2d6ba8e8c0889d19e1d79.tar.bz2 emacs-9fb7a510c91c6aad04d2d6ba8e8c0889d19e1d79.zip |
merge emacs-23
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/byte-opt.el | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index e461010a6ce..4950511ebe2 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -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 |