]> git.eshelyaron.com Git - emacs.git/commitdiff
Turn gv-synthetic-place into a function
authorMichael Heerdegen <michael_heerdegen@web.de>
Wed, 31 Aug 2022 01:13:09 +0000 (03:13 +0200)
committerMichael Heerdegen <michael_heerdegen@web.de>
Sun, 18 Sep 2022 13:48:50 +0000 (15:48 +0200)
This fixes Bug#57397.

* lisp/emacs-lisp/gv.el (gv-synthetic-place): Make a function and add
trivial compiler macro to avoid decreasing efficiency.

lisp/emacs-lisp/gv.el

index 1db9d96d99988e957331b8cca02b97d415d24616..d4aed3ac3916f6531ad099fd83ba8de1035df5aa 100644 (file)
@@ -536,13 +536,13 @@ The return value is the last VAL in the list.
        (funcall do `(error . ,args)
                 (lambda (v) `(progn ,v (error . ,args))))))
 
-(defmacro gv-synthetic-place (getter setter)
+(defun gv-synthetic-place (getter setter)
   "Special place described by its setter and getter.
 GETTER and SETTER (typically obtained via `gv-letplace') get and
-set that place.  I.e. This macro allows you to do the \"reverse\" of what
-`gv-letplace' does.
-This macro only makes sense when used in a place."
-  (declare (gv-expander funcall))
+set that place.  I.e. this function allows you to do the
+\"reverse\" of what `gv-letplace' does.  This function only makes
+sense when used in a place."
+  (declare (gv-expander funcall) (compiler-macro (lambda (_) getter)))
   (ignore setter)
   getter)