]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/gv.el (if): Don't use closures in non-lexical-binding code.
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 14 Oct 2012 01:39:56 +0000 (21:39 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 14 Oct 2012 01:39:56 +0000 (21:39 -0400)
lisp/ChangeLog
lisp/emacs-lisp/gv.el

index d58eb0bfbbf86f7339b7f6dcd894e9b64ca81629..6c9fe7c4b4771b98ee4cc1bda1d20263c814bfdd 100644 (file)
@@ -1,3 +1,7 @@
+2012-10-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/gv.el (if): Don't use closures in non-lexical-binding code.
+
 2012-10-13  Chong Yidong  <cyd@gnu.org>
 
        * textmodes/ispell.el (ispell-pdict-save): If flyspell-mode is
index 7858c183e4be3744c557d47eb84da654ba27a2fc..1a30d67fbbcd6d9638212192143e402c1565e15a 100644 (file)
@@ -358,7 +358,8 @@ The return value is the last VAL in the list.
 
 (put 'if 'gv-expander
      (lambda (do test then &rest else)
-       (if (macroexp-small-p (funcall do 'dummy (lambda (_) 'dummy)))
+       (if (or (not lexical-binding)  ;The other code requires lexical-binding.
+               (macroexp-small-p (funcall do 'dummy (lambda (_) 'dummy))))
            ;; This duplicates the `do' code, which is a problem if that
            ;; code is large, but otherwise results in more efficient code.
            `(if ,test ,(gv-get then do)