From d9d5b3d2ef770224b39987dbce7bb5c616fe3477 Mon Sep 17 00:00:00 2001 From: neonene <53406459+neonene@users.noreply.github.com> Date: Tue, 24 Sep 2024 04:14:15 +0900 Subject: [PATCH] gh-124344: Make `_PyObject_IS_GC()` use underscored `PyType_IS_GC()` (#124349) move up _PyType_IS_GC and use it --- Include/internal/pycore_object.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 0d885b4630d..80b588815bc 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -732,12 +732,15 @@ _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(PyObject *op) return (PyWeakReference **)((char *)op + offset); } +// Fast inlined version of PyType_IS_GC() +#define _PyType_IS_GC(t) _PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC) + // Fast inlined version of PyObject_IS_GC() static inline int _PyObject_IS_GC(PyObject *obj) { PyTypeObject *type = Py_TYPE(obj); - return (PyType_IS_GC(type) + return (_PyType_IS_GC(type) && (type->tp_is_gc == NULL || type->tp_is_gc(obj))); } @@ -755,9 +758,6 @@ _PyObject_HashFast(PyObject *op) return PyObject_Hash(op); } -// Fast inlined version of PyType_IS_GC() -#define _PyType_IS_GC(t) _PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC) - static inline size_t _PyType_PreHeaderSize(PyTypeObject *tp) {