#endif
if (args == NULL) {
- if (kwargs == NULL) {
- return _PyObject_CallNoArg(func);
- }
-
- args = PyTuple_New(0);
- if (args == NULL)
- return NULL;
+ return _PyObject_FastCallDict(func, NULL, 0, kwargs);
}
- else if (!PyTuple_Check(args)) {
+
+ if (!PyTuple_Check(args)) {
PyErr_SetString(PyExc_TypeError,
"argument list must be a tuple");
return NULL;
}
- else {
- Py_INCREF(args);
- }
if (kwargs != NULL && !PyDict_Check(kwargs)) {
PyErr_SetString(PyExc_TypeError,
"keyword list must be a dictionary");
- Py_DECREF(args);
return NULL;
}
+ Py_INCREF(args);
result = PyObject_Call(func, args, kwargs);
Py_DECREF(args);