From 9d693d807fbd77761cf1c35de1bcbcfc91d690e4 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Fri, 24 Aug 2007 14:39:25 +0000 Subject: (byte-optimize-if): Don't presume `clause' is a list. --- lisp/emacs-lisp/byte-opt.el | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lisp/emacs-lisp') diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index b4eaf4ff5eb..80a6ad595b2 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -1020,7 +1020,9 @@ ;; (if nil ) ==> (if (not ) (progn )) ;; (if nil) ==> (if ) (let ((clause (nth 1 form))) - (cond ((eq (car clause) 'progn) + (cond ((and (eq (car-safe clause) 'progn) + ;; `clause' is a proper list. + (null (cdr (last clause)))) (if (null (cddr clause)) ;; A trivial `progn'. (byte-optimize-if `(if ,(cadr clause) ,@(nthcdr 2 form))) -- cgit v1.2.3