From 3c749fc867f69deac75f866d5c1ba0f60e54c1fa Mon Sep 17 00:00:00 2001 From: Serhiy Storchaka Date: Sat, 25 Mar 2017 12:10:16 +0200 Subject: [PATCH] Simplify partial.__new__. (#813) Fast paths in partial.__new__ no longer needed since concatenating with empty tuple was optimized. --- Modules/_functoolsmodule.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c index 592edbb6140..567300e3f3b 100644 --- a/Modules/_functoolsmodule.c +++ b/Modules/_functoolsmodule.c @@ -66,24 +66,18 @@ partial_new(PyTypeObject *type, PyObject *args, PyObject *kw) Py_DECREF(pto); return NULL; } - if (pargs == NULL || PyTuple_GET_SIZE(pargs) == 0) { + if (pargs == NULL) { pto->args = nargs; - Py_INCREF(nargs); - } - else if (PyTuple_GET_SIZE(nargs) == 0) { - pto->args = pargs; - Py_INCREF(pargs); } else { pto->args = PySequence_Concat(pargs, nargs); + Py_DECREF(nargs); if (pto->args == NULL) { - Py_DECREF(nargs); Py_DECREF(pto); return NULL; } assert(PyTuple_Check(pto->args)); } - Py_DECREF(nargs); if (pkw == NULL || PyDict_GET_SIZE(pkw) == 0) { if (kw == NULL) {