aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-23 18:13:46 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-10-26 09:24:01 +0000
commit4123b31ad443692a718c4aefafae640e398c944d (patch)
tree2b904918be380e9cbc4ef0b3a1a30e430a0f3da9
parentd1175b5debbe3669e369072b850e37196dc7ce88 (diff)
pysideproperty.cpp: Fix warning about offsetof
Return the functions directly, fixing (g++ 9.3.0): sources/pyside2/libpyside/pysideproperty.cpp:331:42: warning: offsetof within non-standard-layout type ‘PySidePropertyPrivate’ is conditionally-supported [-Winvalid-offsetof] Change-Id: I98f57d05c4c4163e06431c579537b4db01c656e6 Reviewed-by: Christian Tismer <tismer@stackless.com> (cherry picked from commit 23c1001c79af9cbb3cd2d8a301e2e315b1f833b2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--sources/pyside2/libpyside/pysideproperty.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/sources/pyside2/libpyside/pysideproperty.cpp b/sources/pyside2/libpyside/pysideproperty.cpp
index 443098f2e..97729d28c 100644
--- a/sources/pyside2/libpyside/pysideproperty.cpp
+++ b/sources/pyside2/libpyside/pysideproperty.cpp
@@ -324,35 +324,37 @@ static PyObject *qPropertyCall(PyObject *self, PyObject *args, PyObject * /* kw
}
// PYSIDE-1019: Provide the same getters as Pythons `PyProperty`.
-static PyObject *_property_func(PyObject *self, ssize_t offset)
+
+static PyObject *qProperty_fget(PyObject *self, void *)
{
- auto data = reinterpret_cast<PySideProperty *>(self);
- PySidePropertyPrivate *pData = data->d;
- auto funcptr = reinterpret_cast<char *>(pData) + offset;
- auto func = *reinterpret_cast<PyObject **>(funcptr);
+ auto func = reinterpret_cast<PySideProperty *>(self)->d->fget;
auto ret = func != nullptr ? func : Py_None;
Py_INCREF(ret);
return ret;
}
-static PyObject *qProperty_fget(PyObject *self, void *)
-{
- return _property_func(self, offsetof(PySidePropertyPrivate, fget));
-}
-
static PyObject *qProperty_fset(PyObject *self, void *)
{
- return _property_func(self, offsetof(PySidePropertyPrivate, fset));
+ auto func = reinterpret_cast<PySideProperty *>(self)->d->fset;
+ auto ret = func != nullptr ? func : Py_None;
+ Py_INCREF(ret);
+ return ret;
}
static PyObject *qProperty_freset(PyObject *self, void *)
{
- return _property_func(self, offsetof(PySidePropertyPrivate, freset));
+ auto func = reinterpret_cast<PySideProperty *>(self)->d->freset;
+ auto ret = func != nullptr ? func : Py_None;
+ Py_INCREF(ret);
+ return ret;
}
static PyObject *qProperty_fdel(PyObject *self, void *)
{
- return _property_func(self, offsetof(PySidePropertyPrivate, fdel));
+ auto func = reinterpret_cast<PySideProperty *>(self)->d->fdel;
+ auto ret = func != nullptr ? func : Py_None;
+ Py_INCREF(ret);
+ return ret;
}
static PyObject *qPropertyDocGet(PyObject *self, void *)