diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2025-02-03 11:47:17 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2025-02-11 15:40:44 +0100 |
| commit | c1b62556bffbdd2b5e5eecc790ec4732b93e05a1 (patch) | |
| tree | e11589a692706b59a70ebcf41e93df07f2db2573 /sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py | |
| parent | a7b1ef20fe791ac6bec92d1f05904ff14bc34e5b (diff) | |
Fix crash of signals with object-type parameter being passed by const-ref
Add a further indirection in callPythonMetaMethodHelper()
when only a pointer conversion is available for a const-ref parameter.
Task-number: PYSIDE-3004
Change-Id: I6ec7c5a9d4d30c8e4973ec79534d5f3eb3bf8204
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py')
| -rw-r--r-- | sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py b/sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py index 34b8f7f62..64147e15e 100644 --- a/sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py +++ b/sources/pyside6/tests/pysidetest/signalemissionfrompython_test.py @@ -27,6 +27,11 @@ class Receiver(QObject): def __init__(self, p=None): super().__init__(p) self.received_handle = -1 + self.received_name = '' + + @Slot(QObject) + def slotObjectByConstRef(self, o): + self.received_name = o.objectName() @Slot(Connection) def connectionSlot(self, c): @@ -37,7 +42,9 @@ class SignalEmissionFromPython(unittest.TestCase): def setUp(self): self.obj1 = TestObject(0) + self.obj1.setObjectName('obj1') self.obj2 = TestObject(0) + self.obj2.setObjectName('obj2') self.one_called = 0 self.two_called = 0 @@ -114,6 +121,12 @@ class SignalEmissionFromPython(unittest.TestCase): self.assertEqual(self.one_called, 1) self.assertEqual(self.two_called, 2) + def testSignalObjectByConstRef(self): + receiver = Receiver() + self.obj1.objectByConstRef.connect(receiver.slotObjectByConstRef) + self.obj1.emitObjectByConstRef() + self.assertEqual(receiver.received_name, 'obj1') + if __name__ == '__main__': unittest.main() |
