diff options
Diffstat (limited to 'sources/pyside6/libpyside')
| -rw-r--r-- | sources/pyside6/libpyside/dynamicslot.cpp | 3 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pyside.cpp | 5 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pysidesignal.cpp | 5 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pysideutils.h | 2 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/qobjectconnect.cpp | 3 |
5 files changed, 11 insertions, 7 deletions
diff --git a/sources/pyside6/libpyside/dynamicslot.cpp b/sources/pyside6/libpyside/dynamicslot.cpp index 1fbdba1ab..e0a24558b 100644 --- a/sources/pyside6/libpyside/dynamicslot.cpp +++ b/sources/pyside6/libpyside/dynamicslot.cpp @@ -8,6 +8,7 @@ #include "signalmanager.h" #include <autodecref.h> +#include <helper.h> #include <gilstate.h> #include <pep384ext.h> @@ -26,7 +27,7 @@ DynamicSlot::SlotType DynamicSlot::slotType(PyObject *callback) { if (PyMethod_Check(callback) != 0) return SlotType::Method; - if (PySide::isCompiledMethod(callback) != 0) + if (Shiboken::isCompiledMethod(callback)) return SlotType::CompiledMethod; if (PyCFunction_Check(callback) != 0) return SlotType::C_Function; diff --git a/sources/pyside6/libpyside/pyside.cpp b/sources/pyside6/libpyside/pyside.cpp index e061f16a9..c9c9b293f 100644 --- a/sources/pyside6/libpyside/pyside.cpp +++ b/sources/pyside6/libpyside/pyside.cpp @@ -28,6 +28,7 @@ #include <basewrapper.h> #include <bindingmanager.h> #include <gilstate.h> +#include <helper.h> #include <sbkconverter.h> #include <sbkstring.h> #include <sbkstaticstrings.h> @@ -875,9 +876,7 @@ QString pyPathToQString(PyObject *path) bool isCompiledMethod(PyObject *callback) { - return PyObject_HasAttr(callback, PySide::PySideName::im_func()) - && PyObject_HasAttr(callback, PySide::PySideName::im_self()) - && PyObject_HasAttr(callback, PySide::PySideMagicName::code()); + return Shiboken::isCompiledMethod(callback); } static const unsigned char qt_resource_name[] = { diff --git a/sources/pyside6/libpyside/pysidesignal.cpp b/sources/pyside6/libpyside/pysidesignal.cpp index 32f00877b..6e5fccae5 100644 --- a/sources/pyside6/libpyside/pysidesignal.cpp +++ b/sources/pyside6/libpyside/pysidesignal.cpp @@ -11,6 +11,7 @@ #include "signalmanager.h" #include <shiboken.h> +#include <helper.h> #include <sbkstaticstrings.h> #include <QtCore/QByteArray> @@ -423,7 +424,7 @@ static FunctionArgumentsResult extractFunctionArgumentsFromSlot(PyObject *slot) ret.objCode = reinterpret_cast<PepCodeObject *>(PyFunction_GET_CODE(ret.function)); ret.functionName = PepFunction_GetName(ret.function); - } else if (PySide::isCompiledMethod(slot)) { + } else if (Shiboken::isCompiledMethod(slot)) { // PYSIDE-1523: PyFunction_Check and PyMethod_Check are not accepting compiled forms, we // just go by attributes. ret.isMethod = true; @@ -1363,7 +1364,7 @@ QByteArray codeCallbackName(PyObject *callback, const QByteArray &funcName) return funcName + QByteArray::number(quint64(self), 16) + QByteArray::number(quint64(func), 16); } // PYSIDE-1523: Handle the compiled case. - if (PySide::isCompiledMethod(callback)) { + if (Shiboken::isCompiledMethod(callback)) { // Not retaining references inline with what PyMethod_GET_(SELF|FUNC) does. Shiboken::AutoDecRef self(PyObject_GetAttr(callback, PySide::PySideName::im_self())); Shiboken::AutoDecRef func(PyObject_GetAttr(callback, PySide::PySideName::im_func())); diff --git a/sources/pyside6/libpyside/pysideutils.h b/sources/pyside6/libpyside/pysideutils.h index 47c2f2c1b..579e7f74c 100644 --- a/sources/pyside6/libpyside/pysideutils.h +++ b/sources/pyside6/libpyside/pysideutils.h @@ -35,6 +35,8 @@ PYSIDE_API QString pyStringToQString(PyObject *str); /// Provide an efficient, correct PathLike interface. PYSIDE_API QString pyPathToQString(PyObject *path); +/// Returns whether \a method is a compiled method (Nuitka). +/// \sa Shiboken::isCompiledMethod() PYSIDE_API bool isCompiledMethod(PyObject *callback); struct debugPyTypeObject diff --git a/sources/pyside6/libpyside/qobjectconnect.cpp b/sources/pyside6/libpyside/qobjectconnect.cpp index 568e248dd..bb98682c2 100644 --- a/sources/pyside6/libpyside/qobjectconnect.cpp +++ b/sources/pyside6/libpyside/qobjectconnect.cpp @@ -13,6 +13,7 @@ #include <sbkstaticstrings.h> #include "basewrapper.h" #include "autodecref.h" +#include <helper.h> #include <QtCore/QDebug> #include <QtCore/QMetaMethod> @@ -113,7 +114,7 @@ static GetReceiverResult getReceiver(QMetaMethod signal, PyObject *callback) } else if (PyCFunction_Check(callback)) { result.self = PyCFunction_GetSelf(callback); result.receiver = PySide::convertToQObject(result.self, false); - } else if (PySide::isCompiledMethod(callback)) { + } else if (Shiboken::isCompiledMethod(callback)) { result.self = PyObject_GetAttr(callback, Shiboken::PyName::im_self()); Py_DECREF(result.self); result.receiver = PySide::convertToQObject(result.self, false); |
