From: Po Lu Date: Fri, 8 Apr 2022 09:00:37 +0000 (+0800) Subject: Fix GC marking of input events with devices X-Git-Tag: emacs-29.0.90~1931^2~707 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c4921d1157a2e3e15b1d779a6bdf768e307275dd;p=emacs.git Fix GC marking of input events with devices * src/keyboard.c (mark_kboards): * src/pgtkterm.c (mark_pgtkterm): Mark `device' as well. --- diff --git a/src/keyboard.c b/src/keyboard.c index 01274b4d4a8..588ee75ee00 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -13088,6 +13088,12 @@ mark_kboards (void) mark_object (event->ie.y); mark_object (event->ie.frame_or_window); mark_object (event->ie.arg); + + /* This should never be allocated for a single event, but + mark it anyway in the situation where the list of devices + changed but an event with an old device is still present + in the queue. */ + mark_object (event->ie.device); } } } diff --git a/src/pgtkterm.c b/src/pgtkterm.c index d8c6dad2f9d..fb62f5978de 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -347,6 +347,7 @@ mark_pgtkterm (void) mark_object (ev->ie.y); mark_object (ev->ie.frame_or_window); mark_object (ev->ie.arg); + mark_object (ev->ie.device); } for (dpyinfo = x_display_list; dpyinfo;