diff options
author | Gerd Moellmann <gerd@gnu.org> | 2000-11-14 04:41:56 +0000 |
---|---|---|
committer | Gerd Moellmann <gerd@gnu.org> | 2000-11-14 04:41:56 +0000 |
commit | 936ae731f35a288ebd5fc875f4123eaa286c5f50 (patch) | |
tree | d8d1c9d84e115bd4a32c5542f6719890e0288aff /lisp/emacs-lisp | |
parent | d7361edf01f3c7b4cc76d27e36b7e9dbad597147 (diff) | |
download | emacs-936ae731f35a288ebd5fc875f4123eaa286c5f50.tar.gz emacs-936ae731f35a288ebd5fc875f4123eaa286c5f50.tar.bz2 emacs-936ae731f35a288ebd5fc875f4123eaa286c5f50.zip |
(byte-compile-unfold-lambda): Don't
recursively optimize body because that can lead to infinite
recursion; see comment there.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/byte-opt.el | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index c3c8e677239..da695386604 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -340,7 +340,12 @@ (byte-compile-warn "Attempt to open-code `%s' with too many arguments" name)) form) - (setq body (mapcar 'byte-optimize-form body)) + + ;; The following leads to infinite recursion when loading a + ;; file containing `(defsubst f () (f))', and then trying to + ;; byte-compile that file. + ;(setq body (mapcar 'byte-optimize-form body))) + (let ((newform (if bindings (cons 'let (cons (nreverse bindings) body)) |