Remove also pycore_function.h from pycore_typeobject.h.
#endif
#include "pycore_code.h" // _PyCode_CODE()
-#include "pycore_structs.h" // _PyStackRef
#include "pycore_stackref.h" // PyStackRef_AsPyObjectBorrow()
+#include "pycore_stats.h" // CALL_STAT_INC()
+#include "pycore_structs.h" // _PyStackRef
#include "pycore_typedefs.h" // _PyInterpreterFrame
# error "this header requires Py_BUILD_CORE define"
#endif
-#include <stdbool.h>
#include "pycore_emscripten_trampoline.h" // _PyCFunction_TrampolineCall()
-#include "pycore_object_deferred.h" // _PyObject_HasDeferredRefcount
-#include "pycore_pyatomic_ft_wrappers.h" // FT_ATOMIC_STORE_PTR_RELAXED
+#include "pycore_gc.h" // _PyObject_GC_TRACK()
+#include "pycore_pyatomic_ft_wrappers.h" // FT_ATOMIC_LOAD_PTR_ACQUIRE()
#include "pycore_pystate.h" // _PyInterpreterState_GET()
#include "pycore_runtime.h" // _PyRuntime
#include "pycore_typeobject.h" // _PyStaticType_GetState()
#include "pycore_uniqueid.h" // _PyObject_ThreadIncrefSlow()
+#include <stdbool.h> // bool
+
+
// This value is added to `ob_ref_shared` for objects that use deferred
// reference counting so that they are not immediately deallocated when the
// non-deferred reference count drops to zero.
# error "this header requires Py_BUILD_CORE define"
#endif
-#include "pycore_object_deferred.h"
-#include "pycore_object.h"
+#include "pycore_object.h" // Py_DECREF_MORTAL
+#include "pycore_object_deferred.h" // _PyObject_HasDeferredRefcount()
+
+#include <stdbool.h> // bool
-#include <stddef.h>
-#include <stdbool.h>
/*
This file introduces a new API for handling references on the stack, called
# error "this header requires Py_BUILD_CORE define"
#endif
-#include "pycore_function.h"
#include "pycore_interp_structs.h" // managed_static_type_state
#include "pycore_moduleobject.h" // PyModuleObject
-#include "pycore_stats.h"
/* state */
#include "pycore_fileutils.h" // _PyFile_Flush
#include "pycore_interp.h" // _PyInterpreterState.threads.count
#include "pycore_lock.h"
-#include "pycore_moduleobject.h" // _PyModule_GetState()
#include "pycore_modsupport.h" // _PyArg_NoKeywords()
+#include "pycore_moduleobject.h" // _PyModule_GetState()
+#include "pycore_object_deferred.h" // _PyObject_SetDeferredRefcount()
#include "pycore_pylifecycle.h"
#include "pycore_pystate.h" // _PyThreadState_SetCurrent()
#include "pycore_sysmodule.h" // _PySys_GetOptionalAttr()
#include "opcode.h"
#include "pycore_code.h" // _PyCodeConstructor
+#include "pycore_function.h" // _PyFunction_ClearCodeByVersion()
#include "pycore_hashtable.h" // _Py_hashtable_t
#include "pycore_index_pool.h" // _PyIndexPool_Fini()
#include "pycore_initconfig.h" // _PyStatus_OK()
#include "pycore_descrobject.h" // _PyMethodWrapper_Type
#include "pycore_modsupport.h" // _PyArg_UnpackStack()
#include "pycore_object.h" // _PyObject_GC_UNTRACK()
+#include "pycore_object_deferred.h" // _PyObject_SetDeferredRefcount()
#include "pycore_pystate.h" // _PyThreadState_GET()
#include "pycore_tuple.h" // _PyTuple_ITEMS()
-
/* Function object implementation */
#include "Python.h"
-#include "pycore_dict.h" // _Py_INCREF_DICT()
-#include "pycore_long.h" // _PyLong_GetOne()
-#include "pycore_modsupport.h" // _PyArg_NoKeywords()
-#include "pycore_object.h" // _PyObject_GC_UNTRACK()
-#include "pycore_pyerrors.h" // _PyErr_Occurred()
+#include "pycore_dict.h" // _Py_INCREF_DICT()
+#include "pycore_function.h" // _PyFunction_Vectorcall
+#include "pycore_long.h" // _PyLong_GetOne()
+#include "pycore_modsupport.h" // _PyArg_NoKeywords()
+#include "pycore_object.h" // _PyObject_GC_UNTRACK()
+#include "pycore_pyerrors.h" // _PyErr_Occurred()
#include "pycore_stats.h"
-
/* Module object implementation */
#include "Python.h"
/* Python's malloc wrappers (see pymem.h) */
#include "Python.h"
-#include "pycore_code.h" // stats
#include "pycore_interp.h" // _PyInterpreterState_HasFeature
#include "pycore_object.h" // _PyDebugAllocatorStats() definition
#include "pycore_obmalloc.h"
+#include "pycore_obmalloc_init.h"
#include "pycore_pyerrors.h" // _Py_FatalErrorFormat()
#include "pycore_pymem.h"
#include "pycore_pystate.h" // _PyInterpreterState_GET
-#include "pycore_obmalloc_init.h"
+#include "pycore_stats.h" // OBJECT_STAT_INC_COND()
#include <stdlib.h> // malloc()
#include <stdbool.h>