From f4fca8697ffaf64a2e919bbbb96fbd2639c7ac60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Tue, 25 Feb 2020 16:41:13 +0100 Subject: Undeprecate QHash::count(Key) For compatibility with std::unordered_map. Spotted in the API review. Change-Id: Ic34600d55baebcbbf115c1090cd555984037c44c Reviewed-by: Lars Knoll --- src/corelib/tools/qhash.cpp | 8 -------- src/corelib/tools/qhash.h | 35 ++++++++++++++--------------------- 2 files changed, 14 insertions(+), 29 deletions(-) (limited to 'src/corelib/tools') diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp index 15f731a603..7ebc374d9f 100644 --- a/src/corelib/tools/qhash.cpp +++ b/src/corelib/tools/qhash.cpp @@ -1574,7 +1574,6 @@ uint qHash(long double key, uint seed) noexcept */ /*! \fn template int QHash::count(const Key &key) const - \obsolete Returns the number of items associated with the \a key. @@ -2693,13 +2692,6 @@ uint qHash(long double key, uint seed) noexcept \sa QHash::remove() */ -/*! \fn template int QMultiHash::count(const Key &key) const - - Returns the number of items associated with the \a key. - - \sa contains(), insert() -*/ - /*! \fn template int QMultiHash::count(const Key &key, const T &value) const \since 4.3 diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h index 9144405501..06313d6c79 100644 --- a/src/corelib/tools/qhash.h +++ b/src/corelib/tools/qhash.h @@ -314,8 +314,8 @@ public: #if QT_DEPRECATED_SINCE(5, 15) QT_DEPRECATED_X("Use QMultiHash for hashes storing multiple values with the same key.") QList uniqueKeys() const; QT_DEPRECATED_X("Use QMultiHash for hashes storing multiple values with the same key.") QList values(const Key &key) const; - QT_DEPRECATED_X("Use QMultiHash for hashes storing multiple values with the same key.") int count(const Key &key) const; #endif + int count(const Key &key) const; class const_iterator; @@ -729,6 +729,19 @@ Q_OUTOFLINE_TEMPLATE QList QHash::values() const return res; } +template +Q_OUTOFLINE_TEMPLATE int QHash::count(const Key &akey) const +{ + int cnt = 0; + Node *node = *findNode(akey); + if (node != e) { + do { + ++cnt; + } while ((node = node->next) != e && node->key == akey); + } + return cnt; +} + template Q_INLINE_TEMPLATE const T QHash::operator[](const Key &akey) const { @@ -1072,7 +1085,6 @@ public: int remove(const Key &key, const T &value); - int count(const Key &key) const; int count(const Key &key, const T &value) const; QList uniqueKeys() const; @@ -1225,12 +1237,6 @@ Q_OUTOFLINE_TEMPLATE QList QHash::values(const Key &akey) const return static_cast *>(this)->values(akey); } -template -Q_OUTOFLINE_TEMPLATE int QHash::count(const Key &akey) const -{ - return static_cast *>(this)->count(akey); -} - template Q_OUTOFLINE_TEMPLATE QList QHash::uniqueKeys() const { @@ -1251,19 +1257,6 @@ Q_OUTOFLINE_TEMPLATE QList QMultiHash::values(const Key &akey) const return res; } -template -Q_OUTOFLINE_TEMPLATE int QMultiHash::count(const Key &akey) const -{ - int cnt = 0; - Node *node = *findNode(akey); - if (node != this->e) { - do { - ++cnt; - } while ((node = node->next) != this->e && node->key == akey); - } - return cnt; -} - #if !defined(QT_NO_JAVA_STYLE_ITERATORS) template class QHashIterator -- cgit v1.2.3