QPluginLoader: set an errorString if resolving qt_plugin_instance fails

We're getting load() == false but errorString() == "Unknown error".

Not backporting past 6.8 because of a new translatable string.

Change-Id: Ic0adfa808d28487a8303fffd17d9ee19ce074e4b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 2be44b57da951007ecab4d6c9e4bc2f3b5cd067a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Thiago Macieira 2024-06-17 16:22:07 -07:00 committed by Qt Cherry-pick Bot
parent d383391990
commit 1ef5911d28

View File

@ -589,7 +589,9 @@ QtPluginInstanceFunction QLibraryPrivate::loadPlugin()
if (load()) {
auto ptr = reinterpret_cast<QtPluginInstanceFunction>(resolve("qt_plugin_instance"));
instanceFactory.storeRelease(ptr); // two threads may store the same value
return ptr;
if (Q_LIKELY(ptr))
return ptr;
errorString = QLibrary::tr("Could not resolve 'qt_plugin_instance' function");
}
qCDebug(qt_lcDebugPlugins) << "QLibraryPrivate::loadPlugin failed on" << fileName << ":" << errorString;
pluginState = IsNotAPlugin;