[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r109614: byte-compile-setq-default fi
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r109614: byte-compile-setq-default fix for bug#12195 |
Date: |
Tue, 14 Aug 2012 14:23:10 -0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 109614
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Tue 2012-08-14 14:23:10 -0400
message:
byte-compile-setq-default fix for bug#12195
* lisp/emacs-lisp/bytecomp.el (byte-compile-setq-default):
Optimize away setq-default with no args, as is done for setq.
modified:
lisp/ChangeLog
lisp/emacs-lisp/bytecomp.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-08-14 17:10:38 +0000
+++ b/lisp/ChangeLog 2012-08-14 18:23:10 +0000
@@ -1,3 +1,8 @@
+2012-08-14 Glenn Morris <address@hidden>
+
+ * emacs-lisp/bytecomp.el (byte-compile-setq-default):
+ Optimize away setq-default with no args, as for setq. (Bug#12195)
+
2012-08-14 Chong Yidong <address@hidden>
* minibuffer.el (read-file-name): Doc fix (Bug#10881).
=== modified file 'lisp/emacs-lisp/bytecomp.el'
--- a/lisp/emacs-lisp/bytecomp.el 2012-08-14 15:58:46 +0000
+++ b/lisp/emacs-lisp/bytecomp.el 2012-08-14 18:23:10 +0000
@@ -3578,20 +3578,22 @@
(defun byte-compile-setq-default (form)
(setq form (cdr form))
- (if (> (length form) 2)
- (let ((setters ()))
- (while (consp form)
- (push `(setq-default ,(pop form) ,(pop form)) setters))
- (byte-compile-form (cons 'progn (nreverse setters))))
- (let ((var (car form)))
- (and (or (not (symbolp var))
- (macroexp--const-symbol-p var t))
- (byte-compile-warning-enabled-p 'constants)
- (byte-compile-warn
- "variable assignment to %s `%s'"
- (if (symbolp var) "constant" "nonvariable")
- (prin1-to-string var)))
- (byte-compile-normal-call `(set-default ',var ,@(cdr form))))))
+ (if (null form) ; (setq-default), with no arguments
+ (byte-compile-form nil byte-compile--for-effect)
+ (if (> (length form) 2)
+ (let ((setters ()))
+ (while (consp form)
+ (push `(setq-default ,(pop form) ,(pop form)) setters))
+ (byte-compile-form (cons 'progn (nreverse setters))))
+ (let ((var (car form)))
+ (and (or (not (symbolp var))
+ (macroexp--const-symbol-p var t))
+ (byte-compile-warning-enabled-p 'constants)
+ (byte-compile-warn
+ "variable assignment to %s `%s'"
+ (if (symbolp var) "constant" "nonvariable")
+ (prin1-to-string var)))
+ (byte-compile-normal-call `(set-default ',var ,@(cdr form)))))))
(byte-defop-compiler-1 set-default)
(defun byte-compile-set-default (form)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r109614: byte-compile-setq-default fix for bug#12195,
Glenn Morris <=