summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2004-10-07 03:58:07 (GMT)
committerRaymond Hettinger <python@rcn.com>2004-10-07 03:58:07 (GMT)
commitfb09f0e85cd75ec46700562687a9da3063ff0b7c (patch)
tree046a3a4da2f9e72db87152cd653d9159d5a9416f
parentffa5cf9eae5fff1e46e8962cd957fd2ffe5a77cb (diff)
downloadcpython-fb09f0e85cd75ec46700562687a9da3063ff0b7c.zip
cpython-fb09f0e85cd75ec46700562687a9da3063ff0b7c.tar.gz
cpython-fb09f0e85cd75ec46700562687a9da3063ff0b7c.tar.bz2
Finalize the freelist of list objects.
-rw-r--r--Include/pythonrun.h1
-rw-r--r--Objects/listobject.c13
-rw-r--r--Python/pythonrun.c1
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();