Commit a1d14253 authored by animalize's avatar animalize Committed by Serhiy Storchaka

bpo-35636: Remove redundant check in unicode_hash(). (GH-11402)

_Py_HashBytes() does the check for empty string.
parent f8b53447
...@@ -11656,7 +11656,6 @@ unicode_getitem(PyObject *self, Py_ssize_t index) ...@@ -11656,7 +11656,6 @@ unicode_getitem(PyObject *self, Py_ssize_t index)
static Py_hash_t static Py_hash_t
unicode_hash(PyObject *self) unicode_hash(PyObject *self)
{ {
Py_ssize_t len;
Py_uhash_t x; /* Unsigned for defined overflow behavior. */ Py_uhash_t x; /* Unsigned for defined overflow behavior. */
#ifdef Py_DEBUG #ifdef Py_DEBUG
...@@ -11666,15 +11665,7 @@ unicode_hash(PyObject *self) ...@@ -11666,15 +11665,7 @@ unicode_hash(PyObject *self)
return _PyUnicode_HASH(self); return _PyUnicode_HASH(self);
if (PyUnicode_READY(self) == -1) if (PyUnicode_READY(self) == -1)
return -1; return -1;
len = PyUnicode_GET_LENGTH(self);
/*
We make the hash of the empty string be 0, rather than using
(prefix ^ suffix), since this slightly obfuscates the hash secret
*/
if (len == 0) {
_PyUnicode_HASH(self) = 0;
return 0;
}
x = _Py_HashBytes(PyUnicode_DATA(self), x = _Py_HashBytes(PyUnicode_DATA(self),
PyUnicode_GET_LENGTH(self) * PyUnicode_KIND(self)); PyUnicode_GET_LENGTH(self) * PyUnicode_KIND(self));
_PyUnicode_HASH(self) = x; _PyUnicode_HASH(self) = x;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment