summaryrefslogtreecommitdiff
path: root/src/wayland/meta-wayland.c
diff options
context:
space:
mode:
authorJonas Ã…dahl <jadahl@gmail.com>2021-10-28 15:30:41 +0200
committerMarge Bot <marge-bot@gnome.org>2021-12-07 16:38:20 +0000
commitad0d70d5d5bfbbc91f692b578afc1b41465fa18b (patch)
tree8c4ddf88b8528c0fcf323798642058d7fcf69993 /src/wayland/meta-wayland.c
parent754c8345903a0d40fb9a0dacb3239a2207cff392 (diff)
downloadmutter-ad0d70d5d5bfbbc91f692b578afc1b41465fa18b.tar.gz
wayland: Detach event source on tear down
No reason keeping it attached; would one continue using a main loop on the default main context after tear down, we'd get callbacks causing use-after-free issues. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2140>
Diffstat (limited to 'src/wayland/meta-wayland.c')
-rw-r--r--src/wayland/meta-wayland.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c
index 3381a497e..dccf0da10 100644
--- a/src/wayland/meta-wayland.c
+++ b/src/wayland/meta-wayland.c
@@ -436,6 +436,7 @@ meta_wayland_compositor_finalize (GObject *object)
g_clear_pointer (&compositor->display_name, g_free);
g_clear_pointer (&compositor->wayland_display, wl_display_destroy);
+ g_clear_pointer (&compositor->source, g_source_destroy);
G_OBJECT_CLASS (meta_wayland_compositor_parent_class)->finalize (object);
}
@@ -542,6 +543,8 @@ meta_wayland_compositor_new (MetaContext *context)
*/
g_source_set_priority (wayland_event_source, GDK_PRIORITY_EVENTS + 1);
g_source_attach (wayland_event_source, NULL);
+ compositor->source = wayland_event_source;
+ g_source_unref (wayland_event_source);
g_signal_connect (stage, "after-update",
G_CALLBACK (on_after_update), compositor);