diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-09-10 11:29:19 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-09-11 08:36:40 +0000 |
| commit | a4311711eb89e3f9833a05edf3debdf7563a104f (patch) | |
| tree | 257a50545359f81f7c17437003dc70f4ba74b835 /sources/pyside6 | |
| parent | 327cd3aa4da7d4a9c4ce593751fd3e385abba3f0 (diff) | |
Define SbkObjectType to be a PyTypeObject
SbkObjectType was a struct embedding a PyTypeObject
after fec1611e9f42c1f0a13eb33474df2ed8ee480842.
Remove that and make the types equvivalent, which allows for
removing many reinterpret_casts.
SbkObjectType is left as a typedef for client code snippets.
[ChangeLog][shiboken6] SbkObjectType is now a typedef for PyTypeObject.
Task-number: PYSIDE-535
Change-Id: I44812311ccbbe0988c38e34c47d16f6874f8d1cf
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6')
| -rw-r--r-- | sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h | 2 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h | 2 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtcore.cpp | 7 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtwidgets.cpp | 2 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/dynamicqmetaobject.cpp | 2 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pyside.cpp | 7 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pyside.h | 2 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pyside_p.h | 3 | ||||
| -rw-r--r-- | sources/pyside6/libpyside/pysidesignal.cpp | 2 |
9 files changed, 7 insertions, 22 deletions
diff --git a/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h b/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h index 2a90a07e0..0dbfb6e5a 100644 --- a/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h +++ b/sources/pyside6/PySide6/QtQml/pysideqmlregistertype.h @@ -42,8 +42,6 @@ #include <sbkpython.h> -struct SbkObjectType; - namespace PySide { diff --git a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h index 1955413b2..ee4b60866 100644 --- a/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h +++ b/sources/pyside6/PySide6/QtQuick/pysidequickregistertype.h @@ -42,8 +42,6 @@ #include <sbkpython.h> -struct SbkObjectType; - namespace PySide { void initQuickSupport(PyObject *module); diff --git a/sources/pyside6/PySide6/glue/qtcore.cpp b/sources/pyside6/PySide6/glue/qtcore.cpp index d749c17c1..ad5eb447f 100644 --- a/sources/pyside6/PySide6/glue/qtcore.cpp +++ b/sources/pyside6/PySide6/glue/qtcore.cpp @@ -150,8 +150,7 @@ return %out; static QMetaType QVariant_resolveMetaType(PyTypeObject *type) { if (PyObject_TypeCheck(type, SbkObjectType_TypeF())) { - auto sbkType = reinterpret_cast<SbkObjectType *>(type); - const char *typeName = Shiboken::ObjectType::getOriginalName(sbkType); + const char *typeName = Shiboken::ObjectType::getOriginalName(type); if (!typeName) return {}; const bool valueType = '*' != typeName[qstrlen(typeName) - 1]; @@ -1316,7 +1315,7 @@ auto *ptr = reinterpret_cast<uchar *>(Shiboken::Buffer::getPointer(%PYARG_1, &si // %FUNCTION_NAME() - disable generation of c++ function call (void) %2; // remove warning about unused variable Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); -auto *timerType = reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>()); +auto *timerType = Shiboken::SbkType<QTimer>(); auto *pyTimer = timerType->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, nullptr); timerType->tp_init(pyTimer, emptyTuple, nullptr); @@ -1339,7 +1338,7 @@ timer->start(%1); // @snippet qtimer-singleshot-2 // %FUNCTION_NAME() - disable generation of c++ function call Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); -auto *timerType = reinterpret_cast<PyTypeObject *>(Shiboken::SbkType<QTimer>()); +auto *timerType = Shiboken::SbkType<QTimer>(); auto *pyTimer = timerType->tp_new(Shiboken::SbkType<QTimer>(), emptyTuple, nullptr); timerType->tp_init(pyTimer, emptyTuple, nullptr); QTimer * timer = %CONVERTTOCPP[QTimer *](pyTimer); diff --git a/sources/pyside6/PySide6/glue/qtwidgets.cpp b/sources/pyside6/PySide6/glue/qtwidgets.cpp index d2b7872d4..802a3c172 100644 --- a/sources/pyside6/PySide6/glue/qtwidgets.cpp +++ b/sources/pyside6/PySide6/glue/qtwidgets.cpp @@ -56,7 +56,7 @@ Shiboken::Object::releaseOwnership(%PYARG_0); // @snippet qgraphicsitem PyObject *userTypeConstant = PyLong_FromLong(QGraphicsItem::UserType); -PyDict_SetItemString(reinterpret_cast<PyTypeObject *>(Sbk_QGraphicsItem_TypeF())->tp_dict, "UserType", userTypeConstant); +PyDict_SetItemString(Sbk_QGraphicsItem_TypeF()->tp_dict, "UserType", userTypeConstant); // @snippet qgraphicsitem // @snippet qgraphicsitem-scene-return-parenting diff --git a/sources/pyside6/libpyside/dynamicqmetaobject.cpp b/sources/pyside6/libpyside/dynamicqmetaobject.cpp index 5269067e7..fb8762a0a 100644 --- a/sources/pyside6/libpyside/dynamicqmetaobject.cpp +++ b/sources/pyside6/libpyside/dynamicqmetaobject.cpp @@ -473,7 +473,7 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type) basesToCheck.reserve(1u + basesCount); basesToCheck.push_back(type); - auto sbkObjTypeF = reinterpret_cast<PyTypeObject *>(SbkObject_TypeF()); + auto sbkObjTypeF = SbkObject_TypeF(); auto baseObjType = reinterpret_cast<PyTypeObject *>(&PyBaseObject_Type); for (Py_ssize_t i = 0; i < basesCount; ++i) { auto baseType = reinterpret_cast<PyTypeObject *>(PyTuple_GET_ITEM(mro, i)); diff --git a/sources/pyside6/libpyside/pyside.cpp b/sources/pyside6/libpyside/pyside.cpp index 990b45694..59b7f54e9 100644 --- a/sources/pyside6/libpyside/pyside.cpp +++ b/sources/pyside6/libpyside/pyside.cpp @@ -240,14 +240,9 @@ void initDynamicMetaObject(SbkObjectType *type, const QMetaObject *base, std::si PySide::PyName::qtStaticMetaObject(), pyMetaObject); } -TypeUserData *retrieveTypeUserData(SbkObjectType *sbkTypeObj) -{ - return reinterpret_cast<TypeUserData *>(Shiboken::ObjectType::getTypeUserData(sbkTypeObj)); -} - TypeUserData *retrieveTypeUserData(PyTypeObject *pyTypeObj) { - return retrieveTypeUserData(reinterpret_cast<SbkObjectType *>(pyTypeObj)); + return reinterpret_cast<TypeUserData *>(Shiboken::ObjectType::getTypeUserData(pyTypeObj)); } TypeUserData *retrieveTypeUserData(PyObject *pyObj) diff --git a/sources/pyside6/libpyside/pyside.h b/sources/pyside6/libpyside/pyside.h index 0c9ad92cf..b74cc8414 100644 --- a/sources/pyside6/libpyside/pyside.h +++ b/sources/pyside6/libpyside/pyside.h @@ -51,8 +51,6 @@ #include <QtCore/QMetaType> #include <QtCore/QHash> -struct SbkObjectType; - namespace PySide { diff --git a/sources/pyside6/libpyside/pyside_p.h b/sources/pyside6/libpyside/pyside_p.h index 1084a40a1..a5183c907 100644 --- a/sources/pyside6/libpyside/pyside_p.h +++ b/sources/pyside6/libpyside/pyside_p.h @@ -44,8 +44,6 @@ #include <dynamicqmetaobject.h> -struct SbkObjectType; - namespace PySide { @@ -59,7 +57,6 @@ struct TypeUserData std::size_t cppObjSize; }; -TypeUserData *retrieveTypeUserData(SbkObjectType *sbkTypeObj); TypeUserData *retrieveTypeUserData(PyTypeObject *pyTypeObj); TypeUserData *retrieveTypeUserData(PyObject *pyObj); // For QML diff --git a/sources/pyside6/libpyside/pysidesignal.cpp b/sources/pyside6/libpyside/pysidesignal.cpp index 95acb1bad..3a3b52c2a 100644 --- a/sources/pyside6/libpyside/pysidesignal.cpp +++ b/sources/pyside6/libpyside/pysidesignal.cpp @@ -942,7 +942,7 @@ static typename T::value_type join(T t, const char *sep) static void _addSignalToWrapper(SbkObjectType *wrapperType, const char *signalName, PySideSignal *signal) { - auto typeDict = reinterpret_cast<PyTypeObject *>(wrapperType)->tp_dict; + auto typeDict = wrapperType->tp_dict; PyObject *homonymousMethod; if ((homonymousMethod = PyDict_GetItemString(typeDict, signalName))) { Py_INCREF(homonymousMethod); |
