12 for (
int i = 0, iur = 0; i < nArgs; ++i, ++iur) {
14 if (PyTuple_Check(item)) {
15 for (
int j = 0; j < PyTuple_GET_SIZE(item); ++j, ++iur) {
16 PyObject* subitem = PyTuple_GET_ITEM(item, j);
36 PyErr_Format(PyExc_NotImplementedError,
37 "no __setitem__ handler for return type (%s)",
51 PyErr_SetString(PyExc_TypeError,
"insufficient arguments to __setitem__");
63 realsize += PyTuple_Check(item) ? PyTuple_GET_SIZE(item) : 1;
67#if PY_VERSION_HEX >= 0x03080000
68 if (realsize != nArgs-1) {
71 cargs.
fArgs = unrolled;
72 cargs.
fFlags |= PyCallArgs::kDoFree;
75 if (realsize != nArgs-1) {
78 cargs.
fArgs = unrolled;
80 cargs.
fArgs = PyTuple_GetSlice(cargs.
fArgs, 0, nArgs-1);
100 realsize += PyTuple_Check(item) ? PyTuple_GET_SIZE(item) : 1;
104 if (realsize != nArgs) {
106#if PY_VERSION_HEX >= 0x03080000
108 cargs.
fFlags |= PyCallArgs::kDoFree;
110 cargs.
fArgs = PyTuple_New(realsize);
static void unroll(CPyCppyy_PyArgs_t packed_args, CPyCppyy_PyArgs_t unrolled, Py_ssize_t nArgs)
static PyObject * CPyCppyy_PyArgs_SET_ITEM(CPyCppyy_PyArgs_t args, Py_ssize_t i, PyObject *item)
static Py_ssize_t CPyCppyy_PyArgs_GET_SIZE(CPyCppyy_PyArgs_t args, size_t)
PyObject * CPyCppyy_PyArgs_t
static PyObject * CPyCppyy_PyArgs_GET_ITEM(CPyCppyy_PyArgs_t args, Py_ssize_t i)
virtual bool ProcessArgs(PyCallArgs &args)
std::string GetReturnTypeName()
virtual bool ProcessArgs(PyCallArgs &args)
virtual bool InitExecutor_(Executor *&, CallContext *ctxt=nullptr)
virtual bool InitExecutor_(Executor *&, CallContext *ctxt=nullptr)
virtual bool ProcessArgs(PyCallArgs &args)