Message 411998 - Python tracker (original) (raw)
Changes already done:
Macros converted to regular functions:
- PyObject_GET_WEAKREFS_LISTPTR(); add internal inline _PyObject_GET_WEAKREFS_LISTPTR()
- PyType_SUPPORTS_WEAKREFS(); add internal inline _PyType_SUPPORTS_WEAKREFS()
- PyObject_CheckBuffer(); no fast internal API
- PyObject_IS_GC(); no fast internal API
- PyDescr_IsData(); no fast internal API
Always implemented as a function, remove macro optimization in the non-limited API:
- PyIter_Check(); no fast internal API
- PyIndex_Check(); add internal inline _PyIndex_Check()
- PyExceptionClass_Name(); no fast internal API
Py_TRASHCAN_BEGIN() macro now calls _PyTrash_cond() function: no longer read directly tp_dealloc member
PyObject_NEW() macro becomes an alias to PyObject_New()
Remove PyHeapType_GET_MEMBERS() (move it to the internal C API)
PyType_HasFeature() is left unchanged since the change caused performance issue on macOS, whereas Python is not built with LTO.