diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2002-01-05 10:50:30 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2002-01-05 10:50:30 (GMT) |
commit | b0d71d0ec6e575b7c379d55cb8366b26509ece53 (patch) | |
tree | 1066d02af103a7308a4edbf7bbcb1caa656377a9 | |
parent | 7731ed47cb9adc0351c393dad2d505eb5c08d712 (diff) | |
download | cpython-b0d71d0ec6e575b7c379d55cb8366b26509ece53.zip cpython-b0d71d0ec6e575b7c379d55cb8366b26509ece53.tar.gz cpython-b0d71d0ec6e575b7c379d55cb8366b26509ece53.tar.bz2 |
Implement PyObject_DelItemString. Fixes #498915.
-rw-r--r-- | Include/abstract.h | 8 | ||||
-rw-r--r-- | Objects/abstract.c | 18 |
2 files changed, 26 insertions, 0 deletions
diff --git a/Include/abstract.h b/Include/abstract.h index 682c2f2..226e5e8 100644 --- a/Include/abstract.h +++ b/Include/abstract.h @@ -445,6 +445,14 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/ statement: o[key]=v. */ + DL_IMPORT(int) PyObject_DelItemString(PyObject *o, char *key); + + /* + Remove the mapping for object, key, from the object *o. + Returns -1 on failure. This is equivalent to + the Python statement: del o[key]. + */ + DL_IMPORT(int) PyObject_DelItem(PyObject *o, PyObject *key); /* diff --git a/Objects/abstract.c b/Objects/abstract.c index 5931449..2acfd08 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -174,6 +174,24 @@ PyObject_DelItem(PyObject *o, PyObject *key) return -1; } +int +PyObject_DelItemString(PyObject *o, char *key) +{ + PyObject *okey; + int ret; + + if (o == NULL || key == NULL) { + null_error(); + return -1; + } + okey = PyString_FromString(key); + if (okey == NULL) + return -1; + ret = PyObject_DelItem(o, okey); + Py_DECREF(okey); + return ret; +} + int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, int *buffer_len) |