aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside
diff options
context:
space:
mode:
authorrenatofilho <renato.filho@openbossa.org>2010-09-13 19:25:41 -0300
committerrenatofilho <renato.filho@openbossa.org>2010-09-14 11:31:25 -0300
commitb315368a1b8bd1af8fadca38d0356c85662ea3a7 (patch)
tree09fab24efbe4ad71f0fe3c63da960fd5e5b35c97 /libpyside
parentcbf12bc3a010508081d59bdac832d3e2bb9e0c2a (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.cpp6
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);
}