diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2025-04-08 21:12:21 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2025-04-17 09:53:19 +0200 |
commit | a4790d33c4251b7f628ec7478767582f0b06a8c5 (patch) | |
tree | c73489afb62fc6b8bfe50dd7102259582f4704d5 /sources/pyside6/libpyside/dynamicslot.cpp | |
parent | b78ce722ba1f9faa76ddfc71164bef6e25fec560 (diff) |
PySide/Signal manager: Fix corruption when connecting to temporary object
Guard the deletion tracker listening on QObject::destroyed() using GIL.
Amends 33bd61d13d8d9e3794b6049891be62f3351313d9.
Fixes: PYSIDE-3072
Task-number: PYSIDE-2810
Task-number: PYSIDE-2221
Pick-to: 6.9 6.8
Change-Id: Ia085fa551903dd39c7a9624f6995d8720e9f7fb0
Reviewed-by: Ece Cinucen <ece.cinucen@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources/pyside6/libpyside/dynamicslot.cpp')
-rw-r--r-- | sources/pyside6/libpyside/dynamicslot.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sources/pyside6/libpyside/dynamicslot.cpp b/sources/pyside6/libpyside/dynamicslot.cpp index 3d3098c22..97af4e20f 100644 --- a/sources/pyside6/libpyside/dynamicslot.cpp +++ b/sources/pyside6/libpyside/dynamicslot.cpp @@ -349,6 +349,7 @@ public Q_SLOTS: void SenderSignalDeletionTracker::senderDestroyed(QObject *o) { + Shiboken::GilState gil; // PYSIDE-3072 for (auto it = connectionHash.begin(); it != connectionHash.end(); ) { if (it.key().sender == o) it = connectionHash.erase(it); |