[Kde-imaging] extragear/libs/kipi-plugins/slideshow

Gilles Caulier caulier.gilles at kdemail.net
Wed Nov 15 07:34:54 CET 2006


On Wednesday 15 November 2006 02:17, Valerio Fuoglio(UNTRUSTED, sender is 
<kde-imaging-bounces-+caulier.gilles=kdemail.net at kde.org>) wrote:
> Alle 23:45, martedì 14 novembre 2006, Caulier Gilles(UNTRUSTED, sender
> is <kde-imaging-bounces-+valerio.fuoglio=kdemail.net at kde.org>) ha
>
> scritto:
> > Valerio,
> >
> > Can you fix my plugins (GPSSync, RawConverter, MetadataEdit, etc...).
> > I very busy on Exiv2 project to hack indeep bugs.
>
> In accord to this[1] list, your plugins are:
>
> gpssync : done
> jpeglossless: doesn't use kaboutdata
> metadataedit: done
> rawconverter: done
> sendimages: done
>
> Have I missed something?
>
> Valerio
>
> [1] http://www.kipi-plugins.org/drupal/?q=node/2

Valerio, Angelo,

There is a little memory leak in the way of you use KPAboutData in plugin :

#valgrind --tool=memcheck --leak-check=full --error-limit=no digikam    
...
...playing with host and start plugin here...
...close host...
...
==2901== 6065 (56 direct, 6009 indirect) bytes in 1 blocks are definitely lost 
in loss record 321 of 337
==2901==    at 0x1B8FFC32: operator new(unsigned) (vg_replace_malloc.c:164)
==2901==    by 0x1F6A301D: 
KIPIMetadataEditPlugin::EXIFEditDialog::EXIFEditDialog(QWidget*, KURL::List) 
(exifeditdialog.cpp:149)
==2901==    by 0x1F69D17A: Plugin_MetadataEdit::slotEditExif() 
(plugin_metadataedit.cpp:140)
==2901==    by 0x1F69F719: Plugin_MetadataEdit::qt_invoke(int, QUObject*) 
(plugin_metadataedit.moc:92)
==2901==    by 0x1CBED25C: QObject::activate_signal(QConnectionList*, 
QUObject*) (in /usr/lib/qt3/lib/libqt-mt.so.3.3.4)
==2901==    by 0x0: ???
==2901==
==2901== LEAK SUMMARY:
==2901==    definitely lost: 972 bytes in 9 blocks.
==2901==    indirectly lost: 20956 bytes in 157 blocks.
==2901==      possibly lost: 936 bytes in 22 blocks.
==2901==    still reachable: 607334 bytes in 8603 blocks.
==2901==         suppressed: 0 bytes in 0 blocks.
==2901== Reachable blocks (those to which a pointer was found) are not shown.
==2901== To see them, rerun with: --show-reachable=yes

This is duing about to allocate KPAboutData on the heap like this :

KIPIPlugins::KPAboutData * about = new KIPIPlugins::KPAboutData(...);

... and pass it to KHelpMenu as well. I have seen the same problem into 
DigikamImagePlugins. The solution is simple : just delete KPAboutData 
instance container when dialog is destructed.

I suspect a bug in KHelpMenu API witch unallocate properlly the about data 
container.

Attached a patch for MetadataEdit::ExifDialog (:=)))...

Note : testing an implementation with valgrind is always a big help from 
developpers...

I'm back to work on Exiv2 project now...

Gilles
-------------- next part --------------
A non-text attachment was scrubbed...
Name: exifdialog.patch
Type: text/x-diff
Size: 3170 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-imaging/attachments/20061115/dc09cf9c/attachment.bin 


More information about the Kde-imaging mailing list