bpo-39465: Cleanup _PyUnicode_FromId() code by vstinner · Pull Request #20595 · python/cpython
Expand Up
@@ -2275,17 +2275,23 @@ PyUnicode_FromString(const char *u)
PyObject *
_PyUnicode_FromId(_Py_Identifier *id)
{
if (!id->object) {
id->object = PyUnicode_DecodeUTF8Stateful(id->string,
strlen(id->string),
NULL, NULL);
if (!id->object)
return NULL;
PyUnicode_InternInPlace(&id->object);
assert(!id->next);
id->next = static_strings;
static_strings = id;
if (id->object) {
return id->object;
}
PyObject *obj; obj = PyUnicode_DecodeUTF8Stateful(id->string, strlen(id->string), NULL, NULL); if (!obj) { return NULL; } PyUnicode_InternInPlace(&obj);
assert(!id->next); id->object = obj; id->next = static_strings; static_strings = id; return id->object; }
Expand Down
PyObject *obj; obj = PyUnicode_DecodeUTF8Stateful(id->string, strlen(id->string), NULL, NULL); if (!obj) { return NULL; } PyUnicode_InternInPlace(&obj);
assert(!id->next); id->object = obj; id->next = static_strings; static_strings = id; return id->object; }
Expand Down