diff options
-rw-r--r-- | libpyside/qsignal.cpp | 2 | ||||
-rw-r--r-- | tests/signals/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/signals/leaking_signal_test.py | 16 |
3 files changed, 18 insertions, 1 deletions
diff --git a/libpyside/qsignal.cpp b/libpyside/qsignal.cpp index f690261..f3ecc4b 100644 --- a/libpyside/qsignal.cpp +++ b/libpyside/qsignal.cpp @@ -83,7 +83,7 @@ PyTypeObject PySideSignalType = { /*tp_name*/ "PySide.QtCore."SIGNAL_CLASS_NAME, /*tp_basicsize*/ sizeof(SignalData), /*tp_itemsize*/ 0, - /*tp_dealloc*/ &Shiboken::deallocWrapper, + /*tp_dealloc*/ 0, /*tp_print*/ 0, /*tp_getattr*/ 0, /*tp_setattr*/ 0, diff --git a/tests/signals/CMakeLists.txt b/tests/signals/CMakeLists.txt index 9aafe75..cad84f1 100644 --- a/tests/signals/CMakeLists.txt +++ b/tests/signals/CMakeLists.txt @@ -7,6 +7,7 @@ PYSIDE_TEST(invalid_callback_test.py) PYSIDE_TEST(lambda_gui_test.py) PYSIDE_TEST(lambda_test.py) PYSIDE_TEST(list_signal_test.py) +PYSIDE_TEST(leaking_signal_test.py) PYSIDE_TEST(multiple_connections_gui_test.py) PYSIDE_TEST(multiple_connections_test.py) PYSIDE_TEST(pysignal_test.py) diff --git a/tests/signals/leaking_signal_test.py b/tests/signals/leaking_signal_test.py new file mode 100644 index 0000000..984982d --- /dev/null +++ b/tests/signals/leaking_signal_test.py @@ -0,0 +1,16 @@ + +import unittest +from PySide import QtCore +import weakref + +class LeakingSignal(unittest.TestCase): + + def testLeakingSignal(self): + # Was segfaulting when the signal was garbage collected. + class Emitter(QtCore.QObject): + my_signal = QtCore.Signal(object) + + emitter = Emitter() + +if __name__ == '__main__': + unittest.main() |