Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2022-11-29 15:03:16 +0100
committerChristian Tismer <tismer@stackless.com>2022-11-29 17:57:32 +0100
commit47a9622599822d5db2dd20f13f369c671c4c4fca (patch)
tree8ea86669a14f7d51dd5568c9c84c032e1a7fcb36 /sources/pyside6/libpyside/pyside.cpp
parent7377d2b8130ce7290775cd8a343e75c0561fc854 (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.cpp7
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)) {