summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2010-09-29 09:55:58 +0900
committerKenichi Handa <handa@m17n.org>2010-09-29 09:55:58 +0900
commit9fb7a510c91c6aad04d2d6ba8e8c0889d19e1d79 (patch)
treee4efb3b3174cb991030691a6ff61a2ee53555f07 /lisp/emacs-lisp
parent18acb5ad4fcf3b8b00aacaca14cb5e0b24a854c4 (diff)
parentdec834684640a6495b39bf11e500d326b4ff193b (diff)
downloademacs-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.el8
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