diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-05-17 15:28:11 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-05-17 19:54:42 -0300 |
commit | 77d9398bde09ed06ff0be94168c7c8739ec2483d (patch) | |
tree | 452843659e5c3a066b22ed274ddd2d9ca84434f5 | |
parent | 005aeaf8290ff9308bb9ad0edfec1949e8125772 (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.cpp | 4 | ||||
-rw-r--r-- | tests/signals/signal_object_test.py | 8 |
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() |