[Digikam-devel] Re: KCategoryDrawer and memory leak...

Gilles Caulier caulier.gilles at gmail.com
Wed Nov 3 11:19:57 GMT 2010


Some precision :

KCategoryDrawer is an old class.

KCategoryDrawerV2 exist since KDE 4.4. I need to use it under Mandriva
2010.1 which use KDE 4.4.3, and it compile fine.

KCategoryDrawerV3 exist since KDE 4.5. Why not to use preprocessor
rules to choose right parent class depending of KDE version ?

Gilles

2010/11/3 Gilles Caulier <caulier.gilles at gmail.com>:
> Hi all,
>
> Valgrind crying again on my computer with this trace :
>
> ==16673== 3,152 (12 direct, 3,140 indirect) bytes in 1 blocks are
> definitely lost in loss record 6,503 of 6,663
> ==16673==    at 0x40244F0: operator new(unsigned int) (vg_replace_malloc.c:214)
> ==16673==    by 0x82B6F71:
> Digikam::DigikamImageDelegate::DigikamImageDelegate(Digikam::ImageCategorizedView*)
> (digikamimagedelegate.cpp:63)
> ==16673==    by 0x82B4611:
> Digikam::DigikamImageView::DigikamImageView(QWidget*)
> (digikamimageview.cpp:81)
> ==16673==    by 0x82883A4:
> Digikam::AlbumWidgetStack::AlbumWidgetStack(QWidget*)
> (albumwidgetstack.cpp:96)
> ==16673==    by 0x82BADA1: Digikam::DigikamView::DigikamView(QWidget*,
> Digikam::DigikamModelCollection*) (digikamview.cpp:168)
> ==16673==    by 0x829AD32: Digikam::DigikamApp::setupView() (digikamapp.cpp:490)
> ==16673==    by 0x82998A0: Digikam::DigikamApp::DigikamApp()
> (digikamapp.cpp:229)
> ==16673==    by 0x83863D1: main (main.cpp:172)
>
> If i look in code, i can see that memory leak is relevant of this call
>
>    d->categoryDrawer = new ImageCategoryDrawer(parent);
>
> ImageCategoryDrawer is based on KCategoryDrawer. on KDE4 api doc we
> can see that KCategoryDrawer is not based on QObject :
>
> http://api.kde.org/4.x-api/kdelibs-apidocs/kdeui/html/classKCategoryDrawer.html
>
> ... and instance is not delete in destructor. Also, KCategoryDrawer is
> deprecated. KCategoryDrawerV3 must be used instead.
>
> http://api.kde.org/4.x-api/kdelibs-apidocs/kdeui/html/classKCategoryDrawerV3.html
>
> I'm right or not ?
>
> Gilles Caulier
>



More information about the Digikam-devel mailing list