aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/pysideproperty.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2024-01-12 12:11:20 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2024-01-16 11:20:58 +0100
commit15fe017be6eb8b3aaf32d06eb21c61bd7eb3907e (patch)
tree7208cfd73e38ce3cc78e67eb88fa3d301719c79d /sources/pyside6/libpyside/pysideproperty.cpp
parenta136723223b06169321296cd6cbc4c4c694e5153 (diff)
Use PyType_GetSlot() instead of accessing PyTypeObject's slots in library code
Using PepType_GetSlot() as is requires adding ugly casts. To work around, add a new file with convenience helper functions in C++ linkage. This also allows for using templates for tp_alloc. Task-number: PYSIDE-560 Change-Id: Ia50a226f5b545861f885d600445b91b4e11713c5 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside6/libpyside/pysideproperty.cpp')
-rw-r--r--sources/pyside6/libpyside/pysideproperty.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/sources/pyside6/libpyside/pysideproperty.cpp b/sources/pyside6/libpyside/pysideproperty.cpp
index 2648ca43c..457415479 100644
--- a/sources/pyside6/libpyside/pysideproperty.cpp
+++ b/sources/pyside6/libpyside/pysideproperty.cpp
@@ -8,6 +8,7 @@
#include "pysidesignal_p.h"
#include <shiboken.h>
+#include <pep384ext.h>
#include <signature.h>
using namespace Shiboken;
@@ -179,7 +180,7 @@ void PySidePropertyPrivate::metaCall(PyObject *source, QMetaObject::Call call, v
static PyObject *qpropertyTpNew(PyTypeObject *subtype, PyObject * /* args */, PyObject * /* kwds */)
{
- auto *me = reinterpret_cast<PySideProperty *>(subtype->tp_alloc(subtype, 0));
+ auto *me = PepExt_TypeCallAlloc<PySideProperty>(subtype, 0);
me->d = new PySidePropertyPrivate;
return reinterpret_cast<PyObject *>(me);
}
@@ -258,7 +259,7 @@ static void qpropertyDeAlloc(PyObject *self)
Py_DECREF(Py_TYPE(self));
}
PyObject_GC_UnTrack(self);
- Py_TYPE(self)->tp_free(self);
+ PepExt_TypeCallFree(self);
}
// Create a copy of the property to prevent the @property.setter from modifying