diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-04-20 10:35:24 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:13 -0300 |
commit | 0512a3f98f1bc449214b29c307f40bb03a19ae26 (patch) | |
tree | 6072cae4c8e7507b48f034a8ecd9ac7551490a20 /PySide | |
parent | 3bc3257c8ba8b0381cb7765fbd847925e83aec79 (diff) |
Fixed reference leak on PySideSignal for QTimer.SingleShot
Fixes bug #815.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Hugo Parente Lima <hugo.pl@gmail.com>
Diffstat (limited to 'PySide')
-rw-r--r-- | PySide/QtCore/typesystem_core.xml | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index 4817df312..539544636 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -2100,7 +2100,8 @@ %PYARG_2, %3) ); - Shiboken::Object::invalidate((SbkObject*)pyTimer); + Shiboken::Object::releaseOwnership((SbkObject*)pyTimer); + Py_XDECREF(pyTimer); timer->setSingleShot(true); timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater())); timer->start(%1); @@ -2114,7 +2115,6 @@ Shiboken::SbkType<QTimer>()->tp_init(pyTimer, emptyTuple, 0); QTimer* timer = %CONVERTTOCPP[QTimer*](pyTimer); timer->setSingleShot(true); - timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater())); if (PyObject_TypeCheck(%2, &PySideSignalInstanceType)) { PySideSignalInstance* signalInstance = reinterpret_cast<PySideSignalInstance*>(%2); @@ -2138,7 +2138,10 @@ pyargs[1]) ); } - Shiboken::Object::invalidate((SbkObject*)pyTimer); + + timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()), Qt::DirectConnection); + Shiboken::Object::releaseOwnership((SbkObject*)pyTimer); + Py_XDECREF(pyTimer); timer->start(%1); </inject-code> </add-function> |