diff options
author | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-03-28 10:21:20 +0200 |
---|---|---|
committer | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-04-19 10:59:53 +0000 |
commit | a4690116881477d09f34f6b20b2ee0f31c06163d (patch) | |
tree | 846591be24c933141bf4c38fe917ca54ca0f0456 /sources/pyside2/libpyside | |
parent | 3895f37a83ba763cb54ea0af02282d4d7d54273b (diff) |
Use XINCREF/XDECREF in PyObjectWrapper constructor
When emitting a None signal the PyObjectWrapper constructors
in the signalmanager were not working properly, but using the
safe macros to increase and decrease the references of the
object solves the issue.
Task-number: PYSIDE-17
Change-Id: I1871e5b8227d6ddc893afce2ab9b311b60649024
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside2/libpyside')
-rw-r--r-- | sources/pyside2/libpyside/signalmanager.cpp.in | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sources/pyside2/libpyside/signalmanager.cpp.in b/sources/pyside2/libpyside/signalmanager.cpp.in index 08c57c218..ca176c693 100644 --- a/sources/pyside2/libpyside/signalmanager.cpp.in +++ b/sources/pyside2/libpyside/signalmanager.cpp.in @@ -116,19 +116,19 @@ namespace PySide { PyObjectWrapper::PyObjectWrapper() :m_me(Py_None) { - Py_INCREF(m_me); + Py_XINCREF(m_me); } PyObjectWrapper::PyObjectWrapper(PyObject* me) : m_me(me) { - Py_INCREF(m_me); + Py_XINCREF(m_me); } PyObjectWrapper::PyObjectWrapper(const PyObjectWrapper &other) : m_me(other.m_me) { - Py_INCREF(m_me); + Py_XINCREF(m_me); } PyObjectWrapper::~PyObjectWrapper() @@ -139,13 +139,13 @@ PyObjectWrapper::~PyObjectWrapper() return; Shiboken::GilState gil; - Py_DECREF(m_me); + Py_XDECREF(m_me); } PyObjectWrapper& PyObjectWrapper::operator=(const PySide::PyObjectWrapper& other) { - Py_INCREF(other.m_me); - Py_DECREF(m_me); + Py_XINCREF(other.m_me); + Py_XDECREF(m_me); m_me = other.m_me; return *this; } |