replace() uses unicode_fromascii() if the input and replace string is ASCII

This commit is contained in:
Victor Stinner 2011-10-05 23:27:08 +02:00
parent 0617b6e18b
commit f48323e3b3
1 changed files with 4 additions and 1 deletions

View File

@ -9708,6 +9708,9 @@ replace(PyObject *self, PyObject *str1,
sbuf + PyUnicode_KIND_SIZE(rkind, i), sbuf + PyUnicode_KIND_SIZE(rkind, i),
PyUnicode_KIND_SIZE(rkind, slen-i)); PyUnicode_KIND_SIZE(rkind, slen-i));
} }
if (PyUnicode_IS_ASCII(self) && PyUnicode_IS_ASCII(str2))
u = unicode_fromascii((unsigned char*)res, new_size);
else
u = PyUnicode_FromKindAndData(rkind, res, new_size); u = PyUnicode_FromKindAndData(rkind, res, new_size);
PyMem_Free(res); PyMem_Free(res);
} }