Skip to content

Commit b0d71d0

Browse files
committed
Implement PyObject_DelItemString. Fixes #498915.
1 parent 7731ed4 commit b0d71d0

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

Include/abstract.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,14 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
445445
statement: o[key]=v.
446446
*/
447447

448+
DL_IMPORT(int) PyObject_DelItemString(PyObject *o, char *key);
449+
450+
/*
451+
Remove the mapping for object, key, from the object *o.
452+
Returns -1 on failure. This is equivalent to
453+
the Python statement: del o[key].
454+
*/
455+
448456
DL_IMPORT(int) PyObject_DelItem(PyObject *o, PyObject *key);
449457

450458
/*

Objects/abstract.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,24 @@ PyObject_DelItem(PyObject *o, PyObject *key)
174174
return -1;
175175
}
176176

177+
int
178+
PyObject_DelItemString(PyObject *o, char *key)
179+
{
180+
PyObject *okey;
181+
int ret;
182+
183+
if (o == NULL || key == NULL) {
184+
null_error();
185+
return -1;
186+
}
187+
okey = PyString_FromString(key);
188+
if (okey == NULL)
189+
return -1;
190+
ret = PyObject_DelItem(o, okey);
191+
Py_DECREF(okey);
192+
return ret;
193+
}
194+
177195
int PyObject_AsCharBuffer(PyObject *obj,
178196
const char **buffer,
179197
int *buffer_len)

0 commit comments

Comments
 (0)