summaryrefslogtreecommitdiff
path: root/kde-plasma/kwayland-server/files/kwayland-server-5.24.4-fix-race-in-wp_drm_lease_v1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde-plasma/kwayland-server/files/kwayland-server-5.24.4-fix-race-in-wp_drm_lease_v1.patch')
-rw-r--r--kde-plasma/kwayland-server/files/kwayland-server-5.24.4-fix-race-in-wp_drm_lease_v1.patch73
1 files changed, 0 insertions, 73 deletions
diff --git a/kde-plasma/kwayland-server/files/kwayland-server-5.24.4-fix-race-in-wp_drm_lease_v1.patch b/kde-plasma/kwayland-server/files/kwayland-server-5.24.4-fix-race-in-wp_drm_lease_v1.patch
deleted file mode 100644
index 1799a711b472..000000000000
--- a/kde-plasma/kwayland-server/files/kwayland-server-5.24.4-fix-race-in-wp_drm_lease_v1.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From dc09ce85f00b3a790e2817888067c3826280dd8e Mon Sep 17 00:00:00 2001
-From: Weng Xuetian <wengxt@gmail.com>
-Date: Sat, 16 Apr 2022 00:01:12 -0700
-Subject: [PATCH] Fix race in wp_drm_lease_v1.
-
-Basically this is a well known issue in wayland for globals. If bind
-comes after destroyed, it will raise a invalid global error. The common
-practice is to delay the destroy of global. Similar technique is also
-applied to wl_output.
-
-CCBUG: 452435
-(cherry picked from commit cdc9dcfb0a1f0445c46ee2cefa114329a2408555)
----
- src/server/drmleasedevice_v1_interface.cpp | 14 +++++---------
- src/server/drmleasedevice_v1_interface_p.h | 2 +-
- 2 files changed, 6 insertions(+), 10 deletions(-)
-
-diff --git a/src/server/drmleasedevice_v1_interface.cpp b/src/server/drmleasedevice_v1_interface.cpp
-index bffd22cd..7e338022 100644
---- a/src/server/drmleasedevice_v1_interface.cpp
-+++ b/src/server/drmleasedevice_v1_interface.cpp
-@@ -84,10 +84,6 @@ void DrmLeaseDeviceV1InterfacePrivate::remove()
- request->connectors.clear();
- }
- globalRemove();
-- removed = true;
-- if (resourceMap().isEmpty()) {
-- delete this;
-- }
- }
-
- void DrmLeaseDeviceV1InterfacePrivate::registerConnector(DrmLeaseConnectorV1Interface *connector)
-@@ -144,6 +140,9 @@ void DrmLeaseDeviceV1InterfacePrivate::wp_drm_lease_device_v1_release(Resource *
-
- void DrmLeaseDeviceV1InterfacePrivate::wp_drm_lease_device_v1_bind_resource(Resource *resource)
- {
-+ if (isGlobalRemoved()) {
-+ return;
-+ }
- if (!hasDrmMaster) {
- pendingFds << resource->handle;
- return;
-@@ -161,12 +160,9 @@ void DrmLeaseDeviceV1InterfacePrivate::wp_drm_lease_device_v1_bind_resource(Reso
- }
- }
-
--void DrmLeaseDeviceV1InterfacePrivate::wp_drm_lease_device_v1_destroy_resource(Resource *resource)
-+void DrmLeaseDeviceV1InterfacePrivate::wp_drm_lease_device_v1_destroy_global()
- {
-- Q_UNUSED(resource)
-- if (removed && resourceMap().isEmpty()) {
-- delete this;
-- }
-+ delete this;
- }
-
-
-diff --git a/src/server/drmleasedevice_v1_interface_p.h b/src/server/drmleasedevice_v1_interface_p.h
-index 4bef36e4..085aac85 100644
---- a/src/server/drmleasedevice_v1_interface_p.h
-+++ b/src/server/drmleasedevice_v1_interface_p.h
-@@ -44,7 +44,7 @@ protected:
- void wp_drm_lease_device_v1_create_lease_request(Resource *resource, uint32_t id) override;
- void wp_drm_lease_device_v1_release(Resource *resource) override;
- void wp_drm_lease_device_v1_bind_resource(Resource *resource) override;
-- void wp_drm_lease_device_v1_destroy_resource(Resource *resource) override;
-+ void wp_drm_lease_device_v1_destroy_global() override;
- };
-
- class DrmLeaseConnectorV1InterfacePrivate : public QObject, public QtWaylandServer::wp_drm_lease_connector_v1
---
-GitLab
-