backends/x11: Unref keymap on finalize

Despite keymaps being relatively large, this does not really have much
of an impact, because there is only ever one and it's only leaked on
shutdown.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1728>
This commit is contained in:
Sebastian Keller 2021-02-11 15:46:13 +01:00 committed by Marge Bot
parent 7dd4ae339c
commit 0e396ee7bb

View File

@ -874,6 +874,17 @@ meta_backend_x11_dispose (GObject *object)
G_OBJECT_CLASS (meta_backend_x11_parent_class)->dispose (object);
}
static void
meta_backend_x11_finalize (GObject *object)
{
MetaBackendX11 *x11 = META_BACKEND_X11 (object);
MetaBackendX11Private *priv = meta_backend_x11_get_instance_private (x11);
g_clear_pointer (&priv->keymap, xkb_keymap_unref);
G_OBJECT_CLASS (meta_backend_x11_parent_class)->finalize (object);
}
static void
meta_backend_x11_class_init (MetaBackendX11Class *klass)
{
@ -881,6 +892,7 @@ meta_backend_x11_class_init (MetaBackendX11Class *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->dispose = meta_backend_x11_dispose;
object_class->finalize = meta_backend_x11_finalize;
backend_class->create_clutter_backend = meta_backend_x11_create_clutter_backend;
backend_class->post_init = meta_backend_x11_post_init;
backend_class->grab_device = meta_backend_x11_grab_device;