diff options
author | Victor Stinner <vstinner@python.org> | 2020-04-29 00:29:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-29 00:29:20 (GMT) |
commit | ae00a5a88534fd45939f86c12e038da9fa6f9ed6 (patch) | |
tree | 43b1f4ea83241fd72d32a0ade5a17366e67d42e4 /Python | |
parent | cc0dc7e484c9626857e9a8b4c40eee37473702ed (diff) | |
download | cpython-ae00a5a88534fd45939f86c12e038da9fa6f9ed6.zip cpython-ae00a5a88534fd45939f86c12e038da9fa6f9ed6.tar.gz cpython-ae00a5a88534fd45939f86c12e038da9fa6f9ed6.tar.bz2 |
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.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/context.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/Python/context.c b/Python/context.c index f0217f2..bacc701 100644 --- a/Python/context.c +++ b/Python/context.c @@ -1270,18 +1270,15 @@ get_token_missing(void) /////////////////////////// -int -PyContext_ClearFreeList(void) +void +_PyContext_ClearFreeList(void) { - int size = ctx_freelist_len; - while (ctx_freelist_len) { + for (; ctx_freelist_len; ctx_freelist_len--) { PyContext *ctx = ctx_freelist; ctx_freelist = (PyContext *)ctx->ctx_weakreflist; ctx->ctx_weakreflist = NULL; PyObject_GC_Del(ctx); - ctx_freelist_len--; } - return size; } @@ -1289,8 +1286,8 @@ void _PyContext_Fini(void) { Py_CLEAR(_token_missing); - (void)PyContext_ClearFreeList(); - (void)_PyHamt_Fini(); + _PyContext_ClearFreeList(); + _PyHamt_Fini(); } |