[Digikam-devel] crashing with old kipi plugins

Gilles Caulier caulier.gilles at gmail.com
Sat Sep 15 16:30:55 BST 2012


libkipi is now patched with desktop file solution. It work :

http://commits.kde.org/libkipi/ef8501cfa0b2f88fed4b8d081434c186df794fb0

I started to patch some plugins :

http://commits.kde.org/kipi-plugins/934c64e7e6fc55bd2a9fb2dd98cd41017ae19687

I will complete all others plugins before tomorrow evening.

Nicolas, please take a care to not release 3.0.0-beta1 before that i
completed this patch.
In all case i will mail you when all is ready...

Gilles

2012/9/15 Gilles Caulier <caulier.gilles at gmail.com>:
> 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