From: animalize Date: Wed, 2 Jan 2019 12:16:06 +0000 (+0800) Subject: bpo-35636: Remove redundant check in unicode_hash(). (GH-11402) X-Git-Tag: v3.8.0a1~155 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a1d14253066f7dd60cfb465c6511fa565f312b42;p=python bpo-35636: Remove redundant check in unicode_hash(). (GH-11402) _Py_HashBytes() does the check for empty string. --- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 06338fac2b..f1dcfe9ab7 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -11656,7 +11656,6 @@ unicode_getitem(PyObject *self, Py_ssize_t index) static Py_hash_t unicode_hash(PyObject *self) { - Py_ssize_t len; Py_uhash_t x; /* Unsigned for defined overflow behavior. */ #ifdef Py_DEBUG @@ -11666,15 +11665,7 @@ unicode_hash(PyObject *self) return _PyUnicode_HASH(self); if (PyUnicode_READY(self) == -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), PyUnicode_GET_LENGTH(self) * PyUnicode_KIND(self)); _PyUnicode_HASH(self) = x;