mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-141726: Add PyDict_SetDefaultRef() to the Stable ABI (#141727)
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
This commit is contained in:
parent
52f70a6f60
commit
afa0badcc5
7 changed files with 18 additions and 10 deletions
1
Doc/data/stable_abi.dat
generated
1
Doc/data/stable_abi.dat
generated
|
|
@ -160,6 +160,7 @@ func,PyDict_Merge,3.2,,
|
||||||
func,PyDict_MergeFromSeq2,3.2,,
|
func,PyDict_MergeFromSeq2,3.2,,
|
||||||
func,PyDict_New,3.2,,
|
func,PyDict_New,3.2,,
|
||||||
func,PyDict_Next,3.2,,
|
func,PyDict_Next,3.2,,
|
||||||
|
func,PyDict_SetDefaultRef,3.15,,
|
||||||
func,PyDict_SetItem,3.2,,
|
func,PyDict_SetItem,3.2,,
|
||||||
func,PyDict_SetItemString,3.2,,
|
func,PyDict_SetItemString,3.2,,
|
||||||
func,PyDict_Size,3.2,,
|
func,PyDict_Size,3.2,,
|
||||||
|
|
|
||||||
|
|
@ -39,16 +39,6 @@ Py_DEPRECATED(3.14) PyAPI_FUNC(PyObject *) _PyDict_GetItemStringWithError(PyObje
|
||||||
PyAPI_FUNC(PyObject *) PyDict_SetDefault(
|
PyAPI_FUNC(PyObject *) PyDict_SetDefault(
|
||||||
PyObject *mp, PyObject *key, PyObject *defaultobj);
|
PyObject *mp, PyObject *key, PyObject *defaultobj);
|
||||||
|
|
||||||
// Inserts `key` with a value `default_value`, if `key` is not already present
|
|
||||||
// in the dictionary. If `result` is not NULL, then the value associated
|
|
||||||
// with `key` is returned in `*result` (either the existing value, or the now
|
|
||||||
// inserted `default_value`).
|
|
||||||
// Returns:
|
|
||||||
// -1 on error
|
|
||||||
// 0 if `key` was not present and `default_value` was inserted
|
|
||||||
// 1 if `key` was present and `default_value` was not inserted
|
|
||||||
PyAPI_FUNC(int) PyDict_SetDefaultRef(PyObject *mp, PyObject *key, PyObject *default_value, PyObject **result);
|
|
||||||
|
|
||||||
/* Get the number of items of a dictionary. */
|
/* Get the number of items of a dictionary. */
|
||||||
static inline Py_ssize_t PyDict_GET_SIZE(PyObject *op) {
|
static inline Py_ssize_t PyDict_GET_SIZE(PyObject *op) {
|
||||||
PyDictObject *mp;
|
PyDictObject *mp;
|
||||||
|
|
|
||||||
|
|
@ -68,6 +68,18 @@ PyAPI_FUNC(int) PyDict_GetItemRef(PyObject *mp, PyObject *key, PyObject **result
|
||||||
PyAPI_FUNC(int) PyDict_GetItemStringRef(PyObject *mp, const char *key, PyObject **result);
|
PyAPI_FUNC(int) PyDict_GetItemStringRef(PyObject *mp, const char *key, PyObject **result);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030F0000
|
||||||
|
// Inserts `key` with a value `default_value`, if `key` is not already present
|
||||||
|
// in the dictionary. If `result` is not NULL, then the value associated
|
||||||
|
// with `key` is returned in `*result` (either the existing value, or the now
|
||||||
|
// inserted `default_value`).
|
||||||
|
// Returns:
|
||||||
|
// -1 on error
|
||||||
|
// 0 if `key` was not present and `default_value` was inserted
|
||||||
|
// 1 if `key` was present and `default_value` was not inserted
|
||||||
|
PyAPI_FUNC(int) PyDict_SetDefaultRef(PyObject *mp, PyObject *key, PyObject *default_value, PyObject **result);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000
|
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000
|
||||||
PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *);
|
PyAPI_FUNC(PyObject *) PyObject_GenericGetDict(PyObject *, void *);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
1
Lib/test/test_stable_abi_ctypes.py
generated
1
Lib/test/test_stable_abi_ctypes.py
generated
|
|
@ -165,6 +165,7 @@ SYMBOL_NAMES = (
|
||||||
"PyDict_MergeFromSeq2",
|
"PyDict_MergeFromSeq2",
|
||||||
"PyDict_New",
|
"PyDict_New",
|
||||||
"PyDict_Next",
|
"PyDict_Next",
|
||||||
|
"PyDict_SetDefaultRef",
|
||||||
"PyDict_SetItem",
|
"PyDict_SetItem",
|
||||||
"PyDict_SetItemString",
|
"PyDict_SetItemString",
|
||||||
"PyDict_Size",
|
"PyDict_Size",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Add :c:func:`PyDict_SetDefaultRef` to the Stable ABI.
|
||||||
|
|
@ -2639,3 +2639,5 @@
|
||||||
added = '3.15'
|
added = '3.15'
|
||||||
[const.Py_mod_token]
|
[const.Py_mod_token]
|
||||||
added = '3.15'
|
added = '3.15'
|
||||||
|
[function.PyDict_SetDefaultRef]
|
||||||
|
added = '3.15'
|
||||||
|
|
|
||||||
1
PC/python3dll.c
generated
1
PC/python3dll.c
generated
|
|
@ -191,6 +191,7 @@ EXPORT_FUNC(PyDict_Merge)
|
||||||
EXPORT_FUNC(PyDict_MergeFromSeq2)
|
EXPORT_FUNC(PyDict_MergeFromSeq2)
|
||||||
EXPORT_FUNC(PyDict_New)
|
EXPORT_FUNC(PyDict_New)
|
||||||
EXPORT_FUNC(PyDict_Next)
|
EXPORT_FUNC(PyDict_Next)
|
||||||
|
EXPORT_FUNC(PyDict_SetDefaultRef)
|
||||||
EXPORT_FUNC(PyDict_SetItem)
|
EXPORT_FUNC(PyDict_SetItem)
|
||||||
EXPORT_FUNC(PyDict_SetItemString)
|
EXPORT_FUNC(PyDict_SetItemString)
|
||||||
EXPORT_FUNC(PyDict_Size)
|
EXPORT_FUNC(PyDict_Size)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue