]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #19512: Add a new _PyDict_DelItemId() function, similar to
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 6 Nov 2013 17:58:22 +0000 (18:58 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 6 Nov 2013 17:58:22 +0000 (18:58 +0100)
PyDict_DelItemString() but using an identifier for the key

Include/dictobject.h
Objects/dictobject.c

index 16bd1d6cb1f21ccea44b77f13b669b48311cf498..9e5c90c478d478543b36ecbcaaa4c597f83bc6b1 100644 (file)
@@ -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);
index 2424176b713bec4c5de00a72008411258d9aa05c..a5072c8bd2b2aa953c6c40daea84e98367d35504 100644 (file)
@@ -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)
 {