Fix crash with KDE's platformtheme plugin
Require QPA plugins to match qt major.minor rules Change-Id: I78d40bb22d41b71db83c6a89c8ac8e319ec51d43 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit dfe71d1d23746223b7bd047108850d07f8caa6e5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
7df3f20b91
commit
4b5b6451f4
@ -348,6 +348,14 @@ inline void QFactoryLoaderPrivate::updateSinglePath(const QString &path)
|
||||
if (!metaDataOk)
|
||||
continue;
|
||||
|
||||
static constexpr qint64 QtVersionNoPatch = QT_VERSION_CHECK(QT_VERSION_MAJOR, QT_VERSION_MINOR, 0);
|
||||
int thisVersion = library->metaData.value(QtPluginMetaDataKeys::QtVersion).toInteger();
|
||||
if (iid.startsWith(QStringLiteral("org.qt-project.Qt.QPA"))) {
|
||||
// QPA plugins must match Qt Major.Minor
|
||||
if (thisVersion != QtVersionNoPatch)
|
||||
continue;
|
||||
}
|
||||
|
||||
int keyUsageCount = 0;
|
||||
for (const QString &key : std::as_const(keys)) {
|
||||
QLibraryPrivate *&keyMapEntry = keyMap[key];
|
||||
@ -363,9 +371,7 @@ inline void QFactoryLoaderPrivate::updateSinglePath(const QString &path)
|
||||
// If the existing library was built with a future Qt version,
|
||||
// whereas the one we're considering has a Qt version that fits
|
||||
// better, we prioritize the better match.
|
||||
static constexpr qint64 QtVersionNoPatch = QT_VERSION_CHECK(QT_VERSION_MAJOR, QT_VERSION_MINOR, 0);
|
||||
int existingVersion = existingLibrary->metaData.value(QtPluginMetaDataKeys::QtVersion).toInteger();
|
||||
int thisVersion = library->metaData.value(QtPluginMetaDataKeys::QtVersion).toInteger();
|
||||
if (!(existingVersion > QtVersionNoPatch && thisVersion <= QtVersionNoPatch))
|
||||
continue; // Existing version is a better match
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user