]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-39465: Remove _PyUnicode_ClearStaticStrings() from C API (GH-20078)
authorVictor Stinner <vstinner@python.org>
Wed, 13 May 2020 23:11:54 +0000 (01:11 +0200)
committerGitHub <noreply@github.com>
Wed, 13 May 2020 23:11:54 +0000 (01:11 +0200)
Remove the _PyUnicode_ClearStaticStrings() function from the C API.
Make the function fully private (declare it with "static").

Doc/whatsnew/3.9.rst
Include/cpython/object.h
Include/cpython/unicodeobject.h
Misc/NEWS.d/next/C API/2020-05-14-00-36-19.bpo-39465.3a5g-X.rst [new file with mode: 0644]
Objects/unicodeobject.c

index c57d702dce86751d23e3865b49e6e747a0b9ce0e..2fec790fe3a639fead176b81485765566b93c358 100644 (file)
@@ -964,3 +964,6 @@ Removed
   * ``PyTuple_ClearFreeList()``
   * ``PyUnicode_ClearFreeList()``: the Unicode free list has been removed in
     Python 3.3.
+
+* Remove ``_PyUnicode_ClearStaticStrings()`` function.
+  (Contributed by Victor Stinner in :issue:`39465`.)
index 8bf05a3271183577ff596eeca82df7a16772dc61..444f832f5bd8d313250d2328d2fe7f8628e473d5 100644 (file)
@@ -36,7 +36,7 @@ PyAPI_FUNC(Py_ssize_t) _Py_GetRefTotal(void);
 
    PyId_foo is a static variable, either on block level or file level. On first
    usage, the string "foo" is interned, and the structures are linked. On interpreter
-   shutdown, all strings are released (through _PyUnicode_ClearStaticStrings).
+   shutdown, all strings are released.
 
    Alternatively, _Py_static_string allows choosing the variable name.
    _PyUnicode_FromId returns a borrowed reference to the interned string.
index 94326876292b63e9c93bc0de6aac27190eac9e7a..4fd674ffea36eae25e6e5e1cc86e45cdc84c00fa 100644 (file)
@@ -1215,8 +1215,6 @@ Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE*) PyUnicode_AsUnicodeCopy(
 
 /* Return an interned Unicode object for an Identifier; may fail if there is no memory.*/
 PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*);
-/* Clear all static strings. */
-PyAPI_FUNC(void) _PyUnicode_ClearStaticStrings(void);
 
 /* Fast equality check when the inputs are known to be exact unicode types
    and where the hash values are equal (i.e. a very probable match) */
diff --git a/Misc/NEWS.d/next/C API/2020-05-14-00-36-19.bpo-39465.3a5g-X.rst b/Misc/NEWS.d/next/C API/2020-05-14-00-36-19.bpo-39465.3a5g-X.rst
new file mode 100644 (file)
index 0000000..a08c3da
--- /dev/null
@@ -0,0 +1 @@
+Remove the ``_PyUnicode_ClearStaticStrings()`` function from the C API.
index 826298c23a924ca63515ec18024f2cc013a61383..34b747ec7bb7eef6ccafa68dba48363b424b1176 100644 (file)
@@ -2289,8 +2289,8 @@ _PyUnicode_FromId(_Py_Identifier *id)
     return id->object;
 }
 
-void
-_PyUnicode_ClearStaticStrings()
+static void
+unicode_clear_static_strings(void)
 {
     _Py_Identifier *tmp, *s = static_strings;
     while (s) {
@@ -16196,7 +16196,7 @@ _PyUnicode_Fini(PyThreadState *tstate)
             Py_CLEAR(unicode_latin1[i]);
         }
 #endif
-        _PyUnicode_ClearStaticStrings();
+        unicode_clear_static_strings();
     }
 
     _PyUnicode_FiniEncodings(tstate);