Comparing to xterm.c and scanning other parts of the pgtk specific code I only found this as the only allocation unique to PGTK as much of the things xterm needs to worry about is managed by gtk. Could someone apply this patch to the scratch/igc branch please? I also ran the benchmark suite with the latest changes and it's the first time that it has not crashed emacs/oom'd out or otherwise destabilized my machine, It is starting to appear to be more stable for my use cases Thanks for the hard work. Jeff Walsh On Thu, Jun 27, 2024 at 4:51 PM Fejfighter wrote: > Yeah that makes sense and is likely the cause of the crashes I have on > that branch, rather than other common code. > > I can't promise I'll have something up soon, but I will try. > > > > On Thu, Jun 27, 2024 at 4:18 PM Po Lu wrote: > >> Eli Zaretskii writes: >> >> > branch: scratch/igc >> > commit 7057c3562ff373c6061b2b9e6d124fb5f6b90ee5 >> > Author: Jeff Walsh >> > Commit: Eli Zaretskii >> > >> > * src/pgtkterm.c (mark_pgtkterm): Exclude from MPS builds. >> > --- >> > src/pgtkterm.c | 2 ++ >> > 1 file changed, 2 insertions(+) >> > >> > diff --git a/src/pgtkterm.c b/src/pgtkterm.c >> > index 49b7ea406f8..7279f5d863b 100644 >> > --- a/src/pgtkterm.c >> > +++ b/src/pgtkterm.c >> > @@ -336,6 +336,7 @@ evq_flush (struct input_event *hold_quit) >> > return n; >> > } >> > >> > +#ifndef HAVE_MPS >> > void >> > mark_pgtkterm (void) >> > { >> > @@ -369,6 +370,7 @@ mark_pgtkterm (void) >> > mark_object (device->name); >> > } >> > } >> > +#endif >> > >> > char * >> > get_keysym_name (int keysym) >> >> Doesn't this require that device structures be registered and >> deregistered as GC roots when allocated and deallocated? The same >> applies to objects in the module's private event queue. >> >