From a1d14253066f7dd60cfb465c6511fa565f312b42 Mon Sep 17 00:00:00 2001 From: animalize Date: Wed, 2 Jan 2019 20:16:06 +0800 Subject: bpo-35636: Remove redundant check in unicode_hash(). (GH-11402) _Py_HashBytes() does the check for empty string. --- Objects/unicodeobject.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) 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; -- cgit v1.2.1