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: Ihor Radchenko <[email-masked]>
Date: Tue, 25 Feb 2025 20:12:21 +0000

Helmut Eller <[email-masked]> writes:

> I think I can reproduce this with the attached script and Magit
> 4.2.0. from .emacs.d.

Confirmed with Magit 4.3.0 from ELPA

> I'm not sure if the non-MPS version is much better in this case.  Magit
> seems to create an impressive number of markers.

Better for me.

The reproducer involves 20+Mb magit buffer with a lot of text hidden.
I toyed around with gdb a bit, and it appears to me that the problem is
not with the number of markers. Rather an opposite. Marker cache does
not help here initially and we need to scan all the way through 20Mb of
bytes.

In my testing, I looked into the total number of markers in the buffer,
and it appears that the number is always fairly small.

May someone more familiar with the code check if markers created in
buf_charpos_to_bytepos might be created and immediately GCed? That's my
impression (maybe totally wrong).

-- 
Ihor Radchenko // yantar92,
Org mode maintainer,
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>