Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShyamnath Premnadh <Shyamnath.Premnadh@qt.io>2023-05-24 16:57:55 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-05-25 09:17:08 +0000
commitb81f2c3f9954bd92fa87944d1bcb72a536f035ab (patch)
tree0b61482719039283bcc6270ec0aa8f9efdc88253 /sources/pyside6/libpyside/globalreceiverv2.cpp
parent9f31bd569312384b0b67f20731b9211e3e1a003a (diff)
Leak fix: special consideration for functools.partial
- Amends 5b39b316e3c9e40cdc0784538b8d5f290e41d67b until proper fix is deviced. Task-number: PYSIDE-2299 Change-Id: Ia4ace136cb44d092691fdfd030de1889f1d3c671 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> (cherry picked from commit cc2054bc13ac91da50e3e796e107f12883176314) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'sources/pyside6/libpyside/globalreceiverv2.cpp')
-rw-r--r--sources/pyside6/libpyside/globalreceiverv2.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/sources/pyside6/libpyside/globalreceiverv2.cpp b/sources/pyside6/libpyside/globalreceiverv2.cpp
index c623d05fa..b8c542eb1 100644
--- a/sources/pyside6/libpyside/globalreceiverv2.cpp
+++ b/sources/pyside6/libpyside/globalreceiverv2.cpp
@@ -110,6 +110,11 @@ GlobalReceiverKey DynamicSlotDataV2::key(PyObject *callback)
// of them. If we used the callback itself instead of the code object, we would
// create a new GlobalReceiverV2 for each in SignalManager::globalReceiver()
// (signalmanager.cpp), leaking memory.
+
+ // TODO: Need proper fix. This is temporary
+ if (std::strcmp(Py_TYPE(callback)->tp_name, "functools.partial") == 0)
+ return {nullptr, callback};
+
return {nullptr, PyFunction_GetCode(callback)};
}