diff options
Diffstat (limited to 'Objects')
| -rw-r--r-- | Objects/dictobject.c | 13 | ||||
| -rw-r--r-- | Objects/listobject.c | 13 |
2 files changed, 20 insertions, 6 deletions
diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 82735e6..f8f072d 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -217,16 +217,23 @@ show_track(void) static PyDictObject *free_list[PyDict_MAXFREELIST]; static int numfree = 0; -void -PyDict_Fini(void) +int +PyDict_ClearFreeList(void) { PyDictObject *op; - + int ret = numfree; while (numfree) { op = free_list[--numfree]; assert(PyDict_CheckExact(op)); PyObject_GC_Del(op); } + return ret; +} + +void +PyDict_Fini(void) +{ + PyDict_ClearFreeList(); } PyObject * diff --git a/Objects/listobject.c b/Objects/listobject.c index 69a632d..6f1edc5 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -97,16 +97,23 @@ show_alloc(void) static PyListObject *free_list[PyList_MAXFREELIST]; static int numfree = 0; -void -PyList_Fini(void) +int +PyList_ClearFreeList(void) { PyListObject *op; - + int ret = numfree; while (numfree) { op = free_list[--numfree]; assert(PyList_CheckExact(op)); PyObject_GC_Del(op); } + return ret; +} + +void +PyList_Fini(void) +{ + PyList_ClearFreeList(); } PyObject * |
