diff options
| author | Glenn Morris <rgm@gnu.org> | 2014-06-01 17:18:22 -0700 |
|---|---|---|
| committer | Glenn Morris <rgm@gnu.org> | 2014-06-01 17:18:22 -0700 |
| commit | 953e106ac84587e765244995687b088969b5f6e1 (patch) | |
| tree | a4d54b892e04b9123bc79ecffd69310f5807399e /lisp/emacs-lisp/byte-opt.el | |
| parent | eed652d649d28e9dafdb01f9c7425d7d28899e0d (diff) | |
| parent | afca0e759015ebc753b0c343ac45ac476dd31e9d (diff) | |
| download | emacs-953e106ac84587e765244995687b088969b5f6e1.tar.gz | |
Merge from emacs-24; up to 2014-05-29T17:16:00Z!dmantipov@yandex.ru
Diffstat (limited to 'lisp/emacs-lisp/byte-opt.el')
| -rw-r--r-- | lisp/emacs-lisp/byte-opt.el | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 90d1dd913e9..ee0a5a11c7b 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -859,14 +859,16 @@ (defun byte-optimize-binary-predicate (form) - (if (macroexp-const-p (nth 1 form)) - (if (macroexp-const-p (nth 2 form)) - (condition-case () - (list 'quote (eval form)) - (error form)) - ;; This can enable some lapcode optimizations. - (list (car form) (nth 2 form) (nth 1 form))) - form)) + (cond + ((or (not (macroexp-const-p (nth 1 form))) + (nthcdr 3 form)) ;; In case there are more than 2 args. + form) + ((macroexp-const-p (nth 2 form)) + (condition-case () + (list 'quote (eval form)) + (error form))) + (t ;; This can enable some lapcode optimizations. + (list (car form) (nth 2 form) (nth 1 form))))) (defun byte-optimize-predicate (form) (let ((ok t) |
