Skip to content

(cherry-pick) daemon: Don't crash in PowerDevil::Core::unloadAllActiveActions()

Jakob Petsovits requested to merge work/cherry-pick-41b4ca1d into Plasma/6.2

Cherry-pick MR for !478 (merged).


Commit 584cfdf0 introduced the daemon's ability to remove actions from Core::m_actionPool if they become unsupported at runtime. Commit 7a929fa0 fixed some resulting crashes by also cleaning up related map/set elements that contained this action. That was not enough, we got lots of crashes coming in since then.

The (many) remaining crashes happened in unloadAllActiveActions(), which cycles through Core::m_activeActions and accesses the corresponding action pointer in m_actionPool. The implication is that m_activeActions contains action IDs that are not present in m_actionPool. And indeed, commit 7a929fa0 missed cleaning up the action ID corresponding to the now-unsupported action.

With the dangling ID removed, PowerDevil should finally stop crashing.

SENTRY: FALLTHROUGH-30F BUG: 492349

(cherry picked from commit 41b4ca1d)

Co-authored-by: Jakob Petsovits jpetso@petsovits.com

Merge request reports

Loading