diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-08-31 14:38:13 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-08-31 14:38:13 +0200 |
| commit | 404f584d6ac4b94c65d60aa1171f0ef1fe4dc6bd (patch) | |
| tree | 84a7908dc888bc4c0c473c92c27f42bc287032f5 /sources/pyside2/libpyside/pysidesignal.cpp | |
| parent | b49e0a9d9c6ba831b3931f1b6ebf1f9ed8f52962 (diff) | |
| parent | 9a37b64bbee7573578f63334b76a3eca533ea539 (diff) | |
Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: Icf4b3535be52b64ef15eced7103bb1280e031e30
Diffstat (limited to 'sources/pyside2/libpyside/pysidesignal.cpp')
| -rw-r--r-- | sources/pyside2/libpyside/pysidesignal.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sources/pyside2/libpyside/pysidesignal.cpp b/sources/pyside2/libpyside/pysidesignal.cpp index f11f5a12d..367f85fff 100644 --- a/sources/pyside2/libpyside/pysidesignal.cpp +++ b/sources/pyside2/libpyside/pysidesignal.cpp @@ -360,7 +360,7 @@ PyObject *signalInstanceConnect(PyObject *self, PyObject *args, PyObject *kwds) if (isMethod || isFunction) { PyObject *function = isMethod ? PyMethod_GET_FUNCTION(slot) : slot; - PyCodeObject *objCode = reinterpret_cast<PyCodeObject *>(PyFunction_GET_CODE(function)); + auto *objCode = reinterpret_cast<PepCodeObject *>(PyFunction_GET_CODE(function)); useSelf = isMethod; slotArgs = PepCode_GET_FLAGS(objCode) & CO_VARARGS ? -1 : PepCode_GET_ARGCOUNT(objCode); if (useSelf) @@ -567,7 +567,11 @@ PyObject *signalCall(PyObject *self, PyObject *args, PyObject *kw) Shiboken::AutoDecRef homonymousMethod(getDescriptor(signal->homonymousMethod, 0, 0)); if (PyCFunction_Check(homonymousMethod) && (PyCFunction_GET_FLAGS(homonymousMethod.object()) & METH_STATIC)) { +#if PY_VERSION_HEX >= 0x03090000 + return PyObject_Call(homonymousMethod, args, kw); +#else return PyCFunction_Call(homonymousMethod, args, kw); +#endif } // Assumes homonymousMethod is not a static method. @@ -585,7 +589,11 @@ PyObject *signalInstanceCall(PyObject *self, PyObject *args, PyObject *kw) descrgetfunc getDescriptor = Py_TYPE(PySideSignal->d->homonymousMethod)->tp_descr_get; Shiboken::AutoDecRef homonymousMethod(getDescriptor(PySideSignal->d->homonymousMethod, PySideSignal->d->source, 0)); +#if PY_VERSION_HEX >= 0x03090000 + return PyObject_Call(homonymousMethod, args, kw); +#else return PyCFunction_Call(homonymousMethod, args, kw); +#endif } static PyObject *metaSignalCheck(PyObject * /* klass */, PyObject *arg) @@ -929,7 +937,7 @@ QString getCallbackSignature(const char *signal, QObject *receiver, PyObject *ca if (isMethod || isFunction) { PyObject *function = isMethod ? PyMethod_GET_FUNCTION(callback) : callback; - auto objCode = reinterpret_cast<PyCodeObject *>(PyFunction_GET_CODE(function)); + auto objCode = reinterpret_cast<PepCodeObject *>(PyFunction_GET_CODE(function)); functionName = Shiboken::String::toCString(PepFunction_GetName(function)); useSelf = isMethod; numArgs = PepCode_GET_FLAGS(objCode) & CO_VARARGS ? -1 : PepCode_GET_ARGCOUNT(objCode); |
