From 81fe2ae7f1da7578ac5208158c5bbc4d079effa3 Mon Sep 17 00:00:00 2001 From: github-usr-name Date: Mon, 26 Feb 2024 09:52:12 +0000 Subject: [PATCH] surface: ensure global pointers valid before using in destructor (#4844) This fixes an observed SigSegV resulting from the cursor surface using `g_pInputManager` when invoked from the `CInputManager` destructor Co-authored-by: github-user-name --- src/helpers/WLSurface.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/helpers/WLSurface.cpp b/src/helpers/WLSurface.cpp index ea34fbd4..25f11feb 100644 --- a/src/helpers/WLSurface.cpp +++ b/src/helpers/WLSurface.cpp @@ -83,11 +83,11 @@ void CWLSurface::destroy() { m_pWLRSurface->data = nullptr; m_pOwner = nullptr; - if (g_pCompositor->m_pLastFocus == m_pWLRSurface) + if (g_pCompositor && g_pCompositor->m_pLastFocus == m_pWLRSurface) g_pCompositor->m_pLastFocus = nullptr; - if (g_pInputManager->m_pLastMouseSurface == m_pWLRSurface) + if (g_pInputManager && g_pInputManager->m_pLastMouseSurface == m_pWLRSurface) g_pInputManager->m_pLastMouseSurface = nullptr; - if (g_pHyprRenderer->m_sLastCursorData.surf == m_pWLRSurface) + if (g_pHyprRenderer && g_pHyprRenderer->m_sLastCursorData.surf == m_pWLRSurface) g_pHyprRenderer->m_sLastCursorData.surf.reset(); m_pWLRSurface = nullptr;