From a4690116881477d09f34f6b20b2ee0f31c06163d Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Wed, 28 Mar 2018 10:21:20 +0200 Subject: 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 Reviewed-by: Christian Tismer --- sources/pyside2/libpyside/signalmanager.cpp.in | 12 ++++++------ 1 file 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; } -- cgit v1.2.3