summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2008-03-03 21:07:12 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2008-03-03 21:07:12 +0000
commit20ce031c4016c61e38945eb67916686b9c59932b (patch)
tree5a209cb2d1dc075016c8e2f4276a95853a730f72 /lisp/emacs-lisp
parent68a2af7af02d3e91854d8b1101f48242b5e62b68 (diff)
downloademacs-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.el12
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))))