From ae00a5a88534fd45939f86c12e038da9fa6f9ed6 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 29 Apr 2020 02:29:20 +0200 Subject: bpo-40428: Remove PyTuple_ClearFreeList() function (GH-19769) Remove the following function from the C API: * PyAsyncGen_ClearFreeLists() * PyContext_ClearFreeList() * PyDict_ClearFreeList() * PyFloat_ClearFreeList() * PyFrame_ClearFreeList() * PyList_ClearFreeList() * PySet_ClearFreeList() * PyTuple_ClearFreeList() Make these functions private, move them to the internal C API and change their return type to void. Call explicitly PyGC_Collect() to free all free lists. Note: PySet_ClearFreeList() did nothing. --- Objects/floatobject.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'Objects/floatobject.c') diff --git a/Objects/floatobject.c b/Objects/floatobject.c index 04f968e56b..faa02f2f05 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -1998,25 +1998,22 @@ _PyFloat_Init(void) return 1; } -int -PyFloat_ClearFreeList(void) +void +_PyFloat_ClearFreeList(void) { PyFloatObject *f = free_list, *next; - int i = numfree; - while (f) { + for (; f; f = next) { next = (PyFloatObject*) Py_TYPE(f); PyObject_FREE(f); - f = next; } free_list = NULL; numfree = 0; - return i; } void _PyFloat_Fini(void) { - (void)PyFloat_ClearFreeList(); + _PyFloat_ClearFreeList(); } /* Print summary info about the state of the optimized allocator */ -- cgit v1.2.1