diff options
author | renatofilho <renato.filho@openbossa.org> | 2010-09-13 19:25:41 -0300 |
---|---|---|
committer | renatofilho <renato.filho@openbossa.org> | 2010-09-14 11:31:25 -0300 |
commit | b315368a1b8bd1af8fadca38d0356c85662ea3a7 (patch) | |
tree | 09fab24efbe4ad71f0fe3c63da960fd5e5b35c97 /libpyside | |
parent | cbf12bc3a010508081d59bdac832d3e2bb9e0c2a (diff) |
Fixed crash on qsignal destructor.
Reviewer: Hugo Parente Lima <hugo.pl@gmail.com>
Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'libpyside')
-rw-r--r-- | libpyside/qsignal.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libpyside/qsignal.cpp b/libpyside/qsignal.cpp index 6d829e900..67f58fa57 100644 --- a/libpyside/qsignal.cpp +++ b/libpyside/qsignal.cpp @@ -226,7 +226,7 @@ void signalUpdateSource(PyObject* source) PyObject *attrName = PyList_GET_ITEM(attrs.object(), i); Shiboken::AutoDecRef attr(PyObject_GetAttr(reinterpret_cast<PyObject*>(source->ob_type), attrName)); if (attr->ob_type == &Signal_Type) { - Shiboken::AutoDecRef signalInstance(_PyObject_New(&SignalInstance_Type)); + Shiboken::AutoDecRef signalInstance((PyObject*)PyObject_New(SignalInstanceData, &SignalInstance_Type)); signal_instance_initialize(signalInstance, attrName, reinterpret_cast<SignalData*>(attr.object()), source, 0); PyObject_SetAttr(source, attrName, signalInstance); } @@ -365,9 +365,9 @@ void signal_instance_free(void* self) free(data->signalName); free(data->signature); - while(data) { + if (data->next) { Py_XDECREF(data->next); - data = reinterpret_cast<SignalInstanceData*>(data->next); + data->next = 0; } pySelf->ob_type->tp_base->tp_free(self); } |