Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-11-19 09:50:48

0001 #ifndef Py_INTERNAL_OBJECT_STATE_H
0002 #define Py_INTERNAL_OBJECT_STATE_H
0003 #ifdef __cplusplus
0004 extern "C" {
0005 #endif
0006 
0007 #ifndef Py_BUILD_CORE
0008 #  error "this header requires Py_BUILD_CORE define"
0009 #endif
0010 
0011 #include "pycore_freelist.h"      // _PyObject_freelists
0012 #include "pycore_hashtable.h"     // _Py_hashtable_t
0013 
0014 struct _py_object_runtime_state {
0015 #ifdef Py_REF_DEBUG
0016     Py_ssize_t interpreter_leaks;
0017 #endif
0018     int _not_used;
0019 };
0020 
0021 struct _py_object_state {
0022 #if !defined(Py_GIL_DISABLED)
0023     struct _Py_object_freelists freelists;
0024 #endif
0025 #ifdef Py_REF_DEBUG
0026     Py_ssize_t reftotal;
0027 #endif
0028 #ifdef Py_TRACE_REFS
0029     // Hash table storing all objects. The key is the object pointer
0030     // (PyObject*) and the value is always the number 1 (as uintptr_t).
0031     // See _PyRefchain_IsTraced() and _PyRefchain_Trace() functions.
0032     _Py_hashtable_t *refchain;
0033 #endif
0034     int _not_used;
0035 };
0036 
0037 
0038 #ifdef __cplusplus
0039 }
0040 #endif
0041 #endif /* !Py_INTERNAL_OBJECT_STATE_H */