diff options
Diffstat (limited to 'libpyside')
-rw-r--r-- | libpyside/pyside.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libpyside/pyside.cpp b/libpyside/pyside.cpp index 5cb107ae4..08c12f80c 100644 --- a/libpyside/pyside.cpp +++ b/libpyside/pyside.cpp @@ -112,8 +112,10 @@ static void destructionVisitor(SbkObject* pyObj, void* data) PyTypeObject* pyQObjectType = reinterpret_cast<PyTypeObject*>(realData[1]); if (pyObj != pyQApp && PyObject_TypeCheck(pyObj, pyQObjectType)) { - if (Shiboken::Object::hasOwnership(pyObj)) - Shiboken::callCppDestructor<QObject>(Shiboken::Object::cppPointer(pyObj, Shiboken::SbkType<QObject*>())); + if (Shiboken::Object::hasOwnership(pyObj) && Shiboken::Object::isValid(pyObj, false)) { + Shiboken::callCppDestructor<QObject>(Shiboken::Object::cppPointer(pyObj, pyQObjectType)); + Shiboken::Object::setValidCpp(pyObj, false); + } } }; |