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:fb08a597e1
("wayland/drm-lease: Advertize initial connectors") Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4031> (cherry picked from commit9c536939a1
)
This commit is contained in:
parent
e9dbc4f6e4
commit
e16e8c0121
1 changed files with 1 additions and 2 deletions
|
@ -114,7 +114,6 @@ meta_wayland_drm_lease_connector_free (MetaWaylandDrmLeaseConnector *lease_conne
|
||||||
{
|
{
|
||||||
g_object_unref (lease_connector->kms_connector);
|
g_object_unref (lease_connector->kms_connector);
|
||||||
g_free (lease_connector->description);
|
g_free (lease_connector->description);
|
||||||
meta_wayland_drm_lease_device_release (lease_connector->lease_device);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -400,7 +399,7 @@ meta_wayland_drm_lease_connector_new (MetaWaylandDrmLeaseDevice *lease_device,
|
||||||
MetaWaylandDrmLeaseConnector *lease_connector;
|
MetaWaylandDrmLeaseConnector *lease_connector;
|
||||||
|
|
||||||
lease_connector = g_rc_box_new0 (MetaWaylandDrmLeaseConnector);
|
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->kms_connector = g_object_ref (kms_connector);
|
||||||
lease_connector->description = get_connector_description (kms_connector);
|
lease_connector->description = get_connector_description (kms_connector);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue