GNU bug report logs - #76538
31.0.50; 31.0.50; 31.0.50; feature/igc: using magit-section-cycle-global (S-TAB) and magit-section-toggle (TAB) in some random ways blocks GNU Emacs.

Previous Next

Package: emacs;

Reported by: João Moreira <joaomoreira <at> gmx.se>

Date: Tue, 25 Feb 2025 03:42:01 UTC

Severity: normal

Found in version 31.0.50

Full log


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

From: Helmut Eller <eller.helmut <at> gmail.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: pipcet <at> protonmail.com, Ihor Radchenko <yantar92 <at> posteo.net>,
 Stefan Monnier <monnier <at> iro.umontreal.ca>, joaomoreira <at> gmx.se,
 76538 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#76538: 31.0.50; 31.0.50; 31.0.50; feature/igc: using
 magit-section-cycle-global (S-TAB) and magit-section-toggle (TAB) in some
 random ways blocks GNU Emacs.
Date: Mon, 03 Mar 2025 09:39:52 +0100
[Message part 1 (text/plain, inline)]
On Mon, Mar 03 2025, Gerd Möllmann wrote:

> Do you have a concrete scenario in mind?

To increase the probability of the problem, let's call igc_collect from
igc_add_marker, like so:

diff --git a/src/igc.c b/src/igc.c
index ec714cad435..9bf0a0eca91 100644
--- a/src/igc.c
+++ b/src/igc.c
@@ -4595,7 +4595,9 @@ igc_add_marker (struct buffer *b, struct Lisp_Marker *m)
 
   IGC_MA_FREE_LIST (xv) = IGC_MA_MARKER (xv, slot);
   IGC_MA_MARKER (xv, slot) = make_lisp_ptr (m, Lisp_Vectorlike);
-  IGC_MA_NEXT (xv, slot) = IGC_MA_HEAD (xv);
+  Lisp_Object head = IGC_MA_HEAD (xv);
+  igc_collect ();
+  IGC_MA_NEXT (xv, slot) = head;
   IGC_MA_PREV (xv, slot) = make_fixnum (-1);
   IGC_MA_HEAD (xv) = make_fixnum (slot);
   ptrdiff_t next = XFIXNUM (IGC_MA_NEXT (xv, slot));


Then, run the code below with

  ./src/emacs -Q -batch -l /tmp/m.el -f test

For me, Emacs seems to enter an endless loop after creating 36 markers.

Helmut

[m.el (text/plain, attachment)]

This bug report was last modified 106 days ago.

Previous Next


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