gh-140009: Improve performance of list_extend_dictitems by using PyTuple_FromArray (#140010)

This commit is contained in:
Pieter Eendebak 2025-10-13 12:28:25 +02:00 committed by GitHub
parent 0344db8d60
commit e6aa515296
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 3 deletions

View file

@ -0,0 +1 @@
Improve performance of list extension by dictionary items.

View file

@ -1382,9 +1382,9 @@ list_extend_dictitems(PyListObject *self, PyDictObject *dict)
PyObject **dest = self->ob_item + m; PyObject **dest = self->ob_item + m;
Py_ssize_t pos = 0; Py_ssize_t pos = 0;
Py_ssize_t i = 0; Py_ssize_t i = 0;
PyObject *key, *value; PyObject *key_value[2];
while (_PyDict_Next((PyObject *)dict, &pos, &key, &value, NULL)) { while (_PyDict_Next((PyObject *)dict, &pos, &key_value[0], &key_value[1], NULL)) {
PyObject *item = PyTuple_Pack(2, key, value); PyObject *item = PyTuple_FromArray(key_value, 2);
if (item == NULL) { if (item == NULL) {
Py_SET_SIZE(self, m + i); Py_SET_SIZE(self, m + i);
return -1; return -1;