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.

From: Gerd Möllmann <[email-masked]>
Date: Sat, 01 Mar 2025 08:17:45 +0100

Gerd Möllmann <[email-masked]> writes:

> Gerd Möllmann <[email-masked]> writes:
>
>> Gerd Möllmann <[email-masked]> writes:
>>
>>> In any case, I think I would try to change DO_MARKERS to start at the
>>> end of the marker vector. If fix_marker_vector runs often enough one
>>> could also "straighten" the free-list there, maybe.
>>
>> Or one could build a doubly-linked list of markers in most-recently
>> created order. But that would mean 3 array slots per marker in the
>> marker vector. Don't know.
>
> Which would be something like the attached. Can someone try this with
> the original recipe? (It's a quick sketch, and blah blah.)

And I think I'll keep that. It makes an overall nicer implementation of
DO_MARKERS, keeps add and remove O(1), and provides iteration in
most-recently added order, which should be the same as without igc.

I like it :-). Until something better comes along, of course.