diff options
author | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-03-27 15:16:03 +0200 |
---|---|---|
committer | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-04-19 11:00:18 +0000 |
commit | 4023ab3862eee7ca3084dd83ca76fba11b5db46b (patch) | |
tree | 5b52a1040fc5d5d34201c7484e479dac1fc6d0d2 /sources/shiboken2/libshiboken | |
parent | a4690116881477d09f34f6b20b2ee0f31c06163d (diff) |
Add default return value to pythonTypeIsValueType
When a class inherits from two base classes,
Shiboken sets the converter of the newly created
SbkObject to 0 (SbkObjectTypeTpNew), and handle
the multiple inheritance in a different way.
When any SbkObject try to release its ownership,
it first verify if the ownership is already on the C++ side
by checking the attribute hasOwership and also
if the converter is a ValueType.
The later fails if the converter is null,
so a default value (false) was added.
A test case using deleteLater() was included,
which uses the releaseOwnership method internally.
Task-number: PYSIDE-11
Change-Id: I34fba0d3e5d28b99b49a183ed08e977a311da632
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/shiboken2/libshiboken')
-rw-r--r-- | sources/shiboken2/libshiboken/sbkconverter.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sources/shiboken2/libshiboken/sbkconverter.cpp b/sources/shiboken2/libshiboken/sbkconverter.cpp index 0e154da39..c81a1612b 100644 --- a/sources/shiboken2/libshiboken/sbkconverter.cpp +++ b/sources/shiboken2/libshiboken/sbkconverter.cpp @@ -523,7 +523,10 @@ PyTypeObject* getPythonTypeObject(const char* typeName) bool pythonTypeIsValueType(const SbkConverter *converter) { - assert(converter); + // Unlikely to happen but for multi-inheritance SbkObjs + // the converter is not defined, hence we need a default return. + if (!converter) + return false; return converter->pointerToPython && converter->copyToPython; } |