summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Objects/unicodeobject.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index f5919cf5a9..02bf56e681 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1994,8 +1994,10 @@ unicode_is_singleton(PyObject *unicode)
if (unicode == state->empty_string) {
return 1;
}
- for (Py_ssize_t i = 0; i < 256; i++) {
- if (unicode == state->latin1[i]) {
+ PyASCIIObject *ascii = (PyASCIIObject *)unicode;
+ 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;
}
}