Commit f8c37d16 authored by Neil Schemenauer's avatar Neil Schemenauer

Restore caching of unicode hash value. This apparently was broken

during some refactoring.
parent 02c30561
...@@ -6588,12 +6588,19 @@ unicode_getitem(PyUnicodeObject *self, Py_ssize_t index) ...@@ -6588,12 +6588,19 @@ unicode_getitem(PyUnicodeObject *self, Py_ssize_t index)
} }
static long static long
unicode_hash(PyObject *self) unicode_hash(PyUnicodeObject *self)
{ {
/* Since Unicode objects compare equal to their UTF-8 string if (self->hash != -1) {
counterparts, we hash the UTF-8 string. */ return self->hash;
PyObject *v = _PyUnicode_AsDefaultEncodedString(self, NULL); }
return PyObject_Hash(v); else {
/* Since Unicode objects compare equal to their UTF-8 string
counterparts, we hash the UTF-8 string. */
PyObject *v = _PyUnicode_AsDefaultEncodedString((PyObject*)self, NULL);
long x = PyObject_Hash(v);
self->hash = x;
return x;
}
} }
PyDoc_STRVAR(index__doc__, PyDoc_STRVAR(index__doc__,
......
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