[Python-checkins] bpo-35636: Remove redundant check in unicode_hash(). (GH-11402)

Serhiy Storchaka webhook-mailer at python.org
Wed Jan 2 07:16:12 EST 2019


https://github.com/python/cpython/commit/a1d14253066f7dd60cfb465c6511fa565f312b42
commit: a1d14253066f7dd60cfb465c6511fa565f312b42
branch: master
author: animalize <animalize at users.noreply.github.com>
committer: Serhiy Storchaka <storchaka at gmail.com>
date: 2019-01-02T14:16:06+02:00
summary:

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

_Py_HashBytes() does the check for empty string.

files:
M Objects/unicodeobject.c

diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 06338fac2b28..f1dcfe9ab72a 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;



More information about the Python-checkins mailing list