[mutter] cursor: Hold reference to cursor tracker
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] cursor: Hold reference to cursor tracker
- Date: Wed, 22 Dec 2021 20:30:02 +0000 (UTC)
commit fc1de74442a571e5f2ab5a037773b477fa564144
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Wed Dec 22 19:37:16 2021 +0100
cursor: Hold reference to cursor tracker
This is so that it can unregister from it on tear down. The tracker owns
references to cursors too, but this cycle is already broken as the
backend calls 'g_object_run_dispose()' when tearing the cursor tracker
down.
Fixes a crash on shutdown.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2181>
src/backends/meta-cursor.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/meta-cursor.c b/src/backends/meta-cursor.c
index aaca5ca2a4..53f2cdf4b5 100644
--- a/src/backends/meta-cursor.c
+++ b/src/backends/meta-cursor.c
@@ -279,6 +279,7 @@ meta_cursor_sprite_finalize (GObject *object)
g_clear_pointer (&priv->texture, cogl_object_unref);
meta_cursor_tracker_unregister_cursor_sprite (priv->cursor_tracker, sprite);
+ g_clear_object (&priv->cursor_tracker);
G_OBJECT_CLASS (meta_cursor_sprite_parent_class)->finalize (object);
}
@@ -296,7 +297,7 @@ meta_cursor_tracker_set_property (GObject *object,
switch (prop_id)
{
case PROP_CURSOR_TRACKER:
- priv->cursor_tracker = g_value_get_object (value);
+ g_set_object (&priv->cursor_tracker, g_value_get_object (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]