44#include "Python.h"
55
66/* Speed optimization to avoid frequent malloc/free of small tuples */
7- #ifndef MAXSAVESIZE
8- #define MAXSAVESIZE 20 /* Largest tuple to save on free list */
7+ #ifndef PyTuple_MAXSAVESIZE
8+ #define PyTuple_MAXSAVESIZE 20 /* Largest tuple to save on free list */
99#endif
10- #ifndef MAXSAVEDTUPLES
11- #define MAXSAVEDTUPLES 2000 /* Maximum number of tuples of each size to save */
10+ #ifndef PyTuple_MAXFREELIST
11+ #define PyTuple_MAXFREELIST 2000 /* Maximum number of tuples of each size to save */
1212#endif
1313
14- #if MAXSAVESIZE > 0
15- /* Entries 1 up to MAXSAVESIZE are free lists, entry 0 is the empty
14+ #if PyTuple_MAXSAVESIZE > 0
15+ /* Entries 1 up to PyTuple_MAXSAVESIZE are free lists, entry 0 is the empty
1616 tuple () of which at most one instance will be allocated.
1717*/
18- static PyTupleObject * free_tuples [ MAXSAVESIZE ];
19- static int num_free_tuples [ MAXSAVESIZE ];
18+ static PyTupleObject * free_list [ PyTuple_MAXSAVESIZE ];
19+ static int numfree [ PyTuple_MAXSAVESIZE ];
2020#endif
2121#ifdef COUNT_ALLOCS
2222int fast_tuple_allocs ;
@@ -32,18 +32,18 @@ PyTuple_New(register Py_ssize_t size)
3232 PyErr_BadInternalCall ();
3333 return NULL ;
3434 }
35- #if MAXSAVESIZE > 0
36- if (size == 0 && free_tuples [0 ]) {
37- op = free_tuples [0 ];
35+ #if PyTuple_MAXSAVESIZE > 0
36+ if (size == 0 && free_list [0 ]) {
37+ op = free_list [0 ];
3838 Py_INCREF (op );
3939#ifdef COUNT_ALLOCS
4040 tuple_zero_allocs ++ ;
4141#endif
4242 return (PyObject * ) op ;
4343 }
44- if (size < MAXSAVESIZE && (op = free_tuples [size ]) != NULL ) {
45- free_tuples [size ] = (PyTupleObject * ) op -> ob_item [0 ];
46- num_free_tuples [size ]-- ;
44+ if (size < PyTuple_MAXSAVESIZE && (op = free_list [size ]) != NULL ) {
45+ free_list [size ] = (PyTupleObject * ) op -> ob_item [0 ];
46+ numfree [size ]-- ;
4747#ifdef COUNT_ALLOCS
4848 fast_tuple_allocs ++ ;
4949#endif
@@ -71,10 +71,10 @@ PyTuple_New(register Py_ssize_t size)
7171 }
7272 for (i = 0 ; i < size ; i ++ )
7373 op -> ob_item [i ] = NULL ;
74- #if MAXSAVESIZE > 0
74+ #if PyTuple_MAXSAVESIZE > 0
7575 if (size == 0 ) {
76- free_tuples [0 ] = op ;
77- ++ num_free_tuples [0 ];
76+ free_list [0 ] = op ;
77+ ++ numfree [0 ];
7878 Py_INCREF (op ); /* extra INCREF so that this is never freed */
7979 }
8080#endif
@@ -167,14 +167,14 @@ tupledealloc(register PyTupleObject *op)
167167 i = len ;
168168 while (-- i >= 0 )
169169 Py_XDECREF (op -> ob_item [i ]);
170- #if MAXSAVESIZE > 0
171- if (len < MAXSAVESIZE &&
172- num_free_tuples [len ] < MAXSAVEDTUPLES &&
170+ #if PyTuple_MAXSAVESIZE > 0
171+ if (len < PyTuple_MAXSAVESIZE &&
172+ numfree [len ] < PyTuple_MAXFREELIST &&
173173 Py_TYPE (op ) == & PyTuple_Type )
174174 {
175- op -> ob_item [0 ] = (PyObject * ) free_tuples [len ];
176- num_free_tuples [len ]++ ;
177- free_tuples [len ] = op ;
175+ op -> ob_item [0 ] = (PyObject * ) free_list [len ];
176+ numfree [len ]++ ;
177+ free_list [len ] = op ;
178178 goto done ; /* return */
179179 }
180180#endif
@@ -781,16 +781,16 @@ _PyTuple_Resize(PyObject **pv, Py_ssize_t newsize)
781781void
782782PyTuple_Fini (void )
783783{
784- #if MAXSAVESIZE > 0
784+ #if PyTuple_MAXSAVESIZE > 0
785785 int i ;
786786
787- Py_XDECREF (free_tuples [0 ]);
788- free_tuples [0 ] = NULL ;
787+ Py_XDECREF (free_list [0 ]);
788+ free_list [0 ] = NULL ;
789789
790- for (i = 1 ; i < MAXSAVESIZE ; i ++ ) {
790+ for (i = 1 ; i < PyTuple_MAXSAVESIZE ; i ++ ) {
791791 PyTupleObject * p , * q ;
792- p = free_tuples [i ];
793- free_tuples [i ] = NULL ;
792+ p = free_list [i ];
793+ free_list [i ] = NULL ;
794794 while (p ) {
795795 q = p ;
796796 p = (PyTupleObject * )(p -> ob_item [0 ]);
0 commit comments