summaryrefslogtreecommitdiffstats
path: root/src/corelib/plugin
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2020-06-04 17:39:20 +0200
committerMarc Mutz <marc.mutz@kdab.com>2020-06-05 13:19:35 +0200
commit1f3cf206f4bdc0e3da0bf1317be78731243be770 (patch)
tree876b584f19851c8588b2da74f851de7ce6c71cec /src/corelib/plugin
parent1cd7cbf6179692fc824dc3ba15580372493a4355 (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/corelib/plugin')
-rw-r--r--src/corelib/plugin/qfactoryloader.cpp6
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;