summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
authorTom Englund <tomenglund26@gmail.com>2024-06-06 20:27:09 +0200
committerGitHub <noreply@github.com>2024-06-06 20:27:09 +0200
commitaf5f24929d83cc7a97a77de516bc665e38acfa12 (patch)
treef2afec3d02f3595efdadb4e40fa4724244953c40 /src/Compositor.cpp
parentc95845b1488b4bd63e901cbdc4cb68c27a45971b (diff)
core: free more memory on destruction (#6348)
* pointermgr: add destructor to state and free buf if the pointer has a buffer set it wont be freed upon destruction, make asan more happy by adding a destructor and wlr_buf_unlock it on exit. * cursormgr: free the animation timer event source properly free the animation timer event source on destruction. * compositor: free the critsig event source on exit properly free the critical signal event source on exit. * popup: clang format style clang format.
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 254abd92..73708b1b 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -147,7 +147,7 @@ void CCompositor::initServer() {
m_sWLEventLoop = wl_display_get_event_loop(m_sWLDisplay);
// register crit signal handler
- wl_event_loop_add_signal(m_sWLEventLoop, SIGTERM, handleCritSignal, nullptr);
+ m_critSigSource = wl_event_loop_add_signal(m_sWLEventLoop, SIGTERM, handleCritSignal, nullptr);
if (!envEnabled("HYPRLAND_NO_CRASHREPORTER")) {
signal(SIGSEGV, handleUnrecoverableSignal);
@@ -373,6 +373,9 @@ void CCompositor::cleanup() {
if (m_sWLRBackend)
wlr_backend_destroy(m_sWLRBackend);
+ if (m_critSigSource)
+ wl_event_source_remove(m_critSigSource);
+
wl_display_terminate(m_sWLDisplay);
m_sWLDisplay = nullptr;