aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside/pyside.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libpyside/pyside.cpp')
-rw-r--r--libpyside/pyside.cpp6
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);
+ }
}
};