diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-10-04 13:30:08 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-10-16 13:22:47 +0000 |
| commit | bbd32e9e52bda460dd1cb75d128dd1165d1fd152 (patch) | |
| tree | 2b9b106a0f863fcf33a4f8a2bcefea9446b304e4 /sources/pyside2/libpyside/pysideclassinfo.cpp | |
| parent | 6bfbfd6edd0f9701664698768f9ec8d29f96a5bd (diff) | |
libpyside: Introduce helper functions for accessing TypeUserData and meta objects
Add helpers with overloads to reduce reinterpret_cast<> and
increase type safety.
Task-number: PYSIDE-784
Change-Id: I334fd7d149a6730094b062dd0371b9a29379d725
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/pyside2/libpyside/pysideclassinfo.cpp')
| -rw-r--r-- | sources/pyside2/libpyside/pysideclassinfo.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/sources/pyside2/libpyside/pysideclassinfo.cpp b/sources/pyside2/libpyside/pysideclassinfo.cpp index e3a437438..88b2b89f5 100644 --- a/sources/pyside2/libpyside/pysideclassinfo.cpp +++ b/sources/pyside2/libpyside/pysideclassinfo.cpp @@ -97,8 +97,7 @@ PyObject *classCall(PyObject *self, PyObject *args, PyObject * /* kw */) return 0; } - PyObject* klass; - klass = PyTuple_GetItem(args, 0); + PyObject *klass = PyTuple_GetItem(args, 0); bool validClass = false; // This will sometimes segfault if you mistakenly use it on a function declaration @@ -107,10 +106,10 @@ PyObject *classCall(PyObject *self, PyObject *args, PyObject * /* kw */) return 0; } - if (Shiboken::ObjectType::checkType(reinterpret_cast<PyTypeObject*>(klass))) { - if (void *userData = Shiboken::ObjectType::getTypeUserData(reinterpret_cast<SbkObjectType*>(klass))) { - PySide::DynamicQMetaObject &mo = reinterpret_cast<PySide::TypeUserData *>(userData)->mo; - mo.addInfo(PySide::ClassInfo::getMap(data)); + PyTypeObject *klassType = reinterpret_cast<PyTypeObject*>(klass); + if (Shiboken::ObjectType::checkType(klassType)) { + if (PySide::DynamicQMetaObject *mo = PySide::retrieveMetaObject(klassType)) { + mo->addInfo(PySide::ClassInfo::getMap(data)); pData->m_alreadyWrapped = true; validClass = true; } |
