diff options
author | Christian Tismer <tismer@stackless.com> | 2018-07-19 21:00:30 +0200 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2018-07-23 16:32:01 +0000 |
commit | e24392c76e5cfdd2d6d51bd853b106db2bc4cb80 (patch) | |
tree | 985048135d3a6a81da2f5a72b667ff59ed4d0b44 /sources/pyside2/libpyside | |
parent | 5d21980ba4bd605ccbf4278e75177ae2c144bdd8 (diff) |
Pep 384 Final Cut: Remove PepType
While trying to document the Limited API Project,
it suddenly struck me:
We can make the patch much much simpler and implement it
without the necessity to have an extra PepType!
Now I am happy to continue the documentation, because
it is now no more improvable.
This version will last as long as the layout of
PyTypeObject does not change substantially. When that
happens, then we need to rewrite stuff with the according
PyType_GetSlot() access functions.
These access functions will until then be complete enough
so that we can live without the tricks like inventing a reduced
PyTypeObject as was done in the current implementation.
Task-number: PYSIDE-560
Change-Id: I49849cc377baa6794a5b53292691e21d6e2853ab
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'sources/pyside2/libpyside')
-rw-r--r-- | sources/pyside2/libpyside/dynamicqmetaobject.cpp | 8 | ||||
-rw-r--r-- | sources/pyside2/libpyside/pyside.cpp | 4 | ||||
-rw-r--r-- | sources/pyside2/libpyside/pysideclassinfo.cpp | 4 | ||||
-rw-r--r-- | sources/pyside2/libpyside/pysideproperty.cpp | 8 | ||||
-rw-r--r-- | sources/pyside2/libpyside/pysideqflags.cpp | 2 | ||||
-rw-r--r-- | sources/pyside2/libpyside/pysidesignal.cpp | 14 | ||||
-rw-r--r-- | sources/pyside2/libpyside/pysideslot.cpp | 2 |
7 files changed, 21 insertions, 21 deletions
diff --git a/sources/pyside2/libpyside/dynamicqmetaobject.cpp b/sources/pyside2/libpyside/dynamicqmetaobject.cpp index 5b426ae8e..af2f416c6 100644 --- a/sources/pyside2/libpyside/dynamicqmetaobject.cpp +++ b/sources/pyside2/libpyside/dynamicqmetaobject.cpp @@ -388,7 +388,7 @@ DynamicQMetaObject::DynamicQMetaObject(PyTypeObject* type, const QMetaObject* ba d.relatedMetaObjects = NULL; d.static_metacall = NULL; - m_d->m_className = QByteArray(PepType(type)->tp_name).split('.').last(); + m_d->m_className = QByteArray(type->tp_name).split('.').last(); m_d->m_methodOffset = base->methodCount() - 1; m_d->m_propertyOffset = base->propertyCount() - 1; parsePythonType(type); @@ -591,7 +591,7 @@ void DynamicQMetaObject::parsePythonType(PyTypeObject *type) // This enforces registering of all signals and slots at type parsing time, and not later at // signal connection time, thus making sure no method indices change which would break // existing connections. - const PyObject *mro = PepType(type)->tp_mro; + const PyObject *mro = type->tp_mro; const Py_ssize_t basesCount = PyTuple_GET_SIZE(mro); PyTypeObject *qObjectType = Shiboken::Conversions::getPythonTypeObject("QObject*"); QVector<PyTypeObject *> basesToCheck; @@ -611,7 +611,7 @@ void DynamicQMetaObject::parsePythonType(PyTypeObject *type) // PYSIDE-315: Handle all signals first, in all involved types. for (int baseIndex = 0, baseEnd = basesToCheck.size(); baseIndex < baseEnd; ++baseIndex) { PyTypeObject *baseType = basesToCheck[baseIndex]; - PyObject *attrs = PepType(baseType)->tp_dict; + PyObject *attrs = baseType->tp_dict; PyObject *key = 0; PyObject *value = 0; Py_ssize_t pos = 0; @@ -643,7 +643,7 @@ void DynamicQMetaObject::parsePythonType(PyTypeObject *type) // We check for this using "is_sorted()". Sorting no longer happens at all. for (int baseIndex = 0, baseEnd = basesToCheck.size(); baseIndex < baseEnd; ++baseIndex) { PyTypeObject *baseType = basesToCheck[baseIndex]; - PyObject *attrs = PepType(baseType)->tp_dict; + PyObject *attrs = baseType->tp_dict; PyObject *key = 0; PyObject *value = 0; Py_ssize_t pos = 0; diff --git a/sources/pyside2/libpyside/pyside.cpp b/sources/pyside2/libpyside/pyside.cpp index cb6f0721f..d6f4e5a37 100644 --- a/sources/pyside2/libpyside/pyside.cpp +++ b/sources/pyside2/libpyside/pyside.cpp @@ -309,10 +309,10 @@ PyObject* getMetaDataFromQObject(QObject* cppSelf, PyObject* self, PyObject* nam bool inherits(PyTypeObject* objType, const char* class_name) { - if (strcmp(PepType(objType)->tp_name, class_name) == 0) + if (strcmp(objType->tp_name, class_name) == 0) return true; - PyTypeObject* base = PepType(objType)->tp_base; + PyTypeObject* base = objType->tp_base; if (base == 0) return false; diff --git a/sources/pyside2/libpyside/pysideclassinfo.cpp b/sources/pyside2/libpyside/pysideclassinfo.cpp index 5e0ffed39..24a0c642b 100644 --- a/sources/pyside2/libpyside/pysideclassinfo.cpp +++ b/sources/pyside2/libpyside/pysideclassinfo.cpp @@ -127,7 +127,7 @@ PyObject *classCall(PyObject *self, PyObject *args, PyObject * /* kw */) static PyObject *classInfoTpNew(PyTypeObject *subtype, PyObject * /* args */, PyObject * /* kwds */) { - PySideClassInfo* me = reinterpret_cast<PySideClassInfo*>(PepType(subtype)->tp_alloc(subtype, 0)); + PySideClassInfo* me = reinterpret_cast<PySideClassInfo*>(subtype->tp_alloc(subtype, 0)); me->d = new PySideClassInfoPrivate; me->d->m_alreadyWrapped = false; @@ -170,7 +170,7 @@ void classInfoFree(void *self) PySideClassInfo* data = reinterpret_cast<PySideClassInfo*>(self); delete data->d; - PepType(PepType(Py_TYPE(pySelf))->tp_base)->tp_free(self); + Py_TYPE(pySelf)->tp_base->tp_free(self); } diff --git a/sources/pyside2/libpyside/pysideproperty.cpp b/sources/pyside2/libpyside/pysideproperty.cpp index ccec8a2cb..279e09ec1 100644 --- a/sources/pyside2/libpyside/pysideproperty.cpp +++ b/sources/pyside2/libpyside/pysideproperty.cpp @@ -152,7 +152,7 @@ static void qpropertyMetaCall(PySideProperty* pp, PyObject* self, QMetaObject::C static PyObject *qpropertyTpNew(PyTypeObject *subtype, PyObject * /* args */, PyObject * /* kwds */) { - PySideProperty* me = reinterpret_cast<PySideProperty*>(PepType(subtype)->tp_alloc(subtype, 0)); + PySideProperty* me = reinterpret_cast<PySideProperty*>(subtype->tp_alloc(subtype, 0)); me->d = new PySidePropertyPrivate; memset(me->d, 0, sizeof(PySidePropertyPrivate)); PySidePropertyPrivate* pData = me->d; @@ -210,7 +210,7 @@ int qpropertyTpInit(PyObject* self, PyObject* args, PyObject* kwds) void qpropertyDeAlloc(PyObject* self) { qpropertyClear(self); - PepType(Py_TYPE(self))->tp_free(self); + Py_TYPE(self)->tp_free(self); } PyObject *qPropertyCall(PyObject *self, PyObject *args, PyObject * /* kw */) @@ -307,9 +307,9 @@ namespace { static PyObject* getFromType(PyTypeObject* type, PyObject* name) { PyObject* attr = 0; - attr = PyDict_GetItem(PepType(type)->tp_dict, name); + attr = PyDict_GetItem(type->tp_dict, name); if (!attr) { - PyObject* bases = PepType(type)->tp_bases; + PyObject* bases = type->tp_bases; int size = PyTuple_GET_SIZE(bases); for(int i=0; i < size; i++) { PyObject* base = PyTuple_GET_ITEM(bases, i); diff --git a/sources/pyside2/libpyside/pysideqflags.cpp b/sources/pyside2/libpyside/pysideqflags.cpp index f4263403b..7a8fa2a05 100644 --- a/sources/pyside2/libpyside/pysideqflags.cpp +++ b/sources/pyside2/libpyside/pysideqflags.cpp @@ -54,7 +54,7 @@ extern "C" { */ struct PySideQFlagsType { - PepTypeObject type; + PyTypeObject type; }; #define PYSIDE_QFLAGS(X) reinterpret_cast<PySideQFlagsObject*>(X) diff --git a/sources/pyside2/libpyside/pysidesignal.cpp b/sources/pyside2/libpyside/pysidesignal.cpp index 483e9e050..f3ba84d3b 100644 --- a/sources/pyside2/libpyside/pysidesignal.cpp +++ b/sources/pyside2/libpyside/pysidesignal.cpp @@ -253,7 +253,7 @@ void signalFree(void* self) Py_XDECREF(data->homonymousMethod); data->homonymousMethod = 0; - PepType(PepType(Py_TYPE(pySelf))->tp_base)->tp_free(self); + Py_TYPE(pySelf)->tp_base->tp_free(self); } PyObject* signalGetItem(PyObject* self, PyObject* key) @@ -298,7 +298,7 @@ void signalInstanceFree(void* self) } delete dataPvt; data->d = 0; - PepType(PepType(Py_TYPE(pySelf))->tp_base)->tp_free(self); + Py_TYPE(pySelf)->tp_base->tp_free(self); } PyObject* signalInstanceConnect(PyObject* self, PyObject* args, PyObject* kwds) @@ -552,7 +552,7 @@ PyObject* signalCall(PyObject* self, PyObject* args, PyObject* kw) return 0; } - descrgetfunc getDescriptor = PepType(Py_TYPE(signal->homonymousMethod))->tp_descr_get; + descrgetfunc getDescriptor = Py_TYPE(signal->homonymousMethod)->tp_descr_get; // Check if there exists a method with the same name as the signal, which is also a static // method in C++ land. @@ -563,7 +563,7 @@ PyObject* signalCall(PyObject* self, PyObject* args, PyObject* kw) } // Assumes homonymousMethod is not a static method. - ternaryfunc callFunc = PepType(Py_TYPE(signal->homonymousMethod))->tp_call; + ternaryfunc callFunc = Py_TYPE(signal->homonymousMethod)->tp_call; return callFunc(homonymousMethod, args, kw); } @@ -575,7 +575,7 @@ PyObject* signalInstanceCall(PyObject* self, PyObject* args, PyObject* kw) return 0; } - descrgetfunc getDescriptor = PepType(Py_TYPE(PySideSignal->d->homonymousMethod))->tp_descr_get; + descrgetfunc getDescriptor = Py_TYPE(PySideSignal->d->homonymousMethod)->tp_descr_get; Shiboken::AutoDecRef homonymousMethod(getDescriptor(PySideSignal->d->homonymousMethod, PySideSignal->d->source, 0)); return PyCFunction_Call(homonymousMethod, args, kw); } @@ -625,7 +625,7 @@ void updateSourceObject(PyObject* source) PyObject* value; PyObject* key; - while (PyDict_Next(PepType(objType)->tp_dict, &pos, &key, &value)) { + while (PyDict_Next(objType->tp_dict, &pos, &key, &value)) { if (PyObject_TypeCheck(value, PySideSignalTypeF())) { Shiboken::AutoDecRef signalInstance(reinterpret_cast<PyObject *>(PyObject_New(PySideSignalInstance, PySideSignalInstanceTypeF()))); instanceInitialize(signalInstance.cast<PySideSignalInstance*>(), key, reinterpret_cast<PySideSignal*>(value), source, 0); @@ -855,7 +855,7 @@ static typename T::value_type join(T t, const char* sep) static void _addSignalToWrapper(SbkObjectType* wrapperType, const char* signalName, PySideSignal* signal) { - PyObject* typeDict = PepType(wrapperType)->tp_dict; + PyObject* typeDict = reinterpret_cast<PyTypeObject *>(wrapperType)->tp_dict; PyObject* homonymousMethod; if ((homonymousMethod = PyDict_GetItemString(typeDict, signalName))) { Py_INCREF(homonymousMethod); diff --git a/sources/pyside2/libpyside/pysideslot.cpp b/sources/pyside2/libpyside/pysideslot.cpp index db1a7d9ed..fddff54fa 100644 --- a/sources/pyside2/libpyside/pysideslot.cpp +++ b/sources/pyside2/libpyside/pysideslot.cpp @@ -113,7 +113,7 @@ int slotTpInit(PyObject *self, PyObject *args, PyObject *kw) data->args = typeName; } } else { - PyErr_Format(PyExc_TypeError, "Unknown signal argument type: %s", PepType((Py_TYPE(argType)))->tp_name); + PyErr_Format(PyExc_TypeError, "Unknown signal argument type: %s", Py_TYPE(argType)->tp_name); return -1; } } |