]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-41845: Move PyObject_GenericGetDict() back into the limited API (GH22646)
authorZackery Spytz <zspytz@gmail.com>
Mon, 19 Oct 2020 22:47:37 +0000 (16:47 -0600)
committerGitHub <noreply@github.com>
Mon, 19 Oct 2020 22:47:37 +0000 (23:47 +0100)
It was moved out of the limited API in 7d95e4072169911b228c9e42367afb5f17fd3db0.
This change re-enables it from 3.10, to avoid generating invalid extension modules for earlier versions.

Include/cpython/dictobject.h
Include/dictobject.h
Misc/NEWS.d/next/C API/2020-10-11-05-05-53.bpo-41845.ZFvuQM.rst [new file with mode: 0644]
PC/python3dll.c

index ffe0e97fb35f35599303971eb07fe34052c9ea9f..5a15630cfbac709c0a8dd3ce71e99eb246c49a78 100644 (file)
@@ -41,7 +41,6 @@ PyAPI_FUNC(int) _PyDict_DelItem_KnownHash(PyObject *mp, PyObject *key,
 PyAPI_FUNC(int) _PyDict_DelItemIf(PyObject *mp, PyObject *key,
                                   int (*predicate)(PyObject *value));
 PyDictKeysObject *_PyDict_NewKeysForClass(void);
-PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *);
 PyAPI_FUNC(int) _PyDict_Next(
     PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, Py_hash_t *hash);
 
index c88b0aa0a5d0f96aab1d17a4c001c72cc633ef14..da5a36ba07f32ef5c51e10b214ddb2476a6564dc 100644 (file)
@@ -57,6 +57,9 @@ PyAPI_FUNC(int) PyDict_MergeFromSeq2(PyObject *d,
 PyAPI_FUNC(PyObject *) PyDict_GetItemString(PyObject *dp, const char *key);
 PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item);
 PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key);
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000
+PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *);
+#endif
 
 /* Dictionary (keys, values, items) views */
 
diff --git a/Misc/NEWS.d/next/C API/2020-10-11-05-05-53.bpo-41845.ZFvuQM.rst b/Misc/NEWS.d/next/C API/2020-10-11-05-05-53.bpo-41845.ZFvuQM.rst
new file mode 100644 (file)
index 0000000..31d3154
--- /dev/null
@@ -0,0 +1,2 @@
+:c:func:`PyObject_GenericGetDict` is available again in the limited API
+when targeting 3.10 or later.
index b9b229ea67d7b39eab3e45b536fdeb1aca813b4d..7e4a510177304d14de1f9c46a86a30b8d5f42fa2 100644 (file)
@@ -414,6 +414,7 @@ EXPORT_FUNC(PyObject_GC_Track)
 EXPORT_FUNC(PyObject_GC_UnTrack)
 EXPORT_FUNC(PyObject_GenericGetAttr)
 EXPORT_FUNC(PyObject_GenericSetAttr)
+EXPORT_FUNC(PyObject_GenericGetDict)
 EXPORT_FUNC(PyObject_GenericSetDict)
 EXPORT_FUNC(PyObject_GetAttr)
 EXPORT_FUNC(PyObject_GetAttrString)