diff options
author | Christian Tismer <tismer@stackless.com> | 2022-11-29 15:03:16 +0100 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2022-11-29 17:57:32 +0100 |
commit | 47a9622599822d5db2dd20f13f369c671c4c4fca (patch) | |
tree | 8ea86669a14f7d51dd5568c9c84c032e1a7fcb36 /sources/pyside6/libpyside/pyside.cpp | |
parent | 7377d2b8130ce7290775cd8a343e75c0561fc854 (diff) |
__feature__: Remove the no longer efficient reserved_bits structure
The reserved_bits structure is no longer an optimization
after moving to PyPy. Accessing any extra field involves
always a dict lookup.
- remove the reserved_bits field
- re-order SbkObjectTypePrivate
- replace access functions by currentSelectId()
Task-number: PSYIDE-2029
Change-Id: I08642eace9a6399649c039bcc358ce678bbd4fd3
Pick-to: 6.4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/pyside6/libpyside/pyside.cpp')
-rw-r--r-- | sources/pyside6/libpyside/pyside.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sources/pyside6/libpyside/pyside.cpp b/sources/pyside6/libpyside/pyside.cpp index 672f990bb..a832db28a 100644 --- a/sources/pyside6/libpyside/pyside.cpp +++ b/sources/pyside6/libpyside/pyside.cpp @@ -31,6 +31,7 @@ #include <sbkconverter.h> #include <sbkstring.h> #include <sbkstaticstrings.h> +#include <sbkfeature_base.h> #include <QtCore/QByteArray> #include <QtCore/QCoreApplication> @@ -232,7 +233,7 @@ static bool _setProperty(PyObject *qObj, PyObject *name, PyObject *value, bool * QByteArray propName(Shiboken::String::toCString(name)); auto type = Py_TYPE(qObj); - int flags = SbkObjectType_GetReserved(type); + int flags = currentSelectId(type); int prop_flag = flags & 0x02; auto found = false; QByteArray getterName{}, setterName{}; @@ -301,7 +302,7 @@ bool fillQtProperties(PyObject *qObj, const QMetaObject *metaObj, PyObject *kwds PyObject *key, *value; Py_ssize_t pos = 0; - int flags = SbkObjectType_GetReserved(Py_TYPE(qObj)); + int flags = currentSelectId(Py_TYPE(qObj)); int snake_flag = flags & 0x01; while (PyDict_Next(kwds, &pos, &key, &value)) { @@ -517,7 +518,7 @@ PyObject *getMetaDataFromQObject(QObject *cppSelf, PyObject *self, PyObject *nam PyErr_Fetch(&type, &value, &traceback); // This was omitted for a loong time. const char *cname = Shiboken::String::toCString(name); - int flags = SbkObjectType_GetReserved(Py_TYPE(self)); + int flags = currentSelectId(Py_TYPE(self)); int snake_flag = flags & 0x01; uint cnameLen = qstrlen(cname); if (std::strncmp("__", cname, 2)) { |