[Digikam-devel] [Bug 158989] digikam won't start: MakerTagInfo registry full
ahuggel at gmx.net
Thu May 29 17:31:15 BST 2008
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
------- Additional Comments From ahuggel gmx net 2008-05-29 18:31 -------
Yes, thanks, good job!
The public libkexiv2 API "leaks" Exiv2 objects in at least 2 places:
static void printExiv2ExceptionError(const QString& msg, Exiv2::Error& e);
static QString convertCommentValue(const Exiv2::Exifdatum &comment);
(I didn't check if it also throws Exiv2::Error out of the library)
If these methods are used in digikam, then digikam must link to Exiv2. And if it links a different version than libkexiv2 then I'm not sure what will happen.
Is it possible that you use Exiv2 objects only in the implementation of libkexiv2 and not in its API? (I suggest nowhere in kexiv2.h at all, not even in the private sections of the classes there) This includes that libkexiv2 shouldn't throw Exiv2 objects for digikam to catch.
Having said that, I still don't really understand this bug. The error that we get is not caused by any of these calls directly, it happens during the initialization of Exiv2, before any client call is made. I've opened a bug for Exiv2 to replace this initialization code with something more straightforward (http://dev.robotbattle.com/mantis/view.php?id=550), maybe that will help too.
More information about the Digikam-devel