mirror of https://github.com/python/cpython
Issue #14687: Avoid an useless duplicated string in PyUnicode_Format()
This commit is contained in:
parent
aff3cc659b
commit
b80e46eca4
|
@ -14051,20 +14051,16 @@ PyUnicode_Format(PyObject *format, PyObject *args)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Copy all characters, preserving len */
|
/* Copy all characters, preserving len */
|
||||||
if (temp != NULL) {
|
if (pindex == 0 && len == PyUnicode_GET_LENGTH(temp)) {
|
||||||
assert(pbuf == PyUnicode_DATA(temp));
|
r = _PyAccu_Accumulate(&acc, temp);
|
||||||
v = PyUnicode_Substring(temp, pindex, pindex + len);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const char *p = (const char *) pbuf;
|
v = PyUnicode_Substring(temp, pindex, pindex + len);
|
||||||
assert(pbuf != NULL);
|
|
||||||
p += kind * pindex;
|
|
||||||
v = PyUnicode_FromKindAndData(kind, p, len);
|
|
||||||
}
|
|
||||||
if (v == NULL)
|
if (v == NULL)
|
||||||
goto onError;
|
goto onError;
|
||||||
r = _PyAccu_Accumulate(&acc, v);
|
r = _PyAccu_Accumulate(&acc, v);
|
||||||
Py_DECREF(v);
|
Py_DECREF(v);
|
||||||
|
}
|
||||||
if (r)
|
if (r)
|
||||||
goto onError;
|
goto onError;
|
||||||
if (width > len && repeat_accumulate(&acc, blank, width - len))
|
if (width > len && repeat_accumulate(&acc, blank, width - len))
|
||||||
|
|
Loading…
Reference in New Issue