emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MPS: face-cache


From: Gerd Möllmann
Subject: Re: MPS: face-cache
Date: Mon, 29 Apr 2024 21:36:01 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Helmut Eller <eller.helmut@gmail.com> writes:

> On Mon, Apr 29 2024, Gerd Möllmann wrote:
>
>> Hallo Helmut,
>
> Gudn Abend,

Einen Guten

>
>> i wonder - now that we trace glyph matrices, could we get rid of the
>> ambig roots created in dispnew.c? like
>>
>> #ifdef HAVE_MPS
>>              igc_xnrealloc_ambig (row->glyphs[LEFT_MARGIN_AREA],
>>                             dim.width, sizeof (struct glyph));
>> #else
>>              xnrealloc (row->glyphs[LEFT_MARGIN_AREA],
>>                         dim.width, sizeof (struct glyph));
>> #endif
>
> You mean like reverting back to xnrealloc?  That's a good way to crash
> immediately at startup :-)
>
> There also are glyph matrices in struct frame that aren't traced yet,
> but adding code to fix_frame didn't help.  Even struct tty_menu_state
> has glyph matrices; though probably not used in GUI mode.  Either way, a
> useful test case.

Maybe the frame matrix is actually responsible for the crashes.

Windows on tty frames, don't manage their own memory but use parts of a
frame matrix which the frame malloc's. The reason for that is that the
"drawing" code for ttys does optimizations for the frame/tty at once.
Theoretically the output for one window could reuse parts of another
window. That was, BTW the way pre-21 Emacs did things also for GUI
frames.

With proportional fonts etc. such a frame-based redisplay makes no sense,
so I made windows on GUI Frames manage their own memory and so on, which
also made is possible to update single windows and not all windows on a
frame. And so on.

On startup, I believe we have initially a tty frame (invisble). 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]