diff options
-rw-r--r-- | Include/unicodeobject.h | 3 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 9 |
2 files changed, 7 insertions, 5 deletions
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 135e469..956bdbd 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -1951,7 +1951,8 @@ PyAPI_FUNC(PyObject *) PyUnicode_Replace( ); /* Compare two strings and return -1, 0, 1 for less than, equal, - greater than resp. */ + greater than resp. + Raise an exception and return -1 on error. */ PyAPI_FUNC(int) PyUnicode_Compare( PyObject *left, /* Left string */ diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 98b10e9..b84d888 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -10445,6 +10445,10 @@ unicode_compare(PyObject *str1, PyObject *str2) void *data1, *data2; Py_ssize_t len1, len2, i; + /* a string is equal to itself */ + if (str1 == str2) + return 0; + kind1 = PyUnicode_KIND(str1); kind2 = PyUnicode_KIND(str2); data1 = PyUnicode_DATA(str1); @@ -10531,10 +10535,7 @@ PyUnicode_RichCompare(PyObject *left, PyObject *right, int op) return Py_True; } } - if (left == right) - result = 0; - else - result = unicode_compare(left, right); + result = unicode_compare(left, right); /* Convert the return value to a Boolean */ switch (op) { |