From 9b32b890749b7843cd3e087baa89390fde634859 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Tue, 25 Jun 2024 03:10:00 -0500 Subject: Add fast path in count_elements (gh-120983) --- Modules/_collectionsmodule.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Modules/_collectionsmodule.c b/Modules/_collectionsmodule.c index 644a90a..641d57a 100644 --- a/Modules/_collectionsmodule.c +++ b/Modules/_collectionsmodule.c @@ -2575,7 +2575,11 @@ _collections__count_elements_impl(PyObject *module, PyObject *mapping, oldval = PyObject_CallFunctionObjArgs(bound_get, key, zero, NULL); if (oldval == NULL) break; - newval = PyNumber_Add(oldval, one); + if (oldval == zero) { + newval = Py_NewRef(one); + } else { + newval = PyNumber_Add(oldval, one); + } Py_DECREF(oldval); if (newval == NULL) break; -- cgit v0.12