Review Request 123731: Cleanup handling of notifications closing

Jan Kundrát jkt at kde.org
Tue May 12 22:54:46 UTC 2015


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


Is it OK to have a non-null main object whose d-ptr is nullptr already? If not, can you fix the cause of that?


src/notifybypopup.cpp (line 491)
<https://git.reviewboard.kde.org/r/123731/#comment55062>

    Is there an enum for this? Using that instead of a comment which explains what a magic value is about sounds much better.


- Jan Kundrát


On May 12, 2015, 11:59 a.m., Martin Klapetek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123731/
> -----------------------------------------------------------
> 
> (Updated May 12, 2015, 11:59 a.m.)
> 
> 
> Review request for KDE Frameworks.
> 
> 
> Repository: knotifications
> 
> 
> Description
> -------
> 
> While investigating the cause of crash of https://bugs.kde.org/show_bug.cgi?id=342752 I've come across some loose ends in how KNotifications is handling closing of notifications.
> 
> As for the crash itself, I never managed to reproduce even with special written test cases, but what happens (or seem to) is this:
>  * KNotification object gets deleted
>  * The destructor calls close() on all plugins
>  * The NotifyByPopup plugin does async dbus call to close the notification and returns
>  * KNotification's dpointer is deleted
>  * The DBus reply returns, calling NotifyByPopup::finished()
>  * Now for some reason the KNotification object is still not null but its dpointer is gone, so the check "if (!notification || d->notifications.contains(notification->id()))" crashes on the notification->id() call
> 
> So I've made it simply return -1 when dpointer is null, which should ideally prevent the crashes
> 
> 
> Diffs
> -----
> 
>   src/knotification.cpp 01962b3 
>   src/knotificationmanager.cpp 0d9b3b0 
>   src/knotificationmanager_p.h f8e7df8 
>   src/notifybypopup.cpp 2f84ab0 
> 
> Diff: https://git.reviewboard.kde.org/r/123731/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Martin Klapetek
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150512/0811cd75/attachment.html>


More information about the Kde-frameworks-devel mailing list