diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2021-11-09 09:04:46 -0800 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2022-01-21 00:53:49 +0100 |
commit | d5cac0b19bb2a94acae190709783cd5077c3de60 (patch) | |
tree | 56b6dbd34f7c07fcf585b48a2e506423a036788b /src/corelib | |
parent | 664c56d6b184b37546acc93128a692fa1bea7c3e (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.cpp | 8 |
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 = |