From 1ef5911d28bcbbcb1f4dff63889b80fa24a6cf4e Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 17 Jun 2024 16:22:07 -0700 Subject: [PATCH] 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 (cherry picked from commit 2be44b57da951007ecab4d6c9e4bc2f3b5cd067a) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/plugin/qlibrary.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp index a3ef8e3c525..094fb941fff 100644 --- a/src/corelib/plugin/qlibrary.cpp +++ b/src/corelib/plugin/qlibrary.cpp @@ -589,7 +589,9 @@ QtPluginInstanceFunction QLibraryPrivate::loadPlugin() if (load()) { auto ptr = reinterpret_cast(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;