summaryrefslogtreecommitdiff
path: root/src/managers/screenshare/ScreenshareManager.cpp
diff options
context:
space:
mode:
authorIkalco <73481042+ikalco@users.noreply.github.com>2026-03-05 08:06:55 -0600
committerGitHub <noreply@github.com>2026-03-05 14:06:55 +0000
commit803e81ac398ff56816321fbe24f013671cfebc7f (patch)
tree9c3007c6b9f65f06d5969f03b2cf8c6c5e0f94fd /src/managers/screenshare/ScreenshareManager.cpp
parent34c7cc7d38256f32f30a947f8b459df220149feb (diff)
screenshare: improve destroy logic of objects (#13554)
Diffstat (limited to 'src/managers/screenshare/ScreenshareManager.cpp')
-rw-r--r--src/managers/screenshare/ScreenshareManager.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/src/managers/screenshare/ScreenshareManager.cpp b/src/managers/screenshare/ScreenshareManager.cpp
index 57b9f6ef..70e2bf5e 100644
--- a/src/managers/screenshare/ScreenshareManager.cpp
+++ b/src/managers/screenshare/ScreenshareManager.cpp
@@ -145,17 +145,13 @@ WP<CScreenshareSession> CScreenshareManager::getManagedSession(eScreenshareType
auto& session = *it;
session->stoppedListener = session->m_session->m_events.stopped.listen([session = WP<SManagedSession>(session)]() {
- std::erase_if(Screenshare::mgr()->m_managedSessions, [&](const auto& s) { return !s || session.expired() || s->m_session == session->m_session; });
+ if (!session.expired())
+ std::erase_if(Screenshare::mgr()->m_managedSessions, [&](const auto& s) { return s && s->m_session.get() == session->m_session.get(); });
});
return session->m_session;
}
-void CScreenshareManager::destroyClientSessions(wl_client* client) {
- LOGM(Log::TRACE, "Destroy client sessions for {:x}", (uintptr_t)client);
- std::erase_if(m_managedSessions, [&](const auto& session) { return !session || session->m_session->m_client == client; });
-}
-
bool CScreenshareManager::isOutputBeingSSd(PHLMONITOR monitor) {
return std::ranges::any_of(m_pendingFrames, [monitor](const auto& f) {
if (!f || !f->m_session)