mirror of
https://github.com/python/cpython.git
synced 2026-01-06 07:22:09 +00:00
follow up to #9778: define and use an unsigned hash type
This commit is contained in:
parent
2b9af63b4f
commit
8035bc5c04
7 changed files with 22 additions and 20 deletions
|
|
@ -397,12 +397,12 @@ complex_repr(PyComplexObject *v)
|
|||
static Py_hash_t
|
||||
complex_hash(PyComplexObject *v)
|
||||
{
|
||||
unsigned long hashreal, hashimag, combined;
|
||||
hashreal = (unsigned long)_Py_HashDouble(v->cval.real);
|
||||
if (hashreal == (unsigned long)-1)
|
||||
Py_uhash_t hashreal, hashimag, combined;
|
||||
hashreal = (Py_uhash_t)_Py_HashDouble(v->cval.real);
|
||||
if (hashreal == (Py_uhash_t)-1)
|
||||
return -1;
|
||||
hashimag = (unsigned long)_Py_HashDouble(v->cval.imag);
|
||||
if (hashimag == (unsigned long)-1)
|
||||
hashimag = (Py_uhash_t)_Py_HashDouble(v->cval.imag);
|
||||
if (hashimag == (Py_uhash_t)-1)
|
||||
return -1;
|
||||
/* Note: if the imaginary part is 0, hashimag is 0 now,
|
||||
* so the following returns hashreal unchanged. This is
|
||||
|
|
@ -411,8 +411,8 @@ complex_hash(PyComplexObject *v)
|
|||
* hash(x + 0*j) must equal hash(x).
|
||||
*/
|
||||
combined = hashreal + _PyHASH_IMAG * hashimag;
|
||||
if (combined == (unsigned long)-1)
|
||||
combined = (unsigned long)-2;
|
||||
if (combined == (Py_uhash_t)-1)
|
||||
combined = (Py_uhash_t)-2;
|
||||
return (Py_hash_t)combined;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue