[3.8] bpo-36974: separate vectorcall functions for each calling convention (GH-13781) (#14782)

This commit is contained in:
Jeroen Demeyer 2019-07-23 12:39:51 +02:00 committed by Łukasz Langa
parent 5dab5e7d24
commit bf8e82f976
10 changed files with 388 additions and 117 deletions

View file

@ -206,7 +206,7 @@ PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *kwargs)
Py_DECREF(kwnames);
}
return result;
return _Py_CheckFunctionResult(callable, result, NULL);
}
@ -723,25 +723,6 @@ exit:
}
PyObject *
_PyCFunction_Vectorcall(PyObject *func,
PyObject *const *args, size_t nargsf,
PyObject *kwnames)
{
PyObject *result;
assert(func != NULL);
assert(PyCFunction_Check(func));
Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
result = _PyMethodDef_RawFastCallKeywords(((PyCFunctionObject*)func)->m_ml,
PyCFunction_GET_SELF(func),
args, nargs, kwnames);
result = _Py_CheckFunctionResult(func, result, NULL);
return result;
}
static PyObject *
cfunction_call_varargs(PyObject *func, PyObject *args, PyObject *kwargs)
{