Enable also ptr==ptr optimization in PyUnicode_Compare()
It was already implemented in PyUnicode_RichCompare()
This commit is contained in:
parent
6964f4b790
commit
90db9c47dc
|
@ -1951,7 +1951,8 @@ PyAPI_FUNC(PyObject *) PyUnicode_Replace(
|
||||||
);
|
);
|
||||||
|
|
||||||
/* Compare two strings and return -1, 0, 1 for less than, equal,
|
/* 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(
|
PyAPI_FUNC(int) PyUnicode_Compare(
|
||||||
PyObject *left, /* Left string */
|
PyObject *left, /* Left string */
|
||||||
|
|
|
@ -10445,6 +10445,10 @@ unicode_compare(PyObject *str1, PyObject *str2)
|
||||||
void *data1, *data2;
|
void *data1, *data2;
|
||||||
Py_ssize_t len1, len2, i;
|
Py_ssize_t len1, len2, i;
|
||||||
|
|
||||||
|
/* a string is equal to itself */
|
||||||
|
if (str1 == str2)
|
||||||
|
return 0;
|
||||||
|
|
||||||
kind1 = PyUnicode_KIND(str1);
|
kind1 = PyUnicode_KIND(str1);
|
||||||
kind2 = PyUnicode_KIND(str2);
|
kind2 = PyUnicode_KIND(str2);
|
||||||
data1 = PyUnicode_DATA(str1);
|
data1 = PyUnicode_DATA(str1);
|
||||||
|
@ -10531,10 +10535,7 @@ PyUnicode_RichCompare(PyObject *left, PyObject *right, int op)
|
||||||
return Py_True;
|
return Py_True;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (left == right)
|
result = unicode_compare(left, right);
|
||||||
result = 0;
|
|
||||||
else
|
|
||||||
result = unicode_compare(left, right);
|
|
||||||
|
|
||||||
/* Convert the return value to a Boolean */
|
/* Convert the return value to a Boolean */
|
||||||
switch (op) {
|
switch (op) {
|
||||||
|
|
Loading…
Reference in New Issue