diff options
author | Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> | 2023-05-24 16:57:55 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-05-25 09:17:08 +0000 |
commit | e2a3d76b9ac07805a0215b312c2cf63b78471685 (patch) | |
tree | e0782e4edfdbdcf03d84049073f3967cfd029a4d | |
parent | b4422ec435a280896e4bdb68666d7266040d2267 (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>
-rw-r--r-- | sources/pyside6/libpyside/globalreceiverv2.cpp | 5 |
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)}; } |