From: neonene <53406459+neonene@users.noreply.github.com> Date: Mon, 23 Sep 2024 19:14:15 +0000 (+0900) Subject: gh-124344: Make `_PyObject_IS_GC()` use underscored `PyType_IS_GC()` (#124349) X-Git-Tag: v3.14.0a1~397 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d9d5b3d2ef770224b39987dbce7bb5c616fe3477;p=thirdparty%2FPython%2Fcpython.git gh-124344: Make `_PyObject_IS_GC()` use underscored `PyType_IS_GC()` (#124349) move up _PyType_IS_GC and use it --- diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 0d885b4630d2..80b588815bc9 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) {