QFactoryLoader: replace indexed loops with ranged ones

Better code style. I need to optimize QCborValueRef::toString() to avoid
a round-trip through QCborValue.

Change-Id: I5e52dc5b093c43a3b678fffd16b5f1f99851cf5f
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This commit is contained in:
Thiago Macieira 2021-11-09 09:48:13 -08:00 committed by Edward Welbourne
parent b7a8051269
commit 2fbcc18309

View File

@ -224,9 +224,9 @@ inline void QFactoryLoaderPrivate::updateSinglePath(const QString &path)
QCborMap object = library->metaData.value(QtPluginMetaDataKeys::MetaData).toMap(); QCborMap object = library->metaData.value(QtPluginMetaDataKeys::MetaData).toMap();
metaDataOk = true; metaDataOk = true;
QCborArray k = object.value(QLatin1String("Keys")).toArray(); const QCborArray k = object.value(QLatin1String("Keys")).toArray();
for (int i = 0; i < k.size(); ++i) for (QCborValueRef v : k)
keys += cs ? k.at(i).toString() : k.at(i).toString().toLower(); keys += cs ? v.toString() : v.toString().toLower();
} }
qCDebug(lcFactoryLoader) << "Got keys from plugin meta data" << keys; qCDebug(lcFactoryLoader) << "Got keys from plugin meta data" << keys;
@ -234,13 +234,12 @@ inline void QFactoryLoaderPrivate::updateSinglePath(const QString &path)
continue; continue;
int keyUsageCount = 0; int keyUsageCount = 0;
for (int k = 0; k < keys.count(); ++k) { for (const QString &key : std::as_const(keys)) {
// first come first serve, unless the first // first come first serve, unless the first
// library was built with a future Qt version, // library was built with a future Qt version,
// whereas the new one has a Qt version that fits // whereas the new one has a Qt version that fits
// better // better
constexpr int QtVersionNoPatch = QT_VERSION_CHECK(QT_VERSION_MAJOR, QT_VERSION_MINOR, 0); constexpr int QtVersionNoPatch = QT_VERSION_CHECK(QT_VERSION_MAJOR, QT_VERSION_MINOR, 0);
const QString &key = keys.at(k);
QLibraryPrivate *previous = keyMap.value(key); QLibraryPrivate *previous = keyMap.value(key);
int prev_qt_version = 0; int prev_qt_version = 0;
if (previous) if (previous)
@ -264,9 +263,8 @@ void QFactoryLoader::update()
#ifdef QT_SHARED #ifdef QT_SHARED
Q_D(QFactoryLoader); Q_D(QFactoryLoader);
QStringList paths = QCoreApplication::libraryPaths(); const QStringList paths = QCoreApplication::libraryPaths();
for (int i = 0; i < paths.count(); ++i) { for (const QString &pluginDir : paths) {
const QString &pluginDir = paths.at(i);
#ifdef Q_OS_ANDROID #ifdef Q_OS_ANDROID
QString path = pluginDir; QString path = pluginDir;
#else #else
@ -368,8 +366,8 @@ QFactoryLoader::MetaDataList QFactoryLoader::metaData() const
QList<QPluginParsedMetaData> metaData; QList<QPluginParsedMetaData> metaData;
#if QT_CONFIG(library) #if QT_CONFIG(library)
QMutexLocker locker(&d->mutex); QMutexLocker locker(&d->mutex);
for (int i = 0; i < d->libraryList.size(); ++i) for (QLibraryPrivate *library : std::as_const(d->libraryList))
metaData.append(d->libraryList.at(i)->metaData); metaData.append(library->metaData);
#endif #endif
QLatin1String iid(d->iid.constData(), d->iid.size()); QLatin1String iid(d->iid.constData(), d->iid.size());
@ -428,9 +426,8 @@ QMultiMap<int, QString> QFactoryLoader::keyMap() const
for (int i = 0; i < metaDataList.size(); ++i) { for (int i = 0; i < metaDataList.size(); ++i) {
const QCborMap metaData = metaDataList.at(i).value(QtPluginMetaDataKeys::MetaData).toMap(); const QCborMap metaData = metaDataList.at(i).value(QtPluginMetaDataKeys::MetaData).toMap();
const QCborArray keys = metaData.value(QLatin1String("Keys")).toArray(); const QCborArray keys = metaData.value(QLatin1String("Keys")).toArray();
const int keyCount = keys.size(); for (QCborValueRef key : keys)
for (int k = 0; k < keyCount; ++k) result.insert(i, key.toString());
result.insert(i, keys.at(k).toString());
} }
return result; return result;
} }
@ -441,9 +438,8 @@ int QFactoryLoader::indexOf(const QString &needle) const
for (int i = 0; i < metaDataList.size(); ++i) { for (int i = 0; i < metaDataList.size(); ++i) {
const QCborMap metaData = metaDataList.at(i).value(QtPluginMetaDataKeys::MetaData).toMap(); const QCborMap metaData = metaDataList.at(i).value(QtPluginMetaDataKeys::MetaData).toMap();
const QCborArray keys = metaData.value(QLatin1String("Keys")).toArray(); const QCborArray keys = metaData.value(QLatin1String("Keys")).toArray();
const int keyCount = keys.size(); for (QCborValueRef key : keys) {
for (int k = 0; k < keyCount; ++k) { if (key.toString().compare(needle, Qt::CaseInsensitive) == 0)
if (!keys.at(k).toString().compare(needle, Qt::CaseInsensitive))
return i; return i;
} }
} }