summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2021-07-12 08:17:07 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-07-14 06:58:59 +0000
commit222e895a39fced0cc83ab7efa728f36e4ec2b000 (patch)
treedeffc30d04f9cc7c47fa81b7559aaf4821378924
parent1a415af379fca5d5e12c71c8166b9cf1c21d6c25 (diff)
QDuplicateTracker: reserve() for at least Prealloc elements
We have space for so many elements, so reserve()ing anything less makes no sense. Change-Id: I84d692b10a6a491c37661f84aa3fdd9af43d71e5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 16db1d21659793909bd1719805d7ff8de6906f88) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/corelib/tools/qduplicatetracker_p.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/corelib/tools/qduplicatetracker_p.h b/src/corelib/tools/qduplicatetracker_p.h
index dd0bb2605f..11a5f4cc33 100644
--- a/src/corelib/tools/qduplicatetracker_p.h
+++ b/src/corelib/tools/qduplicatetracker_p.h
@@ -81,9 +81,10 @@ class QDuplicateTracker {
char buffer[bufferSize(Prealloc)];
std::pmr::monotonic_buffer_resource res{buffer, sizeof buffer};
- std::pmr::unordered_set<T, QHasher<T>> set{&res};
+ std::pmr::unordered_set<T, QHasher<T>> set{Prealloc, &res};
#else
- QSet<T> set;
+ static QSet<T> makeQSet() { QSet<T> r; r.reserve(Prealloc); return r; }
+ QSet<T> set = makeQSet();
int setSize = 0;
#endif
Q_DISABLE_COPY_MOVE(QDuplicateTracker);