GNU bug report logs - #76730
29.3; gv-define-setter defect

Previous Next

Package: emacs;

Reported by: Devon Sean McCullough <Emacs-hacker2023 <at> jovi.net>

Date: Tue, 4 Mar 2025 03:17:01 UTC

Severity: normal

Tags: patch

Found in version 29.3

Done: Michael Heerdegen <michael_heerdegen <at> web.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: Devon Sean McCullough <Emacs-hacker2023 <at> jovi.net>
Cc: 76730 <at> debbugs.gnu.org
Subject: bug#76730: 29.3; gv-define-setter defect
Date: Wed, 05 Mar 2025 14:55:34 +0100
Devon Sean McCullough <Emacs-hacker2023 <at> jovi.net> writes:

> (gv-define-setter overlay-end (store ov)
>   `(progn (move-overlay ,ov (overlay-start ,ov) ,store) ,store))
>
> the expansion correctly evaluates OV only once,
> yet incorrectly evaluates STORE twice!
> Too clever for its own good?

It's plain wrong.  The worst thing here is that the return value is
incorrect, it is 1 too low:

  (decf (overlay-end (make-overlay 1 2))) --> 0  ; should be 1


Michael.




This bug report was last modified 71 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.