summaryrefslogtreecommitdiff
path: root/lisp/subr.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2014-11-05 22:27:23 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2014-11-05 22:27:23 -0500
commit577ef0bc58b5e8fd048bcc5bae8c34c4020fa2cc (patch)
tree597810e6269cae2f2de3f052626253daf03bb851 /lisp/subr.el
parent4d5468e5296ce42793a86808c62af8f99f556cba (diff)
downloademacs-577ef0bc58b5e8fd048bcc5bae8c34c4020fa2cc.tar.gz
emacs-577ef0bc58b5e8fd048bcc5bae8c34c4020fa2cc.tar.bz2
emacs-577ef0bc58b5e8fd048bcc5bae8c34c4020fa2cc.zip
* lisp/subr.el (pop): Don't call the getter twice.
Fixes: debbugs:18968
Diffstat (limited to 'lisp/subr.el')
-rw-r--r--lisp/subr.el3
1 files changed, 2 insertions, 1 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index 55ff739fec5..6ce02b79a0a 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -169,7 +169,8 @@ change the list."
;; So we can use `pop' in the bootstrap before `gv' can be used.
(list 'prog1 place (list 'setq place (list 'cdr place)))
(gv-letplace (getter setter) place
- `(prog1 ,getter ,(funcall setter `(cdr ,getter)))))))
+ (macroexp-let2 macroexp-copyable-p x getter
+ `(prog1 ,x ,(funcall setter `(cdr ,x))))))))
(defmacro when (cond &rest body)
"If COND yields non-nil, do BODY, else return nil.