aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/libpyside/feature_select.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-09-30 07:55:46 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-09-30 07:55:46 +0200
commit7af97fa4136d66bbad6c7907de6e7bd823de2e43 (patch)
tree94123be1810104d257aa50fe4b387dd8a1bf2a6c /sources/pyside2/libpyside/feature_select.cpp
parent3bbcb7b0e6e0342569aa155d695bca46a7459eb0 (diff)
parentff792fd2e6842b990aff61a4e953dab5efbd89ae (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Diffstat (limited to 'sources/pyside2/libpyside/feature_select.cpp')
-rw-r--r--sources/pyside2/libpyside/feature_select.cpp32
1 files changed, 3 insertions, 29 deletions
diff --git a/sources/pyside2/libpyside/feature_select.cpp b/sources/pyside2/libpyside/feature_select.cpp
index a1ba76251..b26810add 100644
--- a/sources/pyside2/libpyside/feature_select.cpp
+++ b/sources/pyside2/libpyside/feature_select.cpp
@@ -546,40 +546,17 @@ static bool feature_01_addLowerNames(PyTypeObject *type, PyObject *prev_dict, in
// Feature 0x02: Use true properties instead of getters and setters
//
-static PyObject *createProperty(PyObject *getter, PyObject *setter, PyObject *doc)
+static PyObject *createProperty(PyObject *getter, PyObject *setter)
{
assert(getter != nullptr);
if (setter == nullptr)
setter = Py_None;
- PyObject *deleter = Py_None;
PyObject *prop = PyObject_CallObject(reinterpret_cast<PyObject *>(&PyProperty_Type), nullptr);
- AutoDecRef args(Py_BuildValue("OOOO", getter, setter, deleter, doc));
+ AutoDecRef args(Py_BuildValue("OO", getter, setter));
PyProperty_Type.tp_init(prop, args, nullptr);
return prop;
}
-static PyObject *calcPropDocString(PyTypeObject *type, PyObject *getterName, PyObject *setterName)
-{
- // To calculate the docstring, we need the __doc__ attribute of the original
- // getter and setter. We temporatily switch back to no features. This
- // might change when we have full signature support for features.
- auto hold = type->tp_dict;
- moveToFeatureSet(type, fast_id_array[0]);
- auto dict = type->tp_dict;
- auto getter = PyDict_GetItem(dict, getterName);
- auto setter = setterName ? PyDict_GetItem(dict, setterName) : nullptr;
- PyObject *buf = PyObject_GetAttr(getter, PyMagicName::doc());
- type->tp_dict = hold;
-
- if (setter == nullptr)
- return buf;
- AutoDecRef nl(Py_BuildValue("s", "\n"));
- AutoDecRef wdoc(PyObject_GetAttr(setter, PyMagicName::doc()));
- String::concat(&buf, nl);
- String::concat(&buf, wdoc);
- return buf;
-}
-
static QStringList parseFields(const char *propstr)
{
/*
@@ -639,10 +616,7 @@ static bool feature_02_true_property(PyTypeObject *type, PyObject *prev_dict, in
if (setter != nullptr && Py_TYPE(setter) != PepMethodDescr_TypePtr)
continue;
- PyObject *doc_read = make_snake_case(fields[1], false);
- PyObject *doc_write(haveWrite ? make_snake_case(fields[2], false) : nullptr);
- AutoDecRef doc(calcPropDocString(type, doc_read, doc_write));
- AutoDecRef PyProperty(createProperty(getter, setter, doc));
+ AutoDecRef PyProperty(createProperty(getter, setter));
if (PyProperty.isNull())
return false;
if (PyDict_SetItem(prop_dict, name, PyProperty) < 0)