]> granicus.if.org Git - python/commitdiff
Simplify partial.__new__. (#813)
authorSerhiy Storchaka <storchaka@gmail.com>
Sat, 25 Mar 2017 10:10:16 +0000 (12:10 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Sat, 25 Mar 2017 10:10:16 +0000 (11:10 +0100)
Fast paths in partial.__new__ no longer needed since concatenating with empty
tuple was optimized.

Modules/_functoolsmodule.c

index 592edbb61404594adaa1159375307a6c4487c5c0..567300e3f3b4ab3ffd8b1dfadac722cce4b9fa2c 100644 (file)
@@ -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) {