desktop/window: avoid uaf on instant removal of a window

ref https://github.com/hyprwm/Hyprland/discussions/12999
This commit is contained in:
Vaxry 2026-01-16 09:11:12 +01:00
parent ac9df44788
commit 0b13d398fe
No known key found for this signature in database
GPG key ID: 665806380871D640

View file

@ -2648,15 +2648,15 @@ void CWindow::destroyWindow() {
m_xdgSurface.reset();
if (!m_fadingOut) {
Log::logger->log(Log::DEBUG, "Unmapped {} removed instantly", m_self.lock());
g_pCompositor->removeWindowFromVectorSafe(m_self.lock()); // most likely X11 unmanaged or sumn
}
m_listeners.unmap.reset();
m_listeners.destroy.reset();
m_listeners.map.reset();
m_listeners.commit.reset();
if (!m_fadingOut) {
Log::logger->log(Log::DEBUG, "Unmapped {} removed instantly", m_self.lock());
g_pCompositor->removeWindowFromVectorSafe(m_self.lock()); // most likely X11 unmanaged or sumn
}
}
void CWindow::activateX11() {