13#if PY_VERSION_HEX >= 0x03080000
14 if (cargs.
fNArgsf & PY_VECTORCALL_ARGUMENTS_OFFSET) {
18 cargs.
fNArgsf &= ~PY_VECTORCALL_ARGUMENTS_OFFSET;
29 memcpy((
void*)&newArgs[1], cargs.
fArgs, totalargs *
sizeof(
PyObject*));
30 cargs.
fArgs = newArgs;
31 cargs.
fFlags |= PyCallArgs::kDoFree;
37 for (
int i = 0; i < sz; ++i) {
40 PyTuple_SET_ITEM(newArgs, i+1, item);
42 Py_INCREF(cargs.
fSelf);
45 cargs.
fArgs = newArgs;
76#if PY_VERSION_HEX >= 0x03080000
92#if PY_VERSION_HEX >= 0x03080000
124#if PY_VERSION_HEX >= 0x03080000
127 std::swap(PyTuple_GET_ITEM(cargs.
fArgs, 0), PyTuple_GET_ITEM(cargs.
fArgs, 1));
156 return this->
Execute(
nullptr, 0, ctxt);
static Py_ssize_t CPyCppyy_PyArgs_GET_SIZE(CPyCppyy_PyArgs_t args, size_t)
PyObject * CPyCppyy_PyArgs_t
#define CPyCppyy_PyText_AppendAndDel
#define CPyCppyy_PyText_FromString
PyObject * GetTypeName() override
PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr) override
bool ProcessArgs(PyCallArgs &args) override
std::string GetReturnTypeName()
PyObject * GetSignature(bool show_formalargs=true) override
bool Initialize(CallContext *ctxt=nullptr)
bool ProcessKwds(PyObject *self_in, PyCallArgs &args)
bool ConvertAndSetArgs(CPyCppyy_PyArgs_t, size_t nargsf, CallContext *ctxt=nullptr)
PyObject * Execute(void *self, ptrdiff_t offset, CallContext *ctxt=nullptr)
bool ProcessArgs(PyCallArgs &args) override
PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr) override
bool AdjustSelf(PyCallArgs &cargs)
bool CPPInstance_Check(T *object)
bool IsConstructor(uint64_t flags)