[KDE/Mac] Review Request 124061: [OS X] avoid crashing KNode when unsubscribing from a group

Daniel Vrátil dvratil at kde.org
Thu Jun 11 15:42:27 UTC 2015


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

Ship it!


Looks sensible, and if it fixes the crash, ship it!


knode/kncollectionview.cpp (line 180)
<https://git.reviewboard.kde.org/r/124061/#comment55758>

    Maybe add a comment why this is needed


- Daniel Vrátil


On June 10, 2015, 2:37 p.m., René J.V. Bertin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/124061/
> -----------------------------------------------------------
> 
> (Updated June 10, 2015, 2:37 p.m.)
> 
> 
> Review request for KDE Software on Mac OS X and KDEPIM.
> 
> 
> Repository: kdepim
> 
> 
> Description
> -------
> 
> On OS X, unsubscribing from a group with the context menu's action item (right-click on group, unsubscribe) leads to a crash systematically. Analysis of the (huge) backtrace shows that this is because a (pending?) redraw event is sent (by `qApp->processEvents()` in `KNMainWidget::secureProcessEvents`) to the group entry after it has already been deleted. (The pending event is likely to be an expose event queued when the context menu closed.)
> Normally one would avoid this situation by using `deleteLater()` instead of the direct `delete`, but since `KNCollectionViewItem` does not inherit `QObject` a workaround is needed.
> The attached patch implements a solution that to prevents the crashing in my testing. It disables the item to be removed in addition to setting it hidden, then updates the list (`setListItem(0)`), group and calls `qApp->processEvents()` explicitly before it is called in `KNMainWidget::secureProcessEvents()` so that pending events are processed first. The item is deleted only after those steps.
> 
> I decided not to make this modification specific to OS X (`Q_OS_MAC`) because it should not have undesirable side-effects elsewhere (and there may be other platforms where similar pending-events occur).
> 
> 
> Diffs
> -----
> 
>   knode/kncollectionview.cpp f8bce14 
> 
> Diff: https://git.reviewboard.kde.org/r/124061/diff/
> 
> 
> Testing
> -------
> 
> On Mac OS X 10.9.5 with KDELibs 4.14.7 and kdepim 4.13.3 (the patched function has not changed since that version).
> 
> 
> Thanks,
> 
> René J.V. Bertin
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20150611/1f904803/attachment.html>


More information about the kde-mac mailing list