Fix the qHash(quint64) overload
The body doesn't make sense as the if condition is always true (we even have static asserts checking that sizeof(int) == 4). Removing the if allows us to mark the function as constexpr. Change-Id: Iddeb042a6164d4afe6c827c10177596424d770eb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>bb10
parent
376c9c9ae3
commit
75188ee185
|
|
@ -78,15 +78,11 @@ Q_DECL_CONST_FUNCTION inline uint qHash(ulong key, uint seed = 0) Q_DECL_NOTHROW
|
|||
}
|
||||
}
|
||||
Q_DECL_CONST_FUNCTION inline uint qHash(long key, uint seed = 0) Q_DECL_NOTHROW { return qHash(ulong(key), seed); }
|
||||
Q_DECL_CONST_FUNCTION inline uint qHash(quint64 key, uint seed = 0) Q_DECL_NOTHROW
|
||||
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(quint64 key, uint seed = 0) Q_DECL_NOTHROW
|
||||
{
|
||||
if (sizeof(quint64) > sizeof(uint)) {
|
||||
return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed;
|
||||
} else {
|
||||
return uint(key & (~0U)) ^ seed;
|
||||
}
|
||||
return uint(((key >> (8 * sizeof(uint) - 1)) ^ key) & (~0U)) ^ seed;
|
||||
}
|
||||
Q_DECL_CONST_FUNCTION inline uint qHash(qint64 key, uint seed = 0) Q_DECL_NOTHROW { return qHash(quint64(key), seed); }
|
||||
Q_DECL_CONST_FUNCTION Q_DECL_CONSTEXPR inline uint qHash(qint64 key, uint seed = 0) Q_DECL_NOTHROW { return qHash(quint64(key), seed); }
|
||||
Q_CORE_EXPORT Q_DECL_CONST_FUNCTION uint qHash(float key, uint seed = 0) Q_DECL_NOTHROW;
|
||||
Q_CORE_EXPORT Q_DECL_CONST_FUNCTION uint qHash(double key, uint seed = 0) Q_DECL_NOTHROW;
|
||||
#ifndef Q_OS_DARWIN
|
||||
|
|
|
|||
Loading…
Reference in New Issue