[Digikam-devel] crashing with old kipi plugins

Gilles Caulier caulier.gilles at gmail.com
Sat Sep 15 09:25:27 BST 2012


Marcel,

Just for info, i investigated yesterday evening why KipiBinaryVersion
property in KIPI::Plugin doesn't work.

In fact set this property directly in libkipi as well is definitively
wrong, because this init this value always in plugin instance when
constructor is called. It must be do in plugin constructor as well. In
this case it work fine. This require to patch all plugin of course.

But, other problem appears with older plugins version, especially the
destructor, which is only QObject based class instead
QObject+KXMLGUIClient. I able to disable to load plugin is
KipiBinaryVersion is not fine, but later plugin instance is deleted.
destructor is called, and... KXMLGUIClient is called in which crash
KDELibs, because plugin is not linked with this class...

Commenting plugin delete code in plugin loader is not a solution : we
don't have a memory leak, and digiKam start properly, but at end,
because Qt will try to delete plugin object from memory, it will crash
digiKam...

So, definitively, .desktop file way must be used here...

Gilles



More information about the Digikam-devel mailing list