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>
This commit is contained in:
parent
4647940e88
commit
b10c7b1680
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user