GNU bug report logs -
#79116
31.0.50; Crash on IGC build
Previous Next
Full log
Message #47 received at 79116 <at> debbugs.gnu.org (full text, mbox):
On Thu, Jul 31 2025, Gerd Möllmann wrote:
> BTW, glyph pools are only used for tty frames. Don't know if that plays
> a role here.
I didn't know that. And the glyph matrix, is that a tty-only thing too?
Anyway, my concern is a bit more general: I think that objects without
memory barriers, (e.g. structs allocated with malloc) should be scanned
as roots.
E.g. in fix_frame there is code that uses FRAME_FONT and to get the
address of some field in a device dependent struct. This struct is not
protected by a memory barrier; I think these kind of structs should be
roots.
In the MPS paper, section "Phase 4: Black Mutator Tracing", they say
that gray and white segments are read protected. I assume that also
means that, at his point, there are no write barriers. If the mutator
can read a pointer to a white object from a struct without read barriers
and put the white pointer in a black object, then we have a problem.
That's why I think that structs without memory barriers should be roots.
There might be special circumstances where code like in fix_frame is
sufficient. E.g. if for some reason all paths to the font field go
though the read-protected frame. But I think those special conditions
are hard to think about and it would be simpler to just make the thing a
root.
Helmut
This bug report was last modified 17 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.