This change uses the fact that our workaround to temporarily remove
the Py_TPFLAGS_METHOD_DESCRIPTOR flag uses the "mro" function
of PyType_Type, which never will change.
Therefore, the static keyword makes sure that this function lookup
happens only once.
Change-Id: I44b74556da1fac2596c81339af30cb66218276e2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Gbp-Pq: Name 0003-Optimize-the-Python-3.8-refcount-fix-a-tiny-bit.patch
// PYSIDE-939: This is a temporary patch that circumvents the problem
// with Py_TPFLAGS_METHOD_DESCRIPTOR until this is finally solved.
PyObject *ob_PyType_Type = reinterpret_cast<PyObject *>(&PyType_Type);
- PyObject *mro = PyObject_GetAttr(ob_PyType_Type, Shiboken::PyName::mro());
+ static PyObject *mro = PyObject_GetAttr(ob_PyType_Type, Shiboken::PyName::mro());
auto hold = Py_TYPE(mro)->tp_flags;
Py_TYPE(mro)->tp_flags &= ~Py_TPFLAGS_METHOD_DESCRIPTOR;
auto *newType = reinterpret_cast<SbkObjectType *>(type_new(metatype, args, kwds));