diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2010-09-30 01:28:20 +0200 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2010-09-30 01:28:20 +0200 |
commit | a01a7932080e8a6e7bc8472c58cefabcc2c37df3 (patch) | |
tree | 94b28b19c8f1536e76ffe7d5826811b74a79e3a5 /lisp/emacs-lisp/byte-opt.el | |
parent | cc390e46c7ba95b76ea133d98fd386214cd01709 (diff) | |
parent | 6b0f7311f16646e0de2045b2410e20921901c616 (diff) | |
download | emacs-a01a7932080e8a6e7bc8472c58cefabcc2c37df3.tar.gz |
Merge from trunk
Diffstat (limited to 'lisp/emacs-lisp/byte-opt.el')
-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 9ce3c2eb323..ac008c98cd9 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -383,9 +383,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 |