https://bugs.kde.org/show_bug.cgi?id=516937
Nate Graham <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Latest Commit|https://invent.kde.org/plas |https://invent.kde.org/plas |ma/plasma-workspace/-/commi |ma/plasma-workspace/-/commi |t/8b4500d7acc699ec72bbac4ae |t/db08d2f00951ad7a0ad604fb0 |ed30db3e168a76d |3cf5d0b6e2c057b --- Comment #11 from Nate Graham <[email protected]> --- Git commit db08d2f00951ad7a0ad604fb03cf5d0b6e2c057b by Nate Graham, on behalf of Dobry Nikolov. Committed on 03/03/2026 at 20:03. Pushed by ngraham into branch 'Plasma/6.6'. shell: restore early destroyed guard for panel containments Commit 086ff5d8139eed36c25b3a7417f0eed8ec223739 removed a containmentAdded lambda from the constructor that connected QObject::destroyed -> panelContainmentDestroyed for every panel containment as soon as it was created. It reasoned that createWaitingPanels() already connects this signal, making it redundant. However, createWaitingPanels() only connects destroyed *after* successfully creating a PanelView for the containment. If a containment is freed before that point (e.g. its plugin is missing and libplasma issues deleteLater()), panelContainmentDestroyed is never connected, m_waitingPanels retains a dangling pointer, and the next dereference (e.g. in isScreenUiReady()) crashes with SIGSEGV. Restore the constructor connect so the guard is in place from the moment any panel containment is added, with no window of exposure. The connect inside createWaitingPanels() is now truly redundant and is removed. (cherry picked from commit 0cc554a33cd496569f0fb1c9ba3a3f9261e627b7) M +6 -2 shell/shellcorona.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/db08d2f00951ad7a0ad604fb03cf5d0b6e2c057b -- You are receiving this mail because: You are watching all bug changes.
