mirror of
https://github.com/python/cpython.git
synced 2024-11-23 18:04:37 +08:00
6d93690954
This is essentially a cleanup, moving a handful of API declarations to the header files where they fit best, creating new ones when needed. We do the following: * add pycore_debug_offsets.h and move _Py_DebugOffsets, etc. there * inline struct _getargs_runtime_state and struct _gilstate_runtime_state in _PyRuntimeState * move struct _reftracer_runtime_state to the existing pycore_object_state.h * add pycore_audit.h and move to it _Py_AuditHookEntry , _PySys_Audit(), and _PySys_ClearAuditHooks * add audit.h and cpython/audit.h and move the existing audit-related API there *move the perfmap/trampoline API from cpython/sysmodule.h to cpython/ceval.h, and remove the now-empty cpython/sysmodule.h
50 lines
1.0 KiB
C
50 lines
1.0 KiB
C
#ifndef Py_INTERNAL_OBJECT_STATE_H
|
|
#define Py_INTERNAL_OBJECT_STATE_H
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef Py_BUILD_CORE
|
|
# error "this header requires Py_BUILD_CORE define"
|
|
#endif
|
|
|
|
#include "pycore_freelist_state.h" // _Py_freelists
|
|
#include "pycore_hashtable.h" // _Py_hashtable_t
|
|
|
|
|
|
/* Reference tracer state */
|
|
struct _reftracer_runtime_state {
|
|
PyRefTracer tracer_func;
|
|
void* tracer_data;
|
|
};
|
|
|
|
|
|
struct _py_object_runtime_state {
|
|
#ifdef Py_REF_DEBUG
|
|
Py_ssize_t interpreter_leaks;
|
|
#endif
|
|
int _not_used;
|
|
};
|
|
|
|
struct _py_object_state {
|
|
#if !defined(Py_GIL_DISABLED)
|
|
struct _Py_freelists freelists;
|
|
#endif
|
|
#ifdef Py_REF_DEBUG
|
|
Py_ssize_t reftotal;
|
|
#endif
|
|
#ifdef Py_TRACE_REFS
|
|
// Hash table storing all objects. The key is the object pointer
|
|
// (PyObject*) and the value is always the number 1 (as uintptr_t).
|
|
// See _PyRefchain_IsTraced() and _PyRefchain_Trace() functions.
|
|
_Py_hashtable_t *refchain;
|
|
#endif
|
|
int _not_used;
|
|
};
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* !Py_INTERNAL_OBJECT_STATE_H */
|