diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2025-07-31 08:55:29 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2025-07-31 15:26:25 +0200 |
| commit | d580aae898e10e7b4491f2692f320d7706899c1e (patch) | |
| tree | 630e156fb6624b1f684bedb563f349c30239c2f7 /sources/pyside-tools/deploy_lib/config.py | |
| parent | 160884d98fc8fee21b1c7725f5706d1fae47ccb4 (diff) | |
libpyside: Fix corruption connecting several signals to one non-QObject receiver
The deletion of the weak ref in ~TrackingMethodDynamicSlot() did not
reliably stop the notification from being triggered, causing
corruption later on since the address of the dynamic slot was used as
user data.
Use the Python receiver object as user data instead (which is only
used for map look up) to delete the connection to protect against
multiple invocation.
Remove the deletion of the weakref since it is removed in the
notification.
Remove class TrackingMethodDynamicSlot as it does not really have any
functionality any more.
The comment about releasing the weakref in case DynamicSlot outlives
Python is apparently not an issue since otherwise the deletion of the
function in ~MethodDynamicSlot() would have caused issues.
Amends 33bd61d13d8d9e3794b6049891be62f3351313d9.
Pick-to: 6.9 6.8
Fixes: PYSIDE-3148
Task-number: PYSIDE-2810
Change-Id: Idc07d0774afaf99df93185c90e975291a42ffeaf
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources/pyside-tools/deploy_lib/config.py')
0 files changed, 0 insertions, 0 deletions
