codekingpro/portable-devtools
114k
1#ifndef Py_INTERNAL_OBJECT_STATE_H2#define Py_INTERNAL_OBJECT_STATE_H3#ifdef __cplusplus4extern "C" {5#endif6 7#ifndef Py_BUILD_CORE8# error "this header requires Py_BUILD_CORE define"9#endif10 11#include "pycore_freelist_state.h" // _Py_freelists12#include "pycore_hashtable.h" // _Py_hashtable_t13 14 15/* Reference tracer state */16struct _reftracer_runtime_state {17 PyRefTracer tracer_func;18 void* tracer_data;19};20 21 22struct _py_object_runtime_state {23#ifdef Py_REF_DEBUG24 Py_ssize_t interpreter_leaks;25#endif26 int _not_used;27};28 29struct _py_object_state {30#if !defined(Py_GIL_DISABLED)31 struct _Py_freelists freelists;32#endif33#ifdef Py_REF_DEBUG34 Py_ssize_t reftotal;35#endif36#ifdef Py_TRACE_REFS37 // Hash table storing all objects. The key is the object pointer38 // (PyObject*) and the value is always the number 1 (as uintptr_t).39 // See _PyRefchain_IsTraced() and _PyRefchain_Trace() functions.40 _Py_hashtable_t *refchain;41#endif42 int _not_used;43};44 45 46#ifdef __cplusplus47}48#endif49#endif /* !Py_INTERNAL_OBJECT_STATE_H */50 