diff options
-rw-r--r-- | Include/pythonrun.h | 1 | ||||
-rw-r--r-- | Objects/listobject.c | 13 | ||||
-rw-r--r-- | Python/pythonrun.c | 1 |
3 files changed, 15 insertions, 0 deletions
diff --git a/Include/pythonrun.h b/Include/pythonrun.h index 145c009..33497ce 100644 --- a/Include/pythonrun.h +++ b/Include/pythonrun.h @@ -113,6 +113,7 @@ PyAPI_FUNC(void) PyMethod_Fini(void); PyAPI_FUNC(void) PyFrame_Fini(void); PyAPI_FUNC(void) PyCFunction_Fini(void); PyAPI_FUNC(void) PyTuple_Fini(void); +PyAPI_FUNC(void) PyList_Fini(void); PyAPI_FUNC(void) PyString_Fini(void); PyAPI_FUNC(void) PyInt_Fini(void); PyAPI_FUNC(void) PyFloat_Fini(void); diff --git a/Objects/listobject.c b/Objects/listobject.c index 44616e5..08ab095 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -68,6 +68,19 @@ list_resize(PyListObject *self, int newsize) static PyListObject *free_lists[MAXFREELISTS]; static int num_free_lists = 0; +void +PyList_Fini(void) +{ + PyListObject *op; + + while (num_free_lists) { + num_free_lists--; + op = free_lists[num_free_lists]; + assert(PyList_CheckExact(op)); + PyObject_GC_Del(op); + } +} + PyObject * PyList_New(int size) { diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 917f2be..06bec1e 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -416,6 +416,7 @@ Py_Finalize(void) PyFrame_Fini(); PyCFunction_Fini(); PyTuple_Fini(); + PyList_Fini(); PyString_Fini(); PyInt_Fini(); PyFloat_Fini(); |