summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2021-11-09 09:04:46 -0800
committerEdward Welbourne <edward.welbourne@qt.io>2022-01-21 00:53:49 +0100
commitd5cac0b19bb2a94acae190709783cd5077c3de60 (patch)
tree56b6dbd34f7c07fcf585b48a2e506423a036788b /src/corelib
parent664c56d6b184b37546acc93128a692fa1bea7c3e (diff)
QFactoryLoader: use QDirIterator instead of QDir
This showed up on a benchmark when the number of files in the directory was way too big. Change-Id: I5e52dc5b093c43a3b678fffd16b5ef9a938abc63 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/plugin/qfactoryloader.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp
index bb1ebb8b20..8b98d756ef 100644
--- a/src/corelib/plugin/qfactoryloader.cpp
+++ b/src/corelib/plugin/qfactoryloader.cpp
@@ -51,7 +51,7 @@
#include "qcbormap.h"
#include "qcborvalue.h"
#include "qcborvalue.h"
-#include "qdir.h"
+#include "qdiriterator.h"
#include "qfileinfo.h"
#include "qjsonarray.h"
#include "qjsondocument.h"
@@ -170,7 +170,7 @@ inline void QFactoryLoaderPrivate::updateSinglePath(const QString &path)
qCDebug(lcFactoryLoader) << "checking directory path" << path << "...";
- QStringList plugins = QDir(path).entryList(
+ QDirIterator plugins(path,
#if defined(Q_OS_WIN)
QStringList(QStringLiteral("*.dll")),
#elif defined(Q_OS_ANDROID)
@@ -178,8 +178,8 @@ inline void QFactoryLoaderPrivate::updateSinglePath(const QString &path)
#endif
QDir::Files);
- for (int j = 0; j < plugins.count(); ++j) {
- QString fileName = QDir::cleanPath(path + QLatin1Char('/') + plugins.at(j));
+ while (plugins.hasNext()) {
+ QString fileName = plugins.next();
#ifdef Q_OS_MAC
const bool isDebugPlugin = fileName.endsWith(QLatin1String("_debug.dylib"));
const bool isDebugLibrary =