summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2021-07-12 11:15:44 +0200
committerMarc Mutz <marc.mutz@kdab.com>2021-07-14 08:57:39 +0200
commita7564e2657dcbd2f69c357d7c49c9326a23ee021 (patch)
tree1be6fa8b0a06bf1936059b7e22eed42059d41eb0 /src/corelib/tools
parentfcfc854def12500658d5d863797169279b698498 (diff)
QDuplicateTracker: accept the number of elements to reserve as a ctor argument
This prevents us from first reserve()ing Prealloc elements, and then possibly reserve()ing a larger number, which leaves the first bucket list's memory unused. Consequently, deprecate reserve(). Change-Id: Ifc0a5a021097f4589557e7b5e45d9d0892797ade Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/tools')
-rw-r--r--src/corelib/tools/qduplicatetracker_p.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/corelib/tools/qduplicatetracker_p.h b/src/corelib/tools/qduplicatetracker_p.h
index 7bc416140a..565d592ac2 100644
--- a/src/corelib/tools/qduplicatetracker_p.h
+++ b/src/corelib/tools/qduplicatetracker_p.h
@@ -106,6 +106,14 @@ class QDuplicateTracker {
Q_DISABLE_COPY_MOVE(QDuplicateTracker);
public:
QDuplicateTracker() = default;
+ explicit QDuplicateTracker(qsizetype n)
+#ifdef __cpp_lib_memory_resource
+ : set{size_t(n), &res}
+#else
+ : set{n}
+#endif
+ {}
+ Q_DECL_DEPRECATED_X("Pass the capacity to reserve() to the ctor instead.")
void reserve(qsizetype n) { set.reserve(n); }
[[nodiscard]] bool hasSeen(const T &s)
{