Enable also ptr==ptr optimization in PyUnicode_Compare()

It was already implemented in PyUnicode_RichCompare()
This commit is contained in:
Victor Stinner 2012-10-04 21:53:50 +02:00
parent 6964f4b790
commit 90db9c47dc
2 changed files with 7 additions and 5 deletions

View File

@ -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 */

View File

@ -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) {