Fix crash on kquitapp/logout
ClosedPublic

Authored by davidedmundson on Jun 15 2016, 1:00 PM.

Details

Summary

qDeleteAll will iterate through containments() however this is
dynamically changing the list we're iterating through.

Particularly bad is deleting the panel might delete the system tray
containment, leading to a double delete on a now dangly pointer.

Test Plan

kquitapp5 plasmashell. No crash

Diff Detail

Repository
R120 Plasma Workspace
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
davidedmundson retitled this revision from to Fix crash on kquitapp/logout.
davidedmundson updated this object.
davidedmundson edited the test plan for this revision. (Show Details)
davidedmundson added a reviewer: Plasma.
Restricted Application added a project: Plasma. · View Herald TranscriptJun 15 2016, 1:00 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript

FWIW, longer term I believe the correct fix is to remove all of this.

Corona::~Corona will delete containments anyway (as the parent) and we already delete a view if a containment gets deleted. (or at least should) but I'm not going to make a change that big this close to release.

broulik accepted this revision.Jun 15 2016, 1:09 PM
broulik added a reviewer: broulik.
This revision is now accepted and ready to land.Jun 15 2016, 1:09 PM
This revision was automatically updated to reflect the committed changes.