[Konsole-devel] Review Request 118839: Fix crash on close

Commit Hook null at kde.org
Fri Jun 20 12:04:48 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/118839/#review60590
-----------------------------------------------------------


This review has been submitted with commit dd1b2b4df04f13bb2a9f3bcef106dc3604c5fc1a by Aurélien Gâteau to branch frameworks.

- Commit Hook


On June 19, 2014, 2:26 p.m., Aurélien Gâteau wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/118839/
> -----------------------------------------------------------
> 
> (Updated June 19, 2014, 2:26 p.m.)
> 
> 
> Review request for Konsole.
> 
> 
> Bugs: 331724
>     http://bugs.kde.org/show_bug.cgi?id=331724
> 
> 
> Repository: konsole
> 
> 
> Description
> -------
> 
> Move code responsible for 'forgetting' a view outside of code responding to the
> TerminalDisplay deletion.
> 
> This avoids a loop like this:
> 
> ~MainWindow
> => ~QStackedWidget
> => ~TerminalDisplay
> => QObject::destroyed
> => ViewContainer::viewDestroyed
> => ViewContainer::removeViewWidget
>    - internal cleanup
>    - try to remove TerminalDisplay from QStackedWidget which is being deleted and
> crash
> 
> Instead the code now does:
> 
> ~MainWindow
> => ~QStackedWidget
> => ~TerminalDisplay
> => QObject::destroyed
> => ViewContainer::viewDestroyed
> => ViewContainer::forgetView (does the internal clean up)
> 
> And if one tries to explicitly remove a view, sequence is:
> 
> ViewContainer::removeView
> => ViewContainer::forgetView
> => ViewContainer::removeViewWidget
> 
> The patch also removes ViewManager::focusActiveView() because it causes a crash
> when closing a TerminalDisplay as it tries to put the focus on the deleted
> TerminalDisplay. I initially called it through a queued connection, but realized
> it is actually not needed for focus to be passed to the correct view, so just
> removed it.
> 
> 
> Diffs
> -----
> 
>   src/ViewContainer.h 60d2bd9 
>   src/ViewContainer.cpp 79c24d5 
>   src/ViewManager.h 047b7ee 
>   src/ViewManager.cpp 75473e9 
>   src/ViewSplitter.cpp bfc727e 
> 
> Diff: https://git.reviewboard.kde.org/r/118839/diff/
> 
> 
> Testing
> -------
> 
> Started and closed Konsole, created and deleted tabs, created and deleted split views. No crash.
> 
> 
> Thanks,
> 
> Aurélien Gâteau
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/konsole-devel/attachments/20140620/f65ff893/attachment.html>


More information about the konsole-devel mailing list