[*] Stop using the hashes used by Google by default
They had no reason to use these besides "lol clang/gcc containers sucked 10 years ago." Nobody has touched or questioned them since.
This commit is contained in:
parent
b76a0a810e
commit
ada2bffb0e
@ -46,6 +46,7 @@ namespace AuHash
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if defined(_AU_WANT_GOOGLE_HASHES)
|
||||||
// Thomas Wang, Integer Hash Functions: https://web.archive.org/web/20061201032901/http://www.concentric.net/%7ETtwang/tech/inthash.htm
|
// Thomas Wang, Integer Hash Functions: https://web.archive.org/web/20061201032901/http://www.concentric.net/%7ETtwang/tech/inthash.htm
|
||||||
// Updated version under V8: V8/v9-11/src/utils/utils.h
|
// Updated version under V8: V8/v9-11/src/utils/utils.h
|
||||||
//
|
//
|
||||||
@ -78,6 +79,17 @@ namespace AuHash
|
|||||||
hash = hash ^ (hash >> 22); // ???????????
|
hash = hash ^ (hash >> 22); // ???????????
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
inline constexpr AuUInt32 ComputeUnseededHash(AuUInt32 key)
|
||||||
|
{
|
||||||
|
return AuFnv1aType<AuUInt32>(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline constexpr AuUInt64 ComputeLongHash(AuUInt64 key)
|
||||||
|
{
|
||||||
|
return AuFnv1aType<AuUInt64>(key);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#define _HASH_INT(type) \
|
#define _HASH_INT(type) \
|
||||||
template <> \
|
template <> \
|
||||||
@ -153,7 +165,7 @@ namespace AuHash
|
|||||||
_HASH_INT32BIT(unsigned short);
|
_HASH_INT32BIT(unsigned short);
|
||||||
_HASH_INT32BIT(int);
|
_HASH_INT32BIT(int);
|
||||||
_HASH_INT32BIT(unsigned int);
|
_HASH_INT32BIT(unsigned int);
|
||||||
_HASH_INT64BIT(long);
|
_HASH_INT64BIT(long); // I know, I don't care.
|
||||||
_HASH_INT64BIT(long long);
|
_HASH_INT64BIT(long long);
|
||||||
_HASH_INT64BIT(unsigned long);
|
_HASH_INT64BIT(unsigned long);
|
||||||
_HASH_INT64BIT(unsigned long long);
|
_HASH_INT64BIT(unsigned long long);
|
||||||
|
Loading…
Reference in New Issue
Block a user