From fbe7a8df3ad99ecb54c2c77f6e74768064f43a64 Mon Sep 17 00:00:00 2001 From: Niels De Graef Date: Tue, 31 Jan 2023 10:15:57 +0100 Subject: [PATCH] clutter: Fix ClutterMainContext leaking events There's still a possibility that some events remain within the `ClutterMainContext` when it's being unref-ed for the last time (as seen on asan logs). Make sure they get freed by using `g_async_queue_new_full()` and specifying the appropriate destroy function. Part-of: --- clutter/clutter/clutter-main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clutter/clutter/clutter-main.c b/clutter/clutter/clutter-main.c index e758e170a..03658a6c6 100644 --- a/clutter/clutter/clutter-main.c +++ b/clutter/clutter/clutter-main.c @@ -614,7 +614,8 @@ clutter_context_new (ClutterBackendConstructor backend_constructor, _clutter_settings_set_backend (clutter_context->settings, clutter_context->backend); - clutter_context->events_queue = g_async_queue_new (); + clutter_context->events_queue = + g_async_queue_new_full ((GDestroyNotify) clutter_event_free); clutter_context->last_repaint_id = 1; if (!clutter_init_real (clutter_context, error))