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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64580 in the body.
You can then email your comments to 64580 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#64580; Package emacs. (Wed, 12 Jul 2023 12:48:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ihor Radchenko <yantar92 <at> posteo.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 12 Jul 2023 12:48:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

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>




Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Thu, 13 Jul 2023 08:36:02 GMT) Full text and rfc822 format available.

Notification sent to Ihor Radchenko <yantar92 <at> posteo.net>:
bug acknowledged by developer. (Thu, 13 Jul 2023 08:36:02 GMT) Full text and rfc822 format available.

Message #10 received at 64580-done <at> debbugs.gnu.org (full text, mbox):

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.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 10 Aug 2023 11:24:07 GMT) Full text and rfc822 format available.

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.