aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside/pyside.cpp
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2011-01-18 16:59:06 -0200
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:51:47 -0300
commit4a2bfc9239c13272478185ce056e481d7aa1106b (patch)
treeeafaeec4e27c5d172420a9e72dc456c45c03952a /libpyside/pyside.cpp
parente9d1dc38e2940a2b25e8eb1060a4945f2c20b04c (diff)
Fix bug#552 - "Segmentation fault when using QUiLoader and QTabWidget"
Reviewer: Renato Araújo <renato.filho@openbossa.org> Marcelo Lira <marcelo.lira@openbossa.org>
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);
+ }
}
};