diff options
author | Christian Tismer <tismer@stackless.com> | 2019-04-12 10:58:02 +0200 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2019-04-16 05:05:17 +0000 |
commit | b2b20bb28e178143dbee3004f33a4af23e5a9765 (patch) | |
tree | b4b3dd9e6a871b0be8343b809e3600364fa5cdd8 /sources/shiboken2/libshiboken/basewrapper.cpp | |
parent | 5b42f97fdfc0334e7628bbe30149227d0834edcd (diff) |
Cleanup And Simplify the Signature Related Code
Task-number: PYSIDE-510
Change-Id: I73c441b56a19a0ac836e3598ff6fc8c9ba4d1cd2
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/libshiboken/basewrapper.cpp')
-rw-r--r-- | sources/shiboken2/libshiboken/basewrapper.cpp | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/sources/shiboken2/libshiboken/basewrapper.cpp b/sources/shiboken2/libshiboken/basewrapper.cpp index a008fece8..db65ec696 100644 --- a/sources/shiboken2/libshiboken/basewrapper.cpp +++ b/sources/shiboken2/libshiboken/basewrapper.cpp @@ -750,12 +750,8 @@ introduceWrapperType(PyObject *enclosingObject, PyObject *baseTypes, unsigned wrapperFlags) { - if (baseType) { - typeSpec->slots[0].pfunc = reinterpret_cast<void *>(baseType); - } - else { - typeSpec->slots[0].pfunc = reinterpret_cast<void *>(SbkObject_TypeF()); - } + typeSpec->slots[0].pfunc = reinterpret_cast<void *>(baseType ? baseType : SbkObject_TypeF()); + PyObject *heaptype = PyType_FromSpecWithBases(typeSpec, baseTypes); Py_TYPE(heaptype) = SbkObjectType_TypeF(); Py_INCREF(Py_TYPE(heaptype)); @@ -779,20 +775,14 @@ introduceWrapperType(PyObject *enclosingObject, setOriginalName(type, originalName); setDestructorFunction(type, cppObjDtor); + PyObject *ob_type = reinterpret_cast<PyObject *>(type); - if (wrapperFlags & InnerClass) { - if (PyDict_SetItemString(enclosingObject, typeName, reinterpret_cast<PyObject *>(type)) == 0) - return type; - else - return nullptr; - } + if (wrapperFlags & InnerClass) + return PyDict_SetItemString(enclosingObject, typeName, ob_type) == 0 ? type : nullptr; - //PyModule_AddObject steals type's reference. - Py_INCREF(reinterpret_cast<PyObject *>(type)); - if (PyModule_AddObject(enclosingObject, typeName, reinterpret_cast<PyObject *>(type)) == 0) { - return type; - } - return nullptr; + // PyModule_AddObject steals type's reference. + Py_INCREF(ob_type); + return PyModule_AddObject(enclosingObject, typeName, ob_type) == 0 ? type : nullptr; } void setSubTypeInitHook(SbkObjectType* type, SubTypeInitHook func) |