bpo-45061: Revert unicode_is_singleton() change (GH-28516)

Don't use a loop over 256 items, only checks for a single singleton.
This commit is contained in:
Victor Stinner 2021-09-22 12:16:53 +02:00 committed by GitHub
parent 8f943ca257
commit 8620be99da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 2 deletions

View File

@ -1994,8 +1994,10 @@ unicode_is_singleton(PyObject *unicode)
if (unicode == state->empty_string) { if (unicode == state->empty_string) {
return 1; return 1;
} }
for (Py_ssize_t i = 0; i < 256; i++) { PyASCIIObject *ascii = (PyASCIIObject *)unicode;
if (unicode == state->latin1[i]) { if (ascii->state.kind != PyUnicode_WCHAR_KIND && ascii->length == 1) {
Py_UCS4 ch = PyUnicode_READ_CHAR(unicode, 0);
if (ch < 256 && state->latin1[ch] == unicode) {
return 1; return 1;
} }
} }