13#if PY_VERSION_HEX >= 0x03080000
14 if (cargs.
fNArgsf & PY_VECTORCALL_ARGUMENTS_OFFSET) {
16 cargs.
fFlags |= PyCallArgs::kSelfSwap;
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;
46 cargs.
fFlags |= PyCallArgs::kDoDecref;
65 if (fArgsRequired == -1 && !this->Initialize(ctxt))
72 if (!this->ProcessArgs(cargs))
76#if PY_VERSION_HEX >= 0x03080000
86 if (!this->ConvertAndSetArgs(cargs.fArgs, cargs.fNArgsf, ctxt))
92#if PY_VERSION_HEX >= 0x03080000
116#if PY_VERSION_HEX >= 0x03080000
119 std::swap(PyTuple_GET_ITEM(cargs.
fArgs, 0), PyTuple_GET_ITEM(cargs.
fArgs, 1));
134 if (fArgsRequired == -1 && !this->Initialize(ctxt))
140 if (!this->ProcessArgs(cargs))
144 if (!this->ConvertAndSetArgs(cargs.fArgs, cargs.fNArgsf, ctxt))
148 return this->Execute(
nullptr, 0, ctxt);
static Py_ssize_t CPyCppyy_PyArgs_GET_SIZE(CPyCppyy_PyArgs_t args, size_t)
PyObject * CPyCppyy_PyArgs_t
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
virtual PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr)
virtual bool ProcessArgs(PyCallArgs &args)
bool ProcessKwds(PyObject *self_in, PyCallArgs &args)
virtual bool ProcessArgs(PyCallArgs &args)
virtual PyObject * Call(CPPInstance *&self, CPyCppyy_PyArgs_t args, size_t nargsf, PyObject *kwds, CallContext *ctxt=nullptr)
bool AdjustSelf(PyCallArgs &cargs)
bool CPPInstance_Check(T *object)
bool IsConstructor(uint64_t flags)