From f74a46d98d6f9ba797fe914d8975252e4009deef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 29 May 2024 20:40:55 +0200 Subject: [PATCH] backends/remote-access-controller: Own and free the session managers We were leaking the session managers list, but at this point I feel it looks cleaner to also own it fully Part-of: --- src/backends/meta-remote-access-controller.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/backends/meta-remote-access-controller.c b/src/backends/meta-remote-access-controller.c index e84e82edc..82a25c8c8 100644 --- a/src/backends/meta-remote-access-controller.c +++ b/src/backends/meta-remote-access-controller.c @@ -194,7 +194,7 @@ meta_remote_access_controller_add (MetaRemoteAccessController *controller, MetaDbusSessionManager *session_manager) { controller->session_managers = g_list_append (controller->session_managers, - session_manager); + g_object_ref (session_manager)); } static void @@ -274,9 +274,23 @@ meta_remote_access_controller_init (MetaRemoteAccessController *controller) { } +static void +meta_remote_access_handle_finalize (GObject *object) +{ + MetaRemoteAccessController *controller = META_REMOTE_ACCESS_CONTROLLER (object); + + g_clear_list (&controller->session_managers, g_object_unref); + + G_OBJECT_CLASS (meta_remote_access_controller_parent_class)->finalize (object); +} + static void meta_remote_access_controller_class_init (MetaRemoteAccessControllerClass *klass) { + GObjectClass *object_class = G_OBJECT_CLASS (klass); + + object_class->finalize = meta_remote_access_handle_finalize; + controller_signals[CONTROLLER_NEW_HANDLE] = g_signal_new ("new-handle", G_TYPE_FROM_CLASS (klass),