From d68b592dd67cb87c4fa862a8d3b3fd0a7d05e113 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sat, 23 Nov 2019 02:30:32 +0100 Subject: [PATCH] bpo-38896: Remove PyUnicode_ClearFreeList() function (GH-17354) Remove PyUnicode_ClearFreeList() function: the Unicode free list has been removed in Python 3.3. --- Doc/c-api/unicode.rst | 5 ----- Doc/whatsnew/3.9.rst | 4 ++++ Include/unicodeobject.h | 11 ----------- .../C API/2019-11-22-19-43-43.bpo-38896.6wvNMJ.rst | 2 ++ Modules/gcmodule.c | 1 - Objects/unicodeobject.c | 9 --------- PC/python3.def | 1 - 7 files changed, 6 insertions(+), 27 deletions(-) create mode 100644 Misc/NEWS.d/next/C API/2019-11-22-19-43-43.bpo-38896.6wvNMJ.rst diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst index 2bf4a0f56bc..77f123cf1f2 100644 --- a/Doc/c-api/unicode.rst +++ b/Doc/c-api/unicode.rst @@ -197,11 +197,6 @@ access internal read-only data of Unicode objects: .. versionadded:: 3.3 -.. c:function:: int PyUnicode_ClearFreeList() - - Clear the free list. Return the total number of freed items. - - .. c:function:: Py_ssize_t PyUnicode_GET_SIZE(PyObject *o) Return the size of the deprecated :c:type:`Py_UNICODE` representation, in diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst index 281173edb89..a3ad98d0206 100644 --- a/Doc/whatsnew/3.9.rst +++ b/Doc/whatsnew/3.9.rst @@ -235,6 +235,10 @@ Build and C API Changes functions: the free lists of bound method objects have been removed. (Contributed by Inada Naoki and Victor Stinner in :issue:`37340`.) +* Remove ``PyUnicode_ClearFreeList()`` function: the Unicode free list has been + removed in Python 3.3. + (Contributed by Victor Stinner in :issue:`38896`.) + Deprecated ========== diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index 97d8cd12f6d..4dea4942181 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -328,17 +328,6 @@ PyAPI_FUNC(wchar_t*) PyUnicode_AsWideCharString( PyAPI_FUNC(PyObject*) PyUnicode_FromOrdinal(int ordinal); -/* --- Free-list management ----------------------------------------------- */ - -/* Clear the free list used by the Unicode implementation. - - This can be used to release memory used for objects on the free - list back to the Python memory allocator. - -*/ - -PyAPI_FUNC(int) PyUnicode_ClearFreeList(void); - /* === Builtin Codecs ===================================================== Many of these APIs take two arguments encoding and errors. These diff --git a/Misc/NEWS.d/next/C API/2019-11-22-19-43-43.bpo-38896.6wvNMJ.rst b/Misc/NEWS.d/next/C API/2019-11-22-19-43-43.bpo-38896.6wvNMJ.rst new file mode 100644 index 00000000000..c5e108d7693 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2019-11-22-19-43-43.bpo-38896.6wvNMJ.rst @@ -0,0 +1,2 @@ +Remove ``PyUnicode_ClearFreeList()`` function: the Unicode free list has +been removed in Python 3.3. diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index d232179a11c..64afe831c84 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -1031,7 +1031,6 @@ clear_freelists(void) { (void)PyFrame_ClearFreeList(); (void)PyTuple_ClearFreeList(); - (void)PyUnicode_ClearFreeList(); (void)PyFloat_ClearFreeList(); (void)PyList_ClearFreeList(); (void)PyDict_ClearFreeList(); diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 89e45d01e37..77760195b32 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -15332,14 +15332,6 @@ _PyUnicode_Init(void) return _PyStatus_OK(); } -/* Finalize the Unicode implementation */ - -int -PyUnicode_ClearFreeList(void) -{ - return 0; -} - void PyUnicode_InternInPlace(PyObject **p) @@ -15951,7 +15943,6 @@ _PyUnicode_Fini(PyThreadState *tstate) Py_CLEAR(unicode_latin1[i]); } _PyUnicode_ClearStaticStrings(); - (void)PyUnicode_ClearFreeList(); } PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE(); diff --git a/PC/python3.def b/PC/python3.def index 1f355bffc9b..4689b777a69 100644 --- a/PC/python3.def +++ b/PC/python3.def @@ -649,7 +649,6 @@ EXPORTS PyUnicode_AsWideChar=python39.PyUnicode_AsWideChar PyUnicode_AsWideCharString=python39.PyUnicode_AsWideCharString PyUnicode_BuildEncodingMap=python39.PyUnicode_BuildEncodingMap - PyUnicode_ClearFreeList=python39.PyUnicode_ClearFreeList PyUnicode_Compare=python39.PyUnicode_Compare PyUnicode_CompareWithASCIIString=python39.PyUnicode_CompareWithASCIIString PyUnicode_Concat=python39.PyUnicode_Concat