Skip to content

Commit 2b8ff15

Browse files
committed
cleanup
1 parent 2580ae9 commit 2b8ff15

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

Modules/_operator.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,11 +1643,16 @@ _methodcaller_initialize_vectorcall(methodcallerobject* mc)
16431643
PyErr_NoMemory();
16441644
return -1;
16451645
}
1646-
mc->vectorcall_args = PySequence_Concat(args, values_tuple);
1647-
Py_DECREF(values_tuple);
1648-
if (mc->vectorcall_args == 0) {
1649-
PyErr_NoMemory();
1650-
return -1;
1646+
if (PyTuple_GET_SIZE(args)) {
1647+
mc->vectorcall_args = PySequence_Concat(args, values_tuple);
1648+
Py_DECREF(values_tuple);
1649+
if (mc->vectorcall_args == 0) {
1650+
PyErr_NoMemory();
1651+
return -1;
1652+
}
1653+
}
1654+
else {
1655+
mc->vectorcall_args = values_tuple;
16511656
}
16521657
mc->vectorcall_kwnames = PySequence_Tuple(kwds);
16531658
if (!mc->vectorcall_kwnames) {
@@ -1726,10 +1731,7 @@ methodcaller_clear(methodcallerobject *mc)
17261731
Py_CLEAR(mc->args);
17271732
Py_CLEAR(mc->kwds);
17281733
Py_CLEAR(mc->vectorcall_args);
1729-
if (mc->vectorcall_kwnames) {
1730-
Py_CLEAR(mc->vectorcall_kwnames);
1731-
mc->vectorcall_kwnames = NULL;
1732-
}
1734+
Py_CLEAR(mc->vectorcall_kwnames);
17331735
}
17341736

17351737
static void
@@ -1749,9 +1751,7 @@ methodcaller_traverse(methodcallerobject *mc, visitproc visit, void *arg)
17491751
Py_VISIT(mc->args);
17501752
Py_VISIT(mc->kwds);
17511753
Py_VISIT(mc->vectorcall_args);
1752-
if (mc->vectorcall_kwnames != NULL) {
1753-
Py_VISIT(mc->vectorcall_kwnames);
1754-
}
1754+
Py_VISIT(mc->vectorcall_kwnames);
17551755
Py_VISIT(Py_TYPE(mc));
17561756
return 0;
17571757
}
@@ -1881,7 +1881,7 @@ methodcaller_reduce(methodcallerobject *mc, PyObject *Py_UNUSED(ignored))
18811881
constructor = PyObject_VectorcallDict(partial, newargs, 2, mc->kwds);
18821882

18831883
Py_DECREF(partial);
1884-
return Py_BuildValue("NO", constructor, Py_NewRef(mc->args));
1884+
return Py_BuildValue("NO", constructor, mc->args);
18851885
}
18861886
}
18871887

0 commit comments

Comments
 (0)