]> granicus.if.org Git - python/commitdiff
bpo-35636: Remove redundant check in unicode_hash(). (GH-11402)
authoranimalize <animalize@users.noreply.github.com>
Wed, 2 Jan 2019 12:16:06 +0000 (20:16 +0800)
committerSerhiy Storchaka <storchaka@gmail.com>
Wed, 2 Jan 2019 12:16:06 +0000 (14:16 +0200)
_Py_HashBytes() does the check for empty string.

Objects/unicodeobject.c

index 06338fac2b287e4cf605f87a92d0c0c79987b9a6..f1dcfe9ab72a6b4753e2d7b0761eba5d131a04b9 100644 (file)
@@ -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;