@@ -33,14 +33,14 @@ extern "C" {
33
33
# define _PyObjectStackChunk_MAXFREELIST 0
34
34
#endif
35
35
36
- struct _Py_list_state {
36
+ struct _Py_list_freelist {
37
37
#ifdef WITH_FREELISTS
38
38
PyListObject * free_list [PyList_MAXFREELIST ];
39
39
int numfree ;
40
40
#endif
41
41
};
42
42
43
- struct _Py_tuple_state {
43
+ struct _Py_tuple_freelist {
44
44
#if WITH_FREELISTS
45
45
/* There is one freelist for each size from 1 to PyTuple_MAXSAVESIZE.
46
46
The empty tuple is handled separately.
@@ -57,7 +57,7 @@ struct _Py_tuple_state {
57
57
#endif
58
58
};
59
59
60
- struct _Py_float_state {
60
+ struct _Py_float_freelist {
61
61
#ifdef WITH_FREELISTS
62
62
/* Special free list
63
63
free_list is a singly-linked list of available PyFloatObjects,
@@ -77,23 +77,23 @@ struct _Py_dict_freelist {
77
77
#endif
78
78
};
79
79
80
- struct _Py_slice_state {
80
+ struct _Py_slice_freelist {
81
81
#ifdef WITH_FREELISTS
82
82
/* Using a cache is very effective since typically only a single slice is
83
83
created and then deleted again. */
84
84
PySliceObject * slice_cache ;
85
85
#endif
86
86
};
87
87
88
- struct _Py_context_state {
88
+ struct _Py_context_freelist {
89
89
#ifdef WITH_FREELISTS
90
90
// List of free PyContext objects
91
91
PyContext * freelist ;
92
92
int numfree ;
93
93
#endif
94
94
};
95
95
96
- struct _Py_async_gen_state {
96
+ struct _Py_async_gen_freelist {
97
97
#ifdef WITH_FREELISTS
98
98
/* Freelists boost performance 6-10%; they also reduce memory
99
99
fragmentation, as _PyAsyncGenWrappedValue and PyAsyncGenASend
@@ -109,31 +109,31 @@ struct _Py_async_gen_state {
109
109
110
110
struct _PyObjectStackChunk ;
111
111
112
- struct _Py_object_stack_state {
112
+ struct _Py_object_stack_freelist {
113
113
struct _PyObjectStackChunk * free_list ;
114
114
Py_ssize_t numfree ;
115
115
};
116
116
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 ;
121
121
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 );
137
137
138
138
#ifdef __cplusplus
139
139
}
0 commit comments