summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/managers/ProtocolManager.cpp2
-rw-r--r--src/protocols/core/Shm.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/managers/ProtocolManager.cpp b/src/managers/ProtocolManager.cpp
index 213a6053..fe4e3c7f 100644
--- a/src/managers/ProtocolManager.cpp
+++ b/src/managers/ProtocolManager.cpp
@@ -140,7 +140,7 @@ CProtocolManager::CProtocolManager() {
PROTO::data = makeUnique<CWLDataDeviceProtocol>(&wl_data_device_manager_interface, 3, "WLDataDevice");
PROTO::compositor = makeUnique<CWLCompositorProtocol>(&wl_compositor_interface, 6, "WLCompositor");
PROTO::subcompositor = makeUnique<CWLSubcompositorProtocol>(&wl_subcompositor_interface, 1, "WLSubcompositor");
- PROTO::shm = makeUnique<CWLSHMProtocol>(&wl_shm_interface, 1, "WLSHM");
+ PROTO::shm = makeUnique<CWLSHMProtocol>(&wl_shm_interface, 2, "WLSHM");
// Extensions
PROTO::viewport = makeUnique<CViewporterProtocol>(&wp_viewporter_interface, 1, "Viewporter");
diff --git a/src/protocols/core/Shm.cpp b/src/protocols/core/Shm.cpp
index 476b58e3..7cca3814 100644
--- a/src/protocols/core/Shm.cpp
+++ b/src/protocols/core/Shm.cpp
@@ -176,6 +176,7 @@ CWLSHMResource::CWLSHMResource(UP<CWlShm>&& resource_) : m_resource(std::move(re
if UNLIKELY (!good())
return;
+ m_resource->setRelease([this](CWlShm* r) { PROTO::shm->destroyResource(this); });
m_resource->setOnDestroy([this](CWlShm* r) { PROTO::shm->destroyResource(this); });
m_resource->setCreatePool([](CWlShm* r, uint32_t id, int32_t fd, int32_t size) {