changeset: 86968:69071054b42f user: Victor Stinner date: Wed Nov 06 18:58:22 2013 +0100 files: Include/dictobject.h Objects/dictobject.c description: Issue #19512: Add a new _PyDict_DelItemId() function, similar to PyDict_DelItemString() but using an identifier for the key diff -r 8a6a920d8eae -r 69071054b42f Include/dictobject.h --- a/Include/dictobject.h Wed Nov 06 18:57:29 2013 +0100 +++ b/Include/dictobject.h Wed Nov 06 18:58:22 2013 +0100 @@ -109,6 +109,7 @@ 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 -r 8a6a920d8eae -r 69071054b42f Objects/dictobject.c --- a/Objects/dictobject.c Wed Nov 06 18:57:29 2013 +0100 +++ b/Objects/dictobject.c Wed Nov 06 18:58:22 2013 +0100 @@ -2736,6 +2736,15 @@ } 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) { PyObject *kv;