diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-01-18 16:59:06 -0200 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:51:47 -0300 |
commit | 4a2bfc9239c13272478185ce056e481d7aa1106b (patch) | |
tree | eafaeec4e27c5d172420a9e72dc456c45c03952a /libpyside/pyside.cpp | |
parent | e9d1dc38e2940a2b25e8eb1060a4945f2c20b04c (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.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); + } } }; |