From 5a74d76d9fe9f2a49f5e0d062da590ecc08cf9bb Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Tue, 1 Feb 2011 11:42:25 +0100 Subject: Fix leak in QFactoryLoader We need to release the library in case of errors --- src/corelib/plugin/qfactoryloader.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp index 1be32ad..c0b947a 100644 --- a/src/corelib/plugin/qfactoryloader.cpp +++ b/src/corelib/plugin/qfactoryloader.cpp @@ -155,9 +155,11 @@ void QFactoryLoader::update() continue; } QObject *instance = library->instance(); - if (!instance) + if (!instance) { + library->release(); // ignore plugins that have a valid signature but cannot be loaded. continue; + } QFactoryInterface *factory = qobject_cast(instance); if (instance && factory && instance->qt_metacast(d->iid)) keys = factory->keys(); -- cgit v0.12