mirror of
https://github.com/python/cpython.git
synced 2025-07-19 09:15:34 +00:00
gh-111389: Add PyHASH_MULTIPLIER constant (#119214)
This commit is contained in:
parent
87939bd579
commit
f6da790122
7 changed files with 16 additions and 7 deletions
|
@ -1496,7 +1496,7 @@ address_to_hash(void *ptr) {
|
|||
uintptr_t addr = (uintptr_t)ptr;
|
||||
for (int i = 0; i < SIZEOF_VOID_P; i++) {
|
||||
uhash ^= addr & 255;
|
||||
uhash *= (uint64_t)_PyHASH_MULTIPLIER;
|
||||
uhash *= (uint64_t)PyHASH_MULTIPLIER;
|
||||
addr >>= 8;
|
||||
}
|
||||
return uhash;
|
||||
|
|
|
@ -263,12 +263,12 @@ fnv(const void *src, Py_ssize_t len)
|
|||
x ^= (Py_uhash_t) *p << 7;
|
||||
while (blocks--) {
|
||||
PY_UHASH_CPY(block.bytes, p);
|
||||
x = (_PyHASH_MULTIPLIER * x) ^ block.value;
|
||||
x = (PyHASH_MULTIPLIER * x) ^ block.value;
|
||||
p += SIZEOF_PY_UHASH_T;
|
||||
}
|
||||
/* add remainder */
|
||||
for (; remainder > 0; remainder--)
|
||||
x = (_PyHASH_MULTIPLIER * x) ^ (Py_uhash_t) *p++;
|
||||
x = (PyHASH_MULTIPLIER * x) ^ (Py_uhash_t) *p++;
|
||||
x ^= (Py_uhash_t) len;
|
||||
x ^= (Py_uhash_t) _Py_HashSecret.fnv.suffix;
|
||||
if (x == (Py_uhash_t) -1) {
|
||||
|
|
|
@ -312,7 +312,7 @@ traceback_hash(traceback_t *traceback)
|
|||
/* code based on tuplehash() of Objects/tupleobject.c */
|
||||
Py_uhash_t x, y; /* Unsigned for defined overflow behavior. */
|
||||
int len = traceback->nframe;
|
||||
Py_uhash_t mult = _PyHASH_MULTIPLIER;
|
||||
Py_uhash_t mult = PyHASH_MULTIPLIER;
|
||||
frame_t *frame;
|
||||
|
||||
x = 0x345678UL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue