summaryrefslogtreecommitdiffstats
path: root/qmake/library/proitems.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qmake/library/proitems.cpp')
-rw-r--r--qmake/library/proitems.cpp19
1 files changed, 4 insertions, 15 deletions
diff --git a/qmake/library/proitems.cpp b/qmake/library/proitems.cpp
index e1cfbad8a1..ba817596c5 100644
--- a/qmake/library/proitems.cpp
+++ b/qmake/library/proitems.cpp
@@ -32,6 +32,7 @@
#include <qset.h>
#include <qstringlist.h>
#include <qtextstream.h>
+#include <private/qduplicatetracker_p.h>
QT_BEGIN_NAMESPACE
@@ -403,21 +404,9 @@ void ProStringList::removeEmpty()
void ProStringList::removeDuplicates()
{
- int n = size();
- int j = 0;
- QSet<ProString> seen;
- seen.reserve(n);
- for (int i = 0; i < n; ++i) {
- const ProString &s = at(i);
- if (seen.contains(s))
- continue;
- seen.insert(s);
- if (j != i)
- (*this)[j] = s;
- ++j;
- }
- if (n != j)
- erase(begin() + j, end());
+ QDuplicateTracker<ProString> seen;
+ seen.reserve(size());
+ removeIf([&](const ProString &s) { return seen.hasSeen(s); });
}
void ProStringList::insertUnique(const ProStringList &value)