summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorJuanma Barranquero <lekktu@gmail.com>2010-09-28 01:25:27 +0200
committerJuanma Barranquero <lekktu@gmail.com>2010-09-28 01:25:27 +0200
commit95b6d681b1121e1be8955aa3f79dd39098edf4cf (patch)
tree445d016578b131a7435fac83fc1fbd49f3a45877 /lisp/emacs-lisp
parent9f2d52e714dfa161c9c9393075a3bcdf056a4ac8 (diff)
parent0cceab3d5942aef608dc33be4616b77206201115 (diff)
downloademacs-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.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 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