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


View this message in rfc822 format

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: 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: Sat, 01 Mar 2025 17:59:37 +0100
On Fri, Feb 28 2025, Gerd Möllmann wrote:

> +static void
> +unchain (struct Lisp_Vector *v, int slot)
> +{
> +  IGC_MA_MARKER (v, slot) = IGC_MA_FREE_LIST (v);
> +  IGC_MA_FREE_LIST (v) = make_fixnum (slot);
> +
> +  int prev = XFIXNUM (IGC_MA_PREV (v, slot));
> +  if (prev >= 0)
> +    IGC_MA_NEXT (v, prev) = IGC_MA_NEXT (v, slot);
> +  else
> +    IGC_MA_HEAD (v) = IGC_MA_NEXT (v, slot);
> +
> +  int next = XFIXNUM (IGC_MA_NEXT (v, slot));
> +  if (next >= 0)
> +    IGC_MA_PREV (v, next) = IGC_MA_PREV (v, slot);
> +}

Doing this in the collector looks quite risky.  It seems to assume that
the mutator is not in the middle of reading from or writing to any of
the involved slots.

Helmut




This bug report was last modified 203 days ago.

Previous Next


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