@@ -33,14 +33,14 @@ extern "C" {
3333# define _PyObjectStackChunk_MAXFREELIST 0
3434#endif
3535
36- struct _Py_list_state {
36+ struct _Py_list_freelist {
3737#ifdef WITH_FREELISTS
3838 PyListObject * free_list [PyList_MAXFREELIST ];
3939 int numfree ;
4040#endif
4141};
4242
43- struct _Py_tuple_state {
43+ struct _Py_tuple_freelist {
4444#if WITH_FREELISTS
4545 /* There is one freelist for each size from 1 to PyTuple_MAXSAVESIZE.
4646 The empty tuple is handled separately.
@@ -57,7 +57,7 @@ struct _Py_tuple_state {
5757#endif
5858};
5959
60- struct _Py_float_state {
60+ struct _Py_float_freelist {
6161#ifdef WITH_FREELISTS
6262 /* Special free list
6363 free_list is a singly-linked list of available PyFloatObjects,
@@ -77,23 +77,23 @@ struct _Py_dict_freelist {
7777#endif
7878};
7979
80- struct _Py_slice_state {
80+ struct _Py_slice_freelist {
8181#ifdef WITH_FREELISTS
8282 /* Using a cache is very effective since typically only a single slice is
8383 created and then deleted again. */
8484 PySliceObject * slice_cache ;
8585#endif
8686};
8787
88- struct _Py_context_state {
88+ struct _Py_context_freelist {
8989#ifdef WITH_FREELISTS
9090 // List of free PyContext objects
9191 PyContext * freelist ;
9292 int numfree ;
9393#endif
9494};
9595
96- struct _Py_async_gen_state {
96+ struct _Py_async_gen_freelist {
9797#ifdef WITH_FREELISTS
9898 /* Freelists boost performance 6-10%; they also reduce memory
9999 fragmentation, as _PyAsyncGenWrappedValue and PyAsyncGenASend
@@ -109,31 +109,31 @@ struct _Py_async_gen_state {
109109
110110struct _PyObjectStackChunk ;
111111
112- struct _Py_object_stack_state {
112+ struct _Py_object_stack_freelist {
113113 struct _PyObjectStackChunk * free_list ;
114114 Py_ssize_t numfree ;
115115};
116116
117- typedef struct _Py_freelist_state {
118- struct _Py_float_state floats ;
119- struct _Py_tuple_state tuples ;
120- struct _Py_list_state lists ;
117+ struct _Py_object_freelists {
118+ struct _Py_float_freelist floats ;
119+ struct _Py_tuple_freelist tuples ;
120+ struct _Py_list_freelist lists ;
121121 struct _Py_dict_freelist dicts ;
122- struct _Py_slice_state slices ;
123- struct _Py_context_state contexts ;
124- struct _Py_async_gen_state async_gens ;
125- struct _Py_object_stack_state object_stacks ;
126- } _PyFreeListState ;
127-
128- extern void _PyObject_ClearFreeLists (_PyFreeListState * state , int is_finalization );
129- extern void _PyTuple_ClearFreeList (_PyFreeListState * state , int is_finalization );
130- extern void _PyFloat_ClearFreeList (_PyFreeListState * state , int is_finalization );
131- extern void _PyList_ClearFreeList (_PyFreeListState * state , int is_finalization );
132- extern void _PySlice_ClearFreeList (_PyFreeListState * state , int is_finalization );
133- extern void _PyDict_ClearFreeList (_PyFreeListState * state , int is_finalization );
134- extern void _PyAsyncGen_ClearFreeLists (_PyFreeListState * state , int is_finalization );
135- extern void _PyContext_ClearFreeList (_PyFreeListState * state , int is_finalization );
136- extern void _PyObjectStackChunk_ClearFreeList (_PyFreeListState * state , int is_finalization );
122+ struct _Py_slice_freelist slices ;
123+ struct _Py_context_freelist contexts ;
124+ struct _Py_async_gen_freelist async_gens ;
125+ struct _Py_object_stack_freelist object_stacks ;
126+ };
127+
128+ extern void _PyObject_ClearFreeLists (struct _Py_object_freelists * freelists , int is_finalization );
129+ extern void _PyTuple_ClearFreeList (struct _Py_object_freelists * freelists , int is_finalization );
130+ extern void _PyFloat_ClearFreeList (struct _Py_object_freelists * freelists , int is_finalization );
131+ extern void _PyList_ClearFreeList (struct _Py_object_freelists * freelists , int is_finalization );
132+ extern void _PySlice_ClearFreeList (struct _Py_object_freelists * freelists , int is_finalization );
133+ extern void _PyDict_ClearFreeList (struct _Py_object_freelists * freelists , int is_finalization );
134+ extern void _PyAsyncGen_ClearFreeLists (struct _Py_object_freelists * freelists , int is_finalization );
135+ extern void _PyContext_ClearFreeList (struct _Py_object_freelists * freelists , int is_finalization );
136+ extern void _PyObjectStackChunk_ClearFreeList (struct _Py_object_freelists * freelists , int is_finalization );
137137
138138#ifdef __cplusplus
139139}
0 commit comments