Hi Gerd,

No problems, I'd love to see this go in one day, it's just hard enough to carve out time to debug crash dumps

I got overzealous with the change in pgtkterm.c, with the call from `lispstpcpy` (and your explanation there makes sense)
looking at xterm, I see we have not marked that as a root , which is where I think that code was ported from originally.

I have attached an updated patch, using a rebuilt igc-emacs from that commit, which is holding up.

Thanks,


On Wed, Nov 6, 2024 at 7:56 PM Gerd Möllmann <gerd.moellmann@gmail.com> wrote:
Fejfighter <fejfighter@gmail.com> writes:

> This patch marks 2 outstanding ambiguous roots and appears to solve
> crashing bugs I had been experiencing with igc/mps and pgtk.
>
> I have run this locally today, and I would have normally faced crashes
> at timer expiration, this appears to be holding up.

Thanks for the report, Jeff! Nice to see that someone besides me is
using this :-).

I think I see why the change in atimer.c is necessary: pgtk stores a
struct frame * as client_data in an atimer structure. That's a Lisp
object that can move during GC. Understood.

The other change in pgtkterm.c I don't understand. AFAICS, x_id_name of
the display_info structure is indeed only used as a character buffer
into which characters from Lisp strings are memcpy'd. Could you please
explain that one? (I'm macOS only, so I don't know anything about pgtk,
if that matters.)