Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
move down check_base_by_token()
  • Loading branch information
neonene authored Sep 22, 2024
commit 7349f97bd47e0f5e54cd15ae6848169daa57a665
54 changes: 27 additions & 27 deletions Objects/typeobject.c
Original file line number Diff line number Diff line change
Expand Up @@ -5323,33 +5323,6 @@ get_base_by_token_recursive(PyTypeObject *type, void *token)
return NULL;
}

static int
check_base_by_token(PyTypeObject *type, void *token) {
if (token == NULL) {
PyErr_Format(PyExc_SystemError,
"PyType_GetBaseByToken called with token=NULL");
return -1;
}
if (!PyType_Check(type)) {
PyErr_Format(PyExc_TypeError,
"expected a type, got a '%T' object", type);
return -1;
}
if (!_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE)) {
return 0;
}
if (((PyHeapTypeObject*)type)->ht_token == token) {
return 1;
}
if (type->tp_mro != NULL) {
// This will not be inlined
return get_base_by_token_from_mro(type, token) ? 1 : 0;
}
else {
return get_base_by_token_recursive(type, token) ? 1 : 0;
}
}

int
PyType_GetBaseByToken(PyTypeObject *type, void *token, PyTypeObject **result)
{
Expand Down Expand Up @@ -5420,6 +5393,33 @@ get_base_by_token_from_mro(PyTypeObject *type, void *token)
return NULL;
}

static int
check_base_by_token(PyTypeObject *type, void *token) {
if (token == NULL) {
PyErr_Format(PyExc_SystemError,
"PyType_GetBaseByToken called with token=NULL");
return -1;
}
if (!PyType_Check(type)) {
PyErr_Format(PyExc_TypeError,
"expected a type, got a '%T' object", type);
return -1;
}
if (!_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE)) {
return 0;
}
if (((PyHeapTypeObject*)type)->ht_token == token) {
return 1;
}
if (type->tp_mro != NULL) {
// This will not be inlined
return get_base_by_token_from_mro(type, token) ? 1 : 0;
}
else {
return get_base_by_token_recursive(type, token) ? 1 : 0;
}
}


void *
PyObject_GetTypeData(PyObject *obj, PyTypeObject *cls)
Expand Down