From c6cdf38e752c22babdbe645366bdfb7ce51d01ff Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 31 Jan 2020 12:11:54 +0100 Subject: Change qHash() to work with size_t instead of uint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is required, so that QHash and QSet can hold more than 2^32 items on 64 bit platforms. The actual hashing functions for strings are still 32bit, this will be changed in a follow-up commit. Change-Id: I4372125252486075ff3a0b45ecfa818359fe103b Reviewed-by: MÃ¥rten Nordheim --- src/corelib/text/qbytearray.cpp | 2 +- src/corelib/text/qbytearray.h | 2 +- src/corelib/text/qlocale.cpp | 2 +- src/corelib/text/qlocale.h | 4 ++-- src/corelib/text/qregexp.cpp | 4 ++-- src/corelib/text/qregexp.h | 4 ++-- src/corelib/text/qregularexpression.cpp | 2 +- src/corelib/text/qregularexpression.h | 4 ++-- 8 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src/corelib/text') diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp index 52bde98b62..b778316a15 100644 --- a/src/corelib/text/qbytearray.cpp +++ b/src/corelib/text/qbytearray.cpp @@ -5028,7 +5028,7 @@ QByteArray QByteArray::toPercentEncoding(const QByteArray &exclude, const QByteA Returns the hash value for \a key, using \a seed to seed the calculation. */ -uint qHash(const QByteArray::FromBase64Result &key, uint seed) noexcept +size_t qHash(const QByteArray::FromBase64Result &key, size_t seed) noexcept { QtPrivate::QHashCombine hash; seed = hash(seed, key.decoded); diff --git a/src/corelib/text/qbytearray.h b/src/corelib/text/qbytearray.h index d260a9d678..55d4c87e92 100644 --- a/src/corelib/text/qbytearray.h +++ b/src/corelib/text/qbytearray.h @@ -697,7 +697,7 @@ inline bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray return !operator==(lhs, rhs); } -Q_CORE_EXPORT Q_DECL_PURE_FUNCTION uint qHash(const QByteArray::FromBase64Result &key, uint seed = 0) noexcept; +Q_CORE_EXPORT Q_DECL_PURE_FUNCTION size_t qHash(const QByteArray::FromBase64Result &key, size_t seed = 0) noexcept; QT_END_NAMESPACE diff --git a/src/corelib/text/qlocale.cpp b/src/corelib/text/qlocale.cpp index 9e3043046d..4af039298f 100644 --- a/src/corelib/text/qlocale.cpp +++ b/src/corelib/text/qlocale.cpp @@ -1089,7 +1089,7 @@ bool QLocale::operator!=(const QLocale &other) const Returns the hash value for \a key, using \a seed to seed the calculation. */ -uint qHash(const QLocale &key, uint seed) noexcept +size_t qHash(const QLocale &key, size_t seed) noexcept { QtPrivate::QHashCombine hash; seed = hash(seed, key.d->m_data); diff --git a/src/corelib/text/qlocale.h b/src/corelib/text/qlocale.h index 45e39aa60d..e501a33764 100644 --- a/src/corelib/text/qlocale.h +++ b/src/corelib/text/qlocale.h @@ -59,7 +59,7 @@ class QTextStreamPrivate; class QLocalePrivate; -Q_CORE_EXPORT uint qHash(const QLocale &key, uint seed = 0) noexcept; +Q_CORE_EXPORT size_t qHash(const QLocale &key, size_t seed = 0) noexcept; class Q_CORE_EXPORT QLocale { @@ -1131,7 +1131,7 @@ private: friend class QSystemLocale; friend class QCalendarBackend; friend class QGregorianCalendar; - friend Q_CORE_EXPORT uint qHash(const QLocale &key, uint seed) noexcept; + friend Q_CORE_EXPORT size_t qHash(const QLocale &key, size_t seed) noexcept; QSharedDataPointer d; }; diff --git a/src/corelib/text/qregexp.cpp b/src/corelib/text/qregexp.cpp index 3b6cdb133a..eac529e5b7 100644 --- a/src/corelib/text/qregexp.cpp +++ b/src/corelib/text/qregexp.cpp @@ -891,7 +891,7 @@ static bool operator==(const QRegExpEngineKey &key1, const QRegExpEngineKey &key && key1.cs == key2.cs; } -static uint qHash(const QRegExpEngineKey &key, uint seed = 0) noexcept +static size_t qHash(const QRegExpEngineKey &key, size_t seed = 0) noexcept { QtPrivate::QHashCombine hash; seed = hash(seed, key.pattern); @@ -4041,7 +4041,7 @@ bool QRegExp::operator==(const QRegExp &rx) const Returns the hash value for \a key, using \a seed to seed the calculation. */ -uint qHash(const QRegExp &key, uint seed) noexcept +size_t qHash(const QRegExp &key, size_t seed) noexcept { QtPrivate::QHashCombine hash; seed = hash(seed, key.priv->engineKey); diff --git a/src/corelib/text/qregexp.h b/src/corelib/text/qregexp.h index 8f6de24c74..b42214f1db 100644 --- a/src/corelib/text/qregexp.h +++ b/src/corelib/text/qregexp.h @@ -53,7 +53,7 @@ struct QRegExpPrivate; class QStringList; class QRegExp; -Q_CORE_EXPORT uint qHash(const QRegExp &key, uint seed = 0) noexcept; +Q_CORE_EXPORT size_t qHash(const QRegExp &key, size_t seed = 0) noexcept; class Q_CORE_EXPORT QRegExp { @@ -110,7 +110,7 @@ public: static QString escape(const QString &str); - friend Q_CORE_EXPORT uint qHash(const QRegExp &key, uint seed) noexcept; + friend Q_CORE_EXPORT size_t qHash(const QRegExp &key, size_t seed) noexcept; private: QRegExpPrivate *priv; diff --git a/src/corelib/text/qregularexpression.cpp b/src/corelib/text/qregularexpression.cpp index 6544abb646..77aad5e294 100644 --- a/src/corelib/text/qregularexpression.cpp +++ b/src/corelib/text/qregularexpression.cpp @@ -1828,7 +1828,7 @@ bool QRegularExpression::operator==(const QRegularExpression &re) const Returns the hash value for \a key, using \a seed to seed the calculation. */ -uint qHash(const QRegularExpression &key, uint seed) noexcept +size_t qHash(const QRegularExpression &key, size_t seed) noexcept { QtPrivate::QHashCombine hash; seed = hash(seed, key.d->pattern); diff --git a/src/corelib/text/qregularexpression.h b/src/corelib/text/qregularexpression.h index 9f618bf7f5..aa6c48bf54 100644 --- a/src/corelib/text/qregularexpression.h +++ b/src/corelib/text/qregularexpression.h @@ -59,7 +59,7 @@ class QRegularExpressionMatchIterator; struct QRegularExpressionPrivate; class QRegularExpression; -Q_CORE_EXPORT uint qHash(const QRegularExpression &key, uint seed = 0) noexcept; +Q_CORE_EXPORT size_t qHash(const QRegularExpression &key, size_t seed = 0) noexcept; class Q_CORE_EXPORT QRegularExpression { @@ -167,7 +167,7 @@ private: friend class QRegularExpressionMatch; friend struct QRegularExpressionMatchPrivate; friend class QRegularExpressionMatchIterator; - friend Q_CORE_EXPORT uint qHash(const QRegularExpression &key, uint seed) noexcept; + friend Q_CORE_EXPORT size_t qHash(const QRegularExpression &key, size_t seed) noexcept; QRegularExpression(QRegularExpressionPrivate &dd); QExplicitlySharedDataPointer d; -- cgit v1.2.3