[Python-checkins] bpo-38896: Remove PyUnicode_ClearFreeList() function (GH-17354)

Victor Stinner webhook-mailer at python.org
Fri Nov 22 20:30:53 EST 2019


https://github.com/python/cpython/commit/d68b592dd67cb87c4fa862a8d3b3fd0a7d05e113
commit: d68b592dd67cb87c4fa862a8d3b3fd0a7d05e113
branch: master
author: Victor Stinner <vstinner at python.org>
committer: GitHub <noreply at github.com>
date: 2019-11-23T02:30:32+01:00
summary:

bpo-38896: Remove PyUnicode_ClearFreeList() function (GH-17354)

Remove PyUnicode_ClearFreeList() function: the Unicode free list has
been removed in Python 3.3.

files:
A Misc/NEWS.d/next/C API/2019-11-22-19-43-43.bpo-38896.6wvNMJ.rst
M Doc/c-api/unicode.rst
M Doc/whatsnew/3.9.rst
M Include/unicodeobject.h
M Modules/gcmodule.c
M Objects/unicodeobject.c
M PC/python3.def

diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst
index 2bf4a0f56bc8a..77f123cf1f2c0 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 281173edb895b..a3ad98d020642 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 97d8cd12f6de5..4dea494218122 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 0000000000000..c5e108d769312
--- /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 d232179a11ce4..64afe831c84c5 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 89e45d01e3789..77760195b32e7 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 1f355bffc9bdd..4689b777a6933 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



More information about the Python-checkins mailing list