diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2020-06-04 17:39:20 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2020-06-05 13:19:35 +0200 |
commit | 1f3cf206f4bdc0e3da0bf1317be78731243be770 (patch) | |
tree | 876b584f19851c8588b2da74f851de7ce6c71cec /src | |
parent | 1cd7cbf6179692fc824dc3ba15580372493a4355 (diff) |
QFactoryLoader: port a local QStringList to QDuplicateTracker
Apart from a more fitting, minimal, API, QDuplicateTracker also
transparently uses C++17 pmr::monotonic_buffer_resource to avoid, or
at least reduce, memory allocations.
Change-Id: I0a0d1e31fd35d483e0036045847a3759b593c71c
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/plugin/qfactoryloader.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/corelib/plugin/qfactoryloader.cpp b/src/corelib/plugin/qfactoryloader.cpp index 582f48e93e..32b07a5636 100644 --- a/src/corelib/plugin/qfactoryloader.cpp +++ b/src/corelib/plugin/qfactoryloader.cpp @@ -57,6 +57,7 @@ #include "qjsonvalue.h" #include "qjsonobject.h" #include "qjsonarray.h" +#include "private/qduplicatetracker_p.h" #include <qtcore_tracepoints_p.h> @@ -165,7 +166,7 @@ public: QMap<QString,QLibraryPrivate*> keyMap; QString suffix; Qt::CaseSensitivity cs; - QStringList loadedPaths; + QDuplicateTracker<QString> loadedPaths; #endif }; @@ -192,9 +193,8 @@ void QFactoryLoader::update() for (int i = 0; i < paths.count(); ++i) { const QString &pluginDir = paths.at(i); // Already loaded, skip it... - if (d->loadedPaths.contains(pluginDir)) + if (d->loadedPaths.hasSeen(pluginDir)) continue; - d->loadedPaths << pluginDir; #ifdef Q_OS_ANDROID QString path = pluginDir; |