Skip to content

Commit 5fd2e5a

Browse files
committed
Issue #19512: Add a new _PyDict_DelItemId() function, similar to
PyDict_DelItemString() but using an identifier for the key
1 parent 7a07e45 commit 5fd2e5a

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

Include/dictobject.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ PyAPI_FUNC(PyObject *) _PyDict_GetItemId(PyObject *dp, struct _Py_Identifier *ke
109109
PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item);
110110
PyAPI_FUNC(int) _PyDict_SetItemId(PyObject *dp, struct _Py_Identifier *key, PyObject *item);
111111
PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key);
112+
PyAPI_FUNC(int) _PyDict_DelItemId(PyObject *mp, struct _Py_Identifier *key);
112113

113114
#ifndef Py_LIMITED_API
114115
int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr, PyObject *name, PyObject *value);

Objects/dictobject.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2735,6 +2735,15 @@ PyDict_SetItemString(PyObject *v, const char *key, PyObject *item)
27352735
return err;
27362736
}
27372737

2738+
int
2739+
_PyDict_DelItemId(PyObject *v, _Py_Identifier *key)
2740+
{
2741+
PyObject *kv = _PyUnicode_FromId(key); /* borrowed */
2742+
if (kv == NULL)
2743+
return -1;
2744+
return PyDict_DelItem(v, kv);
2745+
}
2746+
27382747
int
27392748
PyDict_DelItemString(PyObject *v, const char *key)
27402749
{

0 commit comments

Comments
 (0)