diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2008-03-03 21:07:12 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2008-03-03 21:07:12 +0000 |
commit | 20ce031c4016c61e38945eb67916686b9c59932b (patch) | |
tree | 5a209cb2d1dc075016c8e2f4276a95853a730f72 /lisp/emacs-lisp | |
parent | 68a2af7af02d3e91854d8b1101f48242b5e62b68 (diff) | |
download | emacs-20ce031c4016c61e38945eb67916686b9c59932b.tar.gz emacs-20ce031c4016c61e38945eb67916686b9c59932b.tar.bz2 emacs-20ce031c4016c61e38945eb67916686b9c59932b.zip |
(byte-compile-trueconstp, byte-compile-nilconstp): No recursion in defsubst.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/byte-opt.el | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 92d83b0ef67..d65cf3904e9 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -632,20 +632,28 @@ (defsubst byte-compile-trueconstp (form) "Return non-nil if FORM always evaluates to a non-nil value." + (while (eq (car-safe form) 'progn) + (setq form (car (last (cdr form))))) (cond ((consp form) (case (car form) (quote (cadr form)) - (progn (byte-compile-trueconstp (car (last (cdr form))))))) + ;; Can't use recursion in a defsubst. + ;; (progn (byte-compile-trueconstp (car (last (cdr form))))) + )) ((not (symbolp form))) ((eq form t)) ((keywordp form)))) (defsubst byte-compile-nilconstp (form) "Return non-nil if FORM always evaluates to a nil value." + (while (eq (car-safe form) 'progn) + (setq form (car (last (cdr form))))) (cond ((consp form) (case (car form) (quote (null (cadr form))) - (progn (byte-compile-nilconstp (car (last (cdr form))))))) + ;; Can't use recursion in a defsubst. + ;; (progn (byte-compile-nilconstp (car (last (cdr form))))) + )) ((not (symbolp form)) nil) ((null form)))) |