aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/libpyside/pysidesignal.cpp
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2019-11-26 11:54:37 +0100
committerChristian Tismer <tismer@stackless.com>2019-12-05 08:28:22 +0100
commit45a3efb4e179e83f1bea69cccb190945fbc8c1f8 (patch)
tree0cefe123ffdc876b933d2c76185098d2dd9c7eae /sources/pyside2/libpyside/pysidesignal.cpp
parent6f79beb23aace35170d155517b9d901567a7f675 (diff)
Fix Python 3.8 problems
This patch fixes some refcounting problems with Python 3.8 . One incompatible change was announced in the what's new document, but actually there were two more problems which were not explicitly mentioned but took much time to sort out. The patch is compatible with the limited API changes (tested with debug build and API error disabled). It is also independent of the Python version which is full Limited API support. For more info, see the documentation mentioned below. The flag error is circumvented now! We either find a better solution or leave it as it is. For now this is ok. Fixes: PYSIDE-939 Change-Id: Iff4a9816857a6ebe86efd4b654d8921e4e464939 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside2/libpyside/pysidesignal.cpp')
-rw-r--r--sources/pyside2/libpyside/pysidesignal.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/sources/pyside2/libpyside/pysidesignal.cpp b/sources/pyside2/libpyside/pysidesignal.cpp
index ed1dcb729..ee435ab37 100644
--- a/sources/pyside2/libpyside/pysidesignal.cpp
+++ b/sources/pyside2/libpyside/pysidesignal.cpp
@@ -110,7 +110,7 @@ static PyType_Slot PySideMetaSignalType_slots[] = {
{Py_tp_methods, (void *)MetaSignal_methods},
{Py_tp_base, (void *)&PyType_Type},
{Py_tp_free, (void *)PyObject_GC_Del},
- {Py_tp_dealloc, (void *)object_dealloc},
+ {Py_tp_dealloc, (void *)Sbk_object_dealloc},
{0, 0}
};
static PyType_Spec PySideMetaSignalType_spec = {
@@ -142,7 +142,7 @@ static PyType_Slot PySideSignalType_slots[] = {
{Py_tp_init, (void *)signalTpInit},
{Py_tp_new, (void *)PyType_GenericNew},
{Py_tp_free, (void *)signalFree},
- {Py_tp_dealloc, (void *)object_dealloc},
+ {Py_tp_dealloc, (void *)Sbk_object_dealloc},
{0, 0}
};
static PyType_Spec PySideSignalType_spec = {
@@ -181,7 +181,7 @@ static PyType_Slot PySideSignalInstanceType_slots[] = {
{Py_tp_methods, (void *)SignalInstance_methods},
{Py_tp_new, (void *)PyType_GenericNew},
{Py_tp_free, (void *)signalInstanceFree},
- {Py_tp_dealloc, (void *)object_dealloc},
+ {Py_tp_dealloc, (void *)Sbk_object_dealloc},
{0, 0}
};
static PyType_Spec PySideSignalInstanceType_spec = {
@@ -619,7 +619,7 @@ void init(PyObject *module)
{
if (SbkSpecial_Type_Ready(module, PySideMetaSignalTypeF(), MetaSignal_SignatureStrings) < 0)
return;
- Py_INCREF(PySideSignalTypeF());
+ Py_INCREF(PySideMetaSignalTypeF());
PyModule_AddObject(module, "MetaSignal", reinterpret_cast<PyObject *>(PySideMetaSignalTypeF()));
if (SbkSpecial_Type_Ready(module, PySideSignalTypeF(), Signal_SignatureStrings) < 0)