bpo-46007: Exclude PyUnicode_CHECK_INTERNED() from limited C API (GH-29987)

Exclude the PyUnicode_CHECK_INTERNED() macro from the limited C API,
because it uses the PyASCIIObject structure which is excluded from
the limited C API.

Automerge-Triggered-By: GH:encukou
This commit is contained in:
Victor Stinner 2021-12-09 09:58:09 +01:00 committed by GitHub
parent 5de39f4b41
commit 73325bbe77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 4 deletions

View File

@ -723,6 +723,12 @@ Porting to Python 3.11
been included directly, consider including ``Python.h`` instead.
(Contributed by Victor Stinner in :issue:`35134`.)
* The :c:func:`PyUnicode_CHECK_INTERNED` macro has been excluded from the
limited C API. It was never usable there, because it used internal structures
which are not available in the limited C API.
(Contributed by Victor Stinner in :issue:`46007`.)
Deprecated
----------

View File

@ -279,6 +279,10 @@ PyAPI_FUNC(int) _PyUnicode_CheckConsistency(
#define SSTATE_INTERNED_MORTAL 1
#define SSTATE_INTERNED_IMMORTAL 2
/* Use only if you know it's a string */
#define PyUnicode_CHECK_INTERNED(op) \
(((PyASCIIObject *)(op))->state.interned)
/* Return true if the string contains only ASCII characters, or 0 if not. The
string may be compact (PyUnicode_IS_COMPACT_ASCII) or not, but must be
ready. */

View File

@ -269,10 +269,6 @@ PyAPI_FUNC(PyObject *) PyUnicode_InternFromString(
// and will be removed in Python 3.12. Use PyUnicode_InternInPlace() instead.
Py_DEPRECATED(3.10) PyAPI_FUNC(void) PyUnicode_InternImmortal(PyObject **);
/* Use only if you know it's a string */
#define PyUnicode_CHECK_INTERNED(op) \
(((PyASCIIObject *)(op))->state.interned)
/* --- wchar_t support for platforms which support it --------------------- */
#ifdef HAVE_WCHAR_H

View File

@ -0,0 +1,3 @@
The :c:func:`PyUnicode_CHECK_INTERNED` macro has been excluded from the limited
C API. It was never usable there, because it used internal structures which are
not available in the limited C API. Patch by Victor Stinner.