From e16e8c012111d092cfcfa7c2d4cabfea5a0d8eea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Date: Mon, 9 Sep 2024 20:13:24 +0200 Subject: [PATCH] wayland/drm-lease: Fix reference count cycle MetaWaylandDrmLeaseDevice and MetaWaylandDrmLeaseConnector hold a reference to each other. In both cases, the reference count was increased. Do not increase the reference count when lease_connector->lease_device is stored to break the reference count cycle. Fixes: fb08a597e1d3 ("wayland/drm-lease: Advertize initial connectors") Part-of: (cherry picked from commit 9c536939a1b2ea8b2d0c1682947b933e9343546f) --- src/wayland/meta-wayland-drm-lease.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/wayland/meta-wayland-drm-lease.c b/src/wayland/meta-wayland-drm-lease.c index 60ec7429c..a7cae570c 100644 --- a/src/wayland/meta-wayland-drm-lease.c +++ b/src/wayland/meta-wayland-drm-lease.c @@ -114,7 +114,6 @@ meta_wayland_drm_lease_connector_free (MetaWaylandDrmLeaseConnector *lease_conne { g_object_unref (lease_connector->kms_connector); g_free (lease_connector->description); - meta_wayland_drm_lease_device_release (lease_connector->lease_device); } static void @@ -400,7 +399,7 @@ meta_wayland_drm_lease_connector_new (MetaWaylandDrmLeaseDevice *lease_device, MetaWaylandDrmLeaseConnector *lease_connector; lease_connector = g_rc_box_new0 (MetaWaylandDrmLeaseConnector); - lease_connector->lease_device = g_rc_box_acquire (lease_device); + lease_connector->lease_device = lease_device; lease_connector->kms_connector = g_object_ref (kms_connector); lease_connector->description = get_connector_description (kms_connector);