GNU bug report logs - #64580
30.0.50; Comment describing Lisp_Overlay object in src/lisp.h:2590 is not current

Previous Next

Package: emacs;

Reported by: Ihor Radchenko <yantar92 <at> posteo.net>

Date: Wed, 12 Jul 2023 12:48:02 UTC

Severity: normal

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#64580: closed (30.0.50; Comment describing Lisp_Overlay
 object in src/lisp.h:2590 is not current)
Date: Thu, 13 Jul 2023 08:36:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 13 Jul 2023 11:34:50 +0300
with message-id <837cr45hw5.fsf <at> gnu.org>
and subject line Re: bug#64580: 30.0.50; Comment describing Lisp_Overlay object in src/lisp.h:2590 is not current
has caused the debbugs.gnu.org bug report #64580,
regarding 30.0.50; Comment describing Lisp_Overlay object in src/lisp.h:2590 is not current
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
64580: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64580
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ihor Radchenko <yantar92 <at> posteo.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; Comment describing Lisp_Overlay object in src/lisp.h:2590
 is not current
Date: Wed, 12 Jul 2023 12:47:30 +0000
Hi,

I am not reading lisp.h, trying to understand the Lisp object layout.
The comments are generally excellent, but I just stumbled upon
Lisp_Overlay definition, where the comment appears to be outdated and
only reflects the past times when overlays did not yet use itree:

/* START and END are markers in the overlay's buffer, and
   PLIST is the overlay's property list.  */
struct Lisp_Overlay
/* An overlay's real data content is:
   - plist
   - buffer (really there are two buffer pointers, one per marker,
     and both points to the same buffer)
   - insertion type of both ends (per-marker fields)
   - start & start byte (of start marker)
   - end & end byte (of end marker)
   - next (singly linked list of overlays)
   - next fields of start and end markers (singly linked list of markers).
   I.e. 9words plus 2 bits, 3words of which are for external linked lists.
*/
  {
    union vectorlike_header header;
    Lisp_Object plist;
    struct buffer *buffer;        /* eassert (live buffer || NULL). */
    struct itree_node *interval;
  } GCALIGNED_STRUCT;

START and END are no longer in the struct. NEXT fields are also no
longer applicable, even via itree_node struct.


In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.17.8) of 2023-07-06 built on localhost
Repository revision: d97b77e6c66db46b198c696f83458aa141794727
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
System Description: Gentoo Linux

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


[Message part 3 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: Ihor Radchenko <yantar92 <at> posteo.net>
Cc: 64580-done <at> debbugs.gnu.org
Subject: Re: bug#64580: 30.0.50;
 Comment describing Lisp_Overlay object in src/lisp.h:2590 is not
 current
Date: Thu, 13 Jul 2023 11:34:50 +0300
> From: Ihor Radchenko <yantar92 <at> posteo.net>
> Date: Wed, 12 Jul 2023 12:47:30 +0000
> 
> /* START and END are markers in the overlay's buffer, and
>    PLIST is the overlay's property list.  */
> struct Lisp_Overlay
> /* An overlay's real data content is:
>    - plist
>    - buffer (really there are two buffer pointers, one per marker,
>      and both points to the same buffer)
>    - insertion type of both ends (per-marker fields)
>    - start & start byte (of start marker)
>    - end & end byte (of end marker)
>    - next (singly linked list of overlays)
>    - next fields of start and end markers (singly linked list of markers).
>    I.e. 9words plus 2 bits, 3words of which are for external linked lists.
> */
>   {
>     union vectorlike_header header;
>     Lisp_Object plist;
>     struct buffer *buffer;        /* eassert (live buffer || NULL). */
>     struct itree_node *interval;
>   } GCALIGNED_STRUCT;
> 
> START and END are no longer in the struct. NEXT fields are also no
> longer applicable, even via itree_node struct.

Thanks, fixed on the emacs-29 branch.


This bug report was last modified 1 year and 351 days ago.

Previous Next


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