Mercurial > cpython-lru_cache-weakref
diff Objects/typeobject.c @ 18941:013cffcfd8a3 legacy-trunk
Fix SF #442791 (revisited): No __delitem__ wrapper was defined.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 02 Aug 2001 15:31:58 +0000 |
| parents | 09df3254b49d |
| children | c1daa94c21d8 |
line wrap: on
line diff
--- a/Objects/typeobject.c Thu Aug 02 15:13:58 2001 +0000 +++ b/Objects/typeobject.c Thu Aug 02 15:31:58 2001 +0000 @@ -1504,9 +1504,26 @@ return Py_None; } +static PyObject * +wrap_delitem_int(PyObject *self, PyObject *args, void *wrapped) +{ + intobjargproc func = (intobjargproc)wrapped; + int i, res; + + if (!PyArg_ParseTuple(args, "i", &i)) + return NULL; + res = (*func)(self, i, NULL); + if (res == -1 && PyErr_Occurred()) + return NULL; + Py_INCREF(Py_None); + return Py_None; +} + static struct wrapperbase tab_setitem_int[] = { {"__setitem__", (wrapperfunc)wrap_intobjargproc, "x.__setitem__(i, y) <==> x[i]=y"}, + {"__delitem__", (wrapperfunc)wrap_delitem_int, + "x.__delitem__(y) <==> del x[y]"}, {0} }; @@ -1570,9 +1587,27 @@ return Py_None; } +static PyObject * +wrap_delitem(PyObject *self, PyObject *args, void *wrapped) +{ + objobjargproc func = (objobjargproc)wrapped; + int res; + PyObject *key; + + if (!PyArg_ParseTuple(args, "O", &key)) + return NULL; + res = (*func)(self, key, NULL); + if (res == -1 && PyErr_Occurred()) + return NULL; + Py_INCREF(Py_None); + return Py_None; +} + static struct wrapperbase tab_setitem[] = { {"__setitem__", (wrapperfunc)wrap_objobjargproc, "x.__setitem__(y, z) <==> x[y]=z"}, + {"__delitem__", (wrapperfunc)wrap_delitem, + "x.__delitem__(y) <==> del x[y]"}, {0} };
