From 5fd2e5ae8ae3dfaaf96d9771eb6f3fcacc4d3b31 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Wed, 6 Nov 2013 18:58:22 +0100 Subject: [PATCH] Issue #19512: Add a new _PyDict_DelItemId() function, similar to PyDict_DelItemString() but using an identifier for the key --- Include/dictobject.h | 1 + Objects/dictobject.c | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/Include/dictobject.h b/Include/dictobject.h index 16bd1d6cb1f..9e5c90c478d 100644 --- a/Include/dictobject.h +++ b/Include/dictobject.h @@ -109,6 +109,7 @@ PyAPI_FUNC(PyObject *) _PyDict_GetItemId(PyObject *dp, struct _Py_Identifier *ke PyAPI_FUNC(int) PyDict_SetItemString(PyObject *dp, const char *key, PyObject *item); PyAPI_FUNC(int) _PyDict_SetItemId(PyObject *dp, struct _Py_Identifier *key, PyObject *item); PyAPI_FUNC(int) PyDict_DelItemString(PyObject *dp, const char *key); +PyAPI_FUNC(int) _PyDict_DelItemId(PyObject *mp, struct _Py_Identifier *key); #ifndef Py_LIMITED_API int _PyObjectDict_SetItem(PyTypeObject *tp, PyObject **dictptr, PyObject *name, PyObject *value); diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 2424176b713..a5072c8bd2b 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -2735,6 +2735,15 @@ PyDict_SetItemString(PyObject *v, const char *key, PyObject *item) return err; } +int +_PyDict_DelItemId(PyObject *v, _Py_Identifier *key) +{ + PyObject *kv = _PyUnicode_FromId(key); /* borrowed */ + if (kv == NULL) + return -1; + return PyDict_DelItem(v, kv); +} + int PyDict_DelItemString(PyObject *v, const char *key) {