mirror of https://github.com/python/cpython
Issue #14687: Optimize str%args
* formatfloat() uses unicode_fromascii() instead of PyUnicode_DecodeASCII() to not have to check characters, we know that it is really ASCII * Use PyUnicode_FromOrdinal() instead of _PyUnicode_FromUCS4() to format a character: if avoids a call to ucs4lib_find_max_char() to compute the maximum character (whereas we already know it, it is just the character itself)
This commit is contained in:
parent
cc1c146c7a
commit
b5c3ea3af3
|
@ -13431,7 +13431,7 @@ formatfloat(PyObject *v, int flags, int prec, int type)
|
|||
(flags & F_ALT) ? Py_DTSF_ALT : 0, NULL);
|
||||
if (p == NULL)
|
||||
return NULL;
|
||||
result = PyUnicode_DecodeASCII(p, strlen(p), NULL);
|
||||
result = unicode_fromascii((unsigned char*)p, strlen(p));
|
||||
PyMem_Free(p);
|
||||
return result;
|
||||
}
|
||||
|
@ -13947,7 +13947,7 @@ PyUnicode_Format(PyObject *format, PyObject *args)
|
|||
Py_UCS4 ch = formatchar(v);
|
||||
if (ch == (Py_UCS4) -1)
|
||||
goto onError;
|
||||
temp = _PyUnicode_FromUCS4(&ch, 1);
|
||||
temp = PyUnicode_FromOrdinal(ch);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue