* Non-zero initial value so that hash(frozenset()) != hash(0).
* Final permutation to differentiate nested sets.
* Add logic to make sure that -1 is not a possible hash value.
PySetObject *so = (PySetObject *)self;
PyObject *key, *value;
int pos = 0;
- long hash = 0;
+ long hash = 1905176217L;
if (so->hash != -1)
return so->hash;
collapse to only a handful of distinct hash values. */
hash ^= PyObject_Hash(key) * 3644798167u;
}
+ hash *= 69069L;
+ if (hash == -1)
+ hash = 590923713L;
so->hash = hash;
return hash;
}