Skip to content

Commit 7a0d93d

Browse files
author
rhettinger
committed
Finalize the freelist of list objects.
git-svn-id: http://svn.python.org/projects/python/trunk@37543 6015fed2-1504-0410-9fe1-9d1591cc4771
1 parent 0e6cedf commit 7a0d93d

3 files changed

Lines changed: 15 additions & 0 deletions

File tree

Include/pythonrun.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ PyAPI_FUNC(void) PyMethod_Fini(void);
113113
PyAPI_FUNC(void) PyFrame_Fini(void);
114114
PyAPI_FUNC(void) PyCFunction_Fini(void);
115115
PyAPI_FUNC(void) PyTuple_Fini(void);
116+
PyAPI_FUNC(void) PyList_Fini(void);
116117
PyAPI_FUNC(void) PyString_Fini(void);
117118
PyAPI_FUNC(void) PyInt_Fini(void);
118119
PyAPI_FUNC(void) PyFloat_Fini(void);

Objects/listobject.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,19 @@ list_resize(PyListObject *self, int newsize)
6868
static PyListObject *free_lists[MAXFREELISTS];
6969
static int num_free_lists = 0;
7070

71+
void
72+
PyList_Fini(void)
73+
{
74+
PyListObject *op;
75+
76+
while (num_free_lists) {
77+
num_free_lists--;
78+
op = free_lists[num_free_lists];
79+
assert(PyList_CheckExact(op));
80+
PyObject_GC_Del(op);
81+
}
82+
}
83+
7184
PyObject *
7285
PyList_New(int size)
7386
{

Python/pythonrun.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,7 @@ Py_Finalize(void)
416416
PyFrame_Fini();
417417
PyCFunction_Fini();
418418
PyTuple_Fini();
419+
PyList_Fini();
419420
PyString_Fini();
420421
PyInt_Fini();
421422
PyFloat_Fini();

0 commit comments

Comments
 (0)