diff options
author | Inada Naoki <songofacandy@gmail.com> | 2022-03-01 23:09:28 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-01 23:09:28 (GMT) |
commit | 9833bb91e4d5c2606421d9ec2085f5c2dfb6f72c (patch) | |
tree | cae368d226475abbeae93afd07081e78a7539cd9 /Objects/call.c | |
parent | 21099fc064c61d59c936a2f6a0db3e07cd5c8de5 (diff) | |
download | cpython-9833bb91e4d5c2606421d9ec2085f5c2dfb6f72c.zip cpython-9833bb91e4d5c2606421d9ec2085f5c2dfb6f72c.tar.gz cpython-9833bb91e4d5c2606421d9ec2085f5c2dfb6f72c.tar.bz2 |
bpo-46845: Reduce dict size when all keys are Unicode (GH-31564)
Diffstat (limited to 'Objects/call.c')
-rw-r--r-- | Objects/call.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/Objects/call.c b/Objects/call.c index 9646ad2..cf8fa1e 100644 --- a/Objects/call.c +++ b/Objects/call.c @@ -934,26 +934,11 @@ PyObject * _PyStack_AsDict(PyObject *const *values, PyObject *kwnames) { Py_ssize_t nkwargs; - PyObject *kwdict; - Py_ssize_t i; assert(kwnames != NULL); nkwargs = PyTuple_GET_SIZE(kwnames); - kwdict = _PyDict_NewPresized(nkwargs); - if (kwdict == NULL) { - return NULL; - } - - for (i = 0; i < nkwargs; i++) { - PyObject *key = PyTuple_GET_ITEM(kwnames, i); - PyObject *value = *values++; - /* If key already exists, replace it with the new value */ - if (PyDict_SetItem(kwdict, key, value)) { - Py_DECREF(kwdict); - return NULL; - } - } - return kwdict; + return _PyDict_FromItems(&PyTuple_GET_ITEM(kwnames, 0), 1, + values, 1, nkwargs); } |