> On July 7, 2015, 9:38 p.m., Mark Gaiser wrote:
> > src/knotificationmanager.cpp, line 89
> > <https://git.reviewboard.kde.org/r/124281/diff/3/?file=383605#file383605line89>
> >
> >     Don't you have a memory leak here?
> >     You have a list of pointers which you own here, but QList doesn't know 
> > that. When that list goes out of scope it doesn't delete the pointers as 
> > far as i know.
> >     The simplest way i can think of is to make plugins a class member and 
> > call qDeleteAll(m_plugins) in the class destructor which then deletes all 
> > objects.
> >     Or you could go for smart pointers which you store in the QList, that 
> > would also clean it up nicely when going out of scope.

> Don't you have a memory leak here?

No; the plugins wanted are deleted when KNotificationManager is deleted, the 
plugins not wanted are deleted on line 101. The QObject *s are owned by 
KNotificationManager, that's what the last arg to 
KPluginLoader::instantiatePlugins does.


On July 7, 2015, 9:38 p.m., Martin Klapetek wrote:
> > I'm looking at the KNotifications dependency graph here [1] and see that 
> > KWindowSystem is only required for KCrash.
> > So err, can't that one go as well since you removed KService which required 
> > KCrash which then required KWindowSystem?
> > 
> > I could be very wrong if KNotifications is using KWindowSystem somewhere, 
> > obviously. But the graph doesn't give me that impression.
> > 
> > [1] 
> > http://api.kde.org/frameworks-api/frameworks5-apidocs/knotifications/html/knotifications-dependencies.html

No; KWS is used much more than that, do a grep in the repo. Basically it's used 
for window activation/raising and related stuff, not _only_ because of KCrash. 
In fact, KCrash is only a dependency of KService and not used at all in 
KNotifications, KService is gone but KWindowSystem is still very much needed.


- Martin


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


On July 7, 2015, 9 p.m., Martin Klapetek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/124281/
> -----------------------------------------------------------
> 
> (Updated July 7, 2015, 9 p.m.)
> 
> 
> Review request for KDE Frameworks and Martin Gräßlin.
> 
> 
> Repository: knotifications
> 
> 
> Description
> -------
> 
> This patch reduces the dependencies of KNotifications framework and 
> effectively makes it a tier 2 framework.
> 
> KService is used only for locating additional notification plugins and to my 
> knowledge,
> there are none such plugins currently existing, at least not in all around 
> KDE plus
> the class for the plugins wasn't exported until about two months ago, so this 
> should
> be safe without a legacy support.
> 
> KIconThemes is used only to get "KIconLoader::Small" icon pixmap for 
> notifications
> using KPassivePopup. After some playing around it turns out that it puts the 
> icon into
> the KPassivePopup title and makes it as big as the text. So I've made the 
> icon size to
> be the same as the text height. So this keeps things visually the same + 
> still DPI aware,
> though I believe the KPassivePopup should receive a complete visual overhaul 
> anyway.
> 
> Additionally, KCodecs dependency has again one single usage for decoding html 
> entities
> to QChars within QXmlStreamReader parser, so eventually could also be 
> removed/replaced
> with QTextDocument::toPlainText() which seems to do the same job as 
> QXmlStreamReader+KCodecs.
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt 2d5437b 
>   metainfo.yaml 7fc15f7 
>   src/CMakeLists.txt 1cebece 
>   src/knotificationmanager.cpp 8d4f953 
>   src/knotificationplugin.cpp 7315c17 
>   src/notifybypopup.cpp e377051 
>   tests/kpassivepopuptest.h bc0dedc 
>   tests/kpassivepopuptest.cpp 2486fd8 
> 
> Diff: https://git.reviewboard.kde.org/r/124281/diff/
> 
> 
> Testing
> -------
> 
> Everything still compiles + I added a test for KPassivePopup with an icon.
> 
> 
> Thanks,
> 
> Martin Klapetek
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to