Review Request 127795: [DataEngine] Fix memory leak and possible crash + detailed test

David Edmundson david at davidedmundson.co.uk
Mon May 2 17:37:30 UTC 2016



> On May 2, 2016, 5:04 p.m., David Edmundson wrote:
> > src/plasma/dataengine.cpp, line 574
> > <https://git.reviewboard.kde.org/r/127795/diff/3/?file=462320#file462320line574>
> >
> >     This is the memory leak fix?
> >     
> >     If so, it's wrong.
> >     
> >     we get called from:
> >     
> >         QObject::connect(source, SIGNAL(destroyed(QObject*)), this, SLOT(sourceDestroyed(QObject*)));
> >     
> >     
> >     destroyed() signal is emitted in QObject::~QObject
> >     
> >     so it's already been deleted.
> 
> Anthony Fieroni wrote:
>     A witch line is that?
> 
> David Edmundson wrote:
>     dataengine.cpp:270
>     
>     and QObject::destroyed is described here: http://doc.qt.io/qt-5/qobject.html#destroyed
> 
> Anthony Fieroni wrote:
>     521 is the same. But in two cases 'this' and 'q' are DataEngine not DataEnginePrivate where is actually the slot void DataEnginePrivate::sourceDestroyed(QObject *object).
>     So even my fix is wrong :)

>But in two cases 'this' and 'q' are DataEngine not DataEnginePrivate 

That's not a problem because the DataEngine header uses Q_PRIVATE_SLOT.

So it's still the DataEngine qobject with the slot, it's just the implementation is in DataEnginePrivate


- David


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


On May 2, 2016, 2:20 p.m., Anthony Fieroni wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127795/
> -----------------------------------------------------------
> 
> (Updated May 2, 2016, 2:20 p.m.)
> 
> 
> Review request for KDE Frameworks and Marco Martin.
> 
> 
> Repository: plasma-framework
> 
> 
> Description
> -------
> 
> ^^
> 
> 
> Diffs
> -----
> 
>   autotests/pluginloadertest.h 61fc963 
>   autotests/pluginloadertest.cpp 4f96780 
>   src/plasma/datacontainer.cpp ee067db 
>   src/plasma/dataengine.cpp f942926 
>   src/plasma/private/dataenginemanager.cpp 08e42fb 
> 
> Diff: https://git.reviewboard.kde.org/r/127795/diff/
> 
> 
> Testing
> -------
> 
> Test pass.
> 
> 
> Thanks,
> 
> Anthony Fieroni
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20160502/14470169/attachment-0001.html>


More information about the Kde-frameworks-devel mailing list