diff options
author | Juanma Barranquero <lekktu@gmail.com> | 2010-09-28 01:25:27 +0200 |
---|---|---|
committer | Juanma Barranquero <lekktu@gmail.com> | 2010-09-28 01:25:27 +0200 |
commit | 95b6d681b1121e1be8955aa3f79dd39098edf4cf (patch) | |
tree | 445d016578b131a7435fac83fc1fbd49f3a45877 /lisp/emacs-lisp | |
parent | 9f2d52e714dfa161c9c9393075a3bcdf056a4ac8 (diff) | |
parent | 0cceab3d5942aef608dc33be4616b77206201115 (diff) | |
download | emacs-95b6d681b1121e1be8955aa3f79dd39098edf4cf.tar.gz emacs-95b6d681b1121e1be8955aa3f79dd39098edf4cf.tar.bz2 emacs-95b6d681b1121e1be8955aa3f79dd39098edf4cf.zip |
Merge changes from emacs-23 branch.
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 1ff34fa6a81..8447d3f05c0 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -382,9 +382,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 |