aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2010-05-17 15:28:11 -0300
committerRenato Filho <renato.filho@openbossa.org>2010-05-17 19:54:42 -0300
commit77d9398bde09ed06ff0be94168c7c8739ec2483d (patch)
tree452843659e5c3a066b22ed274ddd2d9ca84434f5
parent005aeaf8290ff9308bb9ad0edfec1949e8125772 (diff)
Fixed memory leak on signal allocator.
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>, Luciano Wolf <luciano.wolf@openbossa.org>
-rw-r--r--libpyside/qsignal.cpp4
-rw-r--r--tests/signals/signal_object_test.py8
2 files changed, 12 insertions, 0 deletions
diff --git a/libpyside/qsignal.cpp b/libpyside/qsignal.cpp
index 76d66f97e..2aa07d5c2 100644
--- a/libpyside/qsignal.cpp
+++ b/libpyside/qsignal.cpp
@@ -464,6 +464,10 @@ PyObject* signal_new(const char* name, ...)
va_list listSignatures;
char* sig;
SignalData* self = PyObject_New(SignalData, &Signal_Type);
+ self->signalName = strdup(name);
+ self->signaturesSize = 0;
+ self->signatures = 0;
+ self->initialized = 0;
va_start(listSignatures, name);
sig = va_arg(listSignatures, char*);
diff --git a/tests/signals/signal_object_test.py b/tests/signals/signal_object_test.py
index 49ab5a4fd..d4a35dced 100644
--- a/tests/signals/signal_object_test.py
+++ b/tests/signals/signal_object_test.py
@@ -27,6 +27,9 @@ class MyObject(QObject):
class SignalObjectTest(unittest.TestCase):
+ def cb(self):
+ self._cb_called = True
+
def testsingleConnect(self):
o = MyObject()
o.sig1.connect(o.slot1)
@@ -50,5 +53,10 @@ class SignalObjectTest(unittest.TestCase):
o.sig4[QString].emit("PySide")
self.assertEqual(o._s, "PySide")
+ def testGeneretedSignal(self):
+ o = MyObject()
+ o.destroyed.connect(self.cb)
+ self.assertEqual(self._cb_called)
+
if __name__ == '__main__':
unittest.main()