diff options
author | Victor Stinner <vstinner@python.org> | 2020-04-29 02:29:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-29 02:29:20 +0200 |
commit | ae00a5a88534fd45939f86c12e038da9fa6f9ed6 (patch) | |
tree | 43b1f4ea83241fd72d32a0ade5a17366e67d42e4 /Include | |
parent | cc0dc7e484c9626857e9a8b4c40eee37473702ed (diff) | |
download | cpython-git-ae00a5a88534fd45939f86c12e038da9fa6f9ed6.tar.gz |
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 'Include')
-rw-r--r-- | Include/context.h | 3 | ||||
-rw-r--r-- | Include/cpython/dictobject.h | 2 | ||||
-rw-r--r-- | Include/cpython/frameobject.h | 2 | ||||
-rw-r--r-- | Include/cpython/listobject.h | 1 | ||||
-rw-r--r-- | Include/floatobject.h | 3 | ||||
-rw-r--r-- | Include/genobject.h | 2 | ||||
-rw-r--r-- | Include/internal/pycore_gc.h | 10 | ||||
-rw-r--r-- | Include/setobject.h | 1 | ||||
-rw-r--r-- | Include/tupleobject.h | 2 |
9 files changed, 10 insertions, 16 deletions
diff --git a/Include/context.h b/Include/context.h index 619746d501..4e5007089d 100644 --- a/Include/context.h +++ b/Include/context.h @@ -73,9 +73,6 @@ PyAPI_FUNC(int) PyContextVar_Reset(PyObject *var, PyObject *token); PyAPI_FUNC(PyObject *) _PyContext_NewHamtForTests(void); -PyAPI_FUNC(int) PyContext_ClearFreeList(void); - - #endif /* !Py_LIMITED_API */ #ifdef __cplusplus diff --git a/Include/cpython/dictobject.h b/Include/cpython/dictobject.h index 64c012a012..e33a0d156f 100644 --- a/Include/cpython/dictobject.h +++ b/Include/cpython/dictobject.h @@ -62,8 +62,6 @@ PyObject *_PyDict_Pop_KnownHash(PyObject *, PyObject *, Py_hash_t, PyObject *); PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *); #define _PyDict_HasSplitTable(d) ((d)->ma_values != NULL) -PyAPI_FUNC(int) PyDict_ClearFreeList(void); - /* Like PyDict_Merge, but override can be 0, 1 or 2. If override is 0, the first occurrence of a key wins, if override is 1, the last occurrence of a key wins, if override is 2, a KeyError with conflicting key as diff --git a/Include/cpython/frameobject.h b/Include/cpython/frameobject.h index e819cefd13..e32efac594 100644 --- a/Include/cpython/frameobject.h +++ b/Include/cpython/frameobject.h @@ -75,8 +75,6 @@ PyAPI_FUNC(void) PyFrame_LocalsToFast(PyFrameObject *, int); PyAPI_FUNC(int) PyFrame_FastToLocalsWithError(PyFrameObject *f); PyAPI_FUNC(void) PyFrame_FastToLocals(PyFrameObject *); -PyAPI_FUNC(int) PyFrame_ClearFreeList(void); - PyAPI_FUNC(void) _PyFrame_DebugMallocStats(FILE *out); #ifdef __cplusplus diff --git a/Include/cpython/listobject.h b/Include/cpython/listobject.h index 4b6f2f7741..74fe3301a7 100644 --- a/Include/cpython/listobject.h +++ b/Include/cpython/listobject.h @@ -26,7 +26,6 @@ typedef struct { } PyListObject; PyAPI_FUNC(PyObject *) _PyList_Extend(PyListObject *, PyObject *); -PyAPI_FUNC(int) PyList_ClearFreeList(void); PyAPI_FUNC(void) _PyList_DebugMallocStats(FILE *out); /* Macro, trading safety for speed */ diff --git a/Include/floatobject.h b/Include/floatobject.h index 917dfcc264..e994aa8f29 100644 --- a/Include/floatobject.h +++ b/Include/floatobject.h @@ -100,9 +100,6 @@ PyAPI_FUNC(double) _PyFloat_Unpack2(const unsigned char *p, int le); PyAPI_FUNC(double) _PyFloat_Unpack4(const unsigned char *p, int le); PyAPI_FUNC(double) _PyFloat_Unpack8(const unsigned char *p, int le); -/* free list api */ -PyAPI_FUNC(int) PyFloat_ClearFreeList(void); - PyAPI_FUNC(void) _PyFloat_DebugMallocStats(FILE* out); /* Format the object based on the format_spec, as defined in PEP 3101 diff --git a/Include/genobject.h b/Include/genobject.h index a7393a9a83..8ffd15646f 100644 --- a/Include/genobject.h +++ b/Include/genobject.h @@ -91,8 +91,6 @@ PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *, PyObject *_PyAsyncGenValueWrapperNew(PyObject *); -int PyAsyncGen_ClearFreeLists(void); - #endif #undef _PyGenObject_HEAD diff --git a/Include/internal/pycore_gc.h b/Include/internal/pycore_gc.h index 62b8800e24..0511eea779 100644 --- a/Include/internal/pycore_gc.h +++ b/Include/internal/pycore_gc.h @@ -163,6 +163,16 @@ struct _gc_runtime_state { PyAPI_FUNC(void) _PyGC_InitState(struct _gc_runtime_state *); + +// Functions to clear types free lists +extern void _PyFrame_ClearFreeList(void); +extern void _PyTuple_ClearFreeList(void); +extern void _PyFloat_ClearFreeList(void); +extern void _PyList_ClearFreeList(void); +extern void _PyDict_ClearFreeList(void); +extern void _PyAsyncGen_ClearFreeLists(void); +extern void _PyContext_ClearFreeList(void); + #ifdef __cplusplus } #endif diff --git a/Include/setobject.h b/Include/setobject.h index 05a097eba7..119619ebe7 100644 --- a/Include/setobject.h +++ b/Include/setobject.h @@ -70,7 +70,6 @@ PyAPI_DATA(PyObject *) _PySet_Dummy; PyAPI_FUNC(int) _PySet_NextEntry(PyObject *set, Py_ssize_t *pos, PyObject **key, Py_hash_t *hash); PyAPI_FUNC(int) _PySet_Update(PyObject *set, PyObject *iterable); -PyAPI_FUNC(int) PySet_ClearFreeList(void); #endif /* Section excluded by Py_LIMITED_API */ diff --git a/Include/tupleobject.h b/Include/tupleobject.h index d3504b0501..e796a32019 100644 --- a/Include/tupleobject.h +++ b/Include/tupleobject.h @@ -34,8 +34,6 @@ PyAPI_FUNC(int) PyTuple_SetItem(PyObject *, Py_ssize_t, PyObject *); PyAPI_FUNC(PyObject *) PyTuple_GetSlice(PyObject *, Py_ssize_t, Py_ssize_t); PyAPI_FUNC(PyObject *) PyTuple_Pack(Py_ssize_t, ...); -PyAPI_FUNC(int) PyTuple_ClearFreeList(void); - #ifndef Py_LIMITED_API # define Py_CPYTHON_TUPLEOBJECT_H # include "cpython/tupleobject.h" |