summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2025-03-18 08:55:40 -0700
committerThiago Macieira <thiago.macieira@intel.com>2025-05-09 16:54:13 -0700
commitb10c7b1680d57174f2b4d5a08387378550434ae9 (patch)
treec00cfdb23c93378fc18b1ed81b54dbf191c3e4a2
parent4647940e880539dfdd57b0de79b1d1098c0c1526 (diff)
qtbase: use qHashMulti & qHashRange instead of QHashCombine
If we have no specific need for the private QHashCombine class, use the front-end functions. For headers, we do have a need: we prefer QHashCombine because it compiles faster. Change-Id: I73578ea802d3b905a53bfffd504c20af0ca96cf8 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
-rw-r--r--src/corelib/io/qurlquery.cpp5
-rw-r--r--src/corelib/itemmodels/qitemselectionmodel.cpp5
-rw-r--r--src/corelib/serialization/qcborvalue.cpp8
-rw-r--r--src/corelib/tools/qversionnumber.cpp5
-rw-r--r--tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp2
-rw-r--r--tests/benchmarks/corelib/tools/qhash/tst_bench_qhash.cpp2
6 files changed, 7 insertions, 20 deletions
diff --git a/src/corelib/io/qurlquery.cpp b/src/corelib/io/qurlquery.cpp
index 70303273045..e4b6da4cae1 100644
--- a/src/corelib/io/qurlquery.cpp
+++ b/src/corelib/io/qurlquery.cpp
@@ -428,11 +428,8 @@ bool comparesEqual(const QUrlQuery &lhs, const QUrlQuery &rhs)
size_t qHash(const QUrlQuery &key, size_t seed) noexcept
{
if (const QUrlQueryPrivate *d = key.d) {
- QtPrivate::QHashCombine hash;
// keep in sync with operator==:
- seed = hash(seed, d->valueDelimiter);
- seed = hash(seed, d->pairDelimiter);
- seed = hash(seed, d->itemList);
+ return qHashMulti(seed, d->valueDelimiter, d->pairDelimiter, d->itemList);
}
return seed;
}
diff --git a/src/corelib/itemmodels/qitemselectionmodel.cpp b/src/corelib/itemmodels/qitemselectionmodel.cpp
index 3caf7b3405e..3c84e8797d0 100644
--- a/src/corelib/itemmodels/qitemselectionmodel.cpp
+++ b/src/corelib/itemmodels/qitemselectionmodel.cpp
@@ -1813,10 +1813,7 @@ struct RowOrColumnDefinition {
};
size_t qHash(const RowOrColumnDefinition &key, size_t seed = 0) noexcept
{
- QtPrivate::QHashCombine hash;
- seed = hash(seed, key.parent);
- seed = hash(seed, key.rowOrColumn);
- return seed;
+ return qHashMulti(seed, key.parent, key.rowOrColumn);
}
QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH_BY_CREF(RowOrColumnDefinition)
diff --git a/src/corelib/serialization/qcborvalue.cpp b/src/corelib/serialization/qcborvalue.cpp
index 2e61ed7460d..fed1811af22 100644
--- a/src/corelib/serialization/qcborvalue.cpp
+++ b/src/corelib/serialization/qcborvalue.cpp
@@ -3192,12 +3192,8 @@ size_t qHash(const QCborValue &value, size_t seed)
return qHash(value.toArray(), seed);
case QCborValue::Map:
return qHash(value.toMap(), seed);
- case QCborValue::Tag: {
- QtPrivate::QHashCombine hash;
- seed = hash(seed, value.tag());
- seed = hash(seed, value.taggedValue());
- return seed;
- }
+ case QCborValue::Tag:
+ return qHashMulti(seed, value.tag(), value.taggedValue());
case QCborValue::SimpleType:
break;
case QCborValue::False:
diff --git a/src/corelib/tools/qversionnumber.cpp b/src/corelib/tools/qversionnumber.cpp
index 57cfc1767f1..97a7dbdfa9c 100644
--- a/src/corelib/tools/qversionnumber.cpp
+++ b/src/corelib/tools/qversionnumber.cpp
@@ -576,10 +576,7 @@ QDebug operator<<(QDebug debug, const QVersionNumber &version)
*/
size_t qHash(const QVersionNumber &key, size_t seed)
{
- QtPrivate::QHashCombine hash;
- for (int i = 0; i < key.segmentCount(); ++i)
- seed = hash(seed, key.segmentAt(i));
- return seed;
+ return qHashRange(key.begin(), key.end(), seed);
}
QT_END_NAMESPACE
diff --git a/tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp b/tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp
index a4468e23a30..dec0f15ba39 100644
--- a/tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp
+++ b/tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp
@@ -23,7 +23,7 @@ public:
// random values
static constexpr quint64 ZeroSeed = 0;
static constexpr quint64 RandomSeed32 = 1045982819;
- static constexpr quint64 RandomSeed64 = QtPrivate::QHashCombine{}(RandomSeed32, RandomSeed32);
+ static constexpr quint64 RandomSeed64 = qHashMulti(0, RandomSeed32, RandomSeed32);
size_t seed;
template <typename T1, typename T2> void stdPair_template(const T1 &t1, const T2 &t2);
diff --git a/tests/benchmarks/corelib/tools/qhash/tst_bench_qhash.cpp b/tests/benchmarks/corelib/tools/qhash/tst_bench_qhash.cpp
index 2159cfaf83c..6aa6d1f7e8c 100644
--- a/tests/benchmarks/corelib/tools/qhash/tst_bench_qhash.cpp
+++ b/tests/benchmarks/corelib/tools/qhash/tst_bench_qhash.cpp
@@ -12,7 +12,7 @@
#include <QTest>
static constexpr quint64 RandomSeed32 = 1045982819;
-static constexpr quint64 RandomSeed64 = QtPrivate::QHashCombine{}(RandomSeed32, RandomSeed32);
+static constexpr quint64 RandomSeed64 = qHashMulti(0, RandomSeed32, RandomSeed32);
class tst_QHash : public QObject
{