Mercurial > cpython-lru_cache-weakref
diff Objects/typeobject.c @ 24460:2d77be41ee5f legacy-trunk
SF patch 588728 (Nathan Srebro).
The __delete__ method wrapper for descriptors was not supported
(I added a test, too.)
2.2 bugfix candidate.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 01 Aug 2002 14:39:25 +0000 |
| parents | ea4821964043 |
| children | 40eb80dc4250 |
line wrap: on
line diff
--- a/Objects/typeobject.c Thu Aug 01 03:10:45 2002 +0000 +++ b/Objects/typeobject.c Thu Aug 01 14:39:25 2002 +0000 @@ -2807,6 +2807,22 @@ Py_INCREF(Py_None); return Py_None; } + +static PyObject * +wrap_descr_delete(PyObject *self, PyObject *args, void *wrapped) +{ + descrsetfunc func = (descrsetfunc)wrapped; + PyObject *obj; + int ret; + + if (!PyArg_ParseTuple(args, "O", &obj)) + return NULL; + ret = (*func)(self, obj, NULL); + if (ret < 0) + return NULL; + Py_INCREF(Py_None); + return Py_None; +} static PyObject * wrap_init(PyObject *self, PyObject *args, void *wrapped, PyObject *kwds) @@ -3883,6 +3899,8 @@ "descr.__get__(obj[, type]) -> value"), TPSLOT("__set__", tp_descr_set, slot_tp_descr_set, wrap_descr_set, "descr.__set__(obj, value)"), + TPSLOT("__delete__", tp_descr_set, slot_tp_descr_set, + wrap_descr_delete, "descr.__delete__(obj)"), FLSLOT("__init__", tp_init, slot_tp_init, (wrapperfunc)wrap_init, "x.__init__(...) initializes x; " "see x.__class__.__doc__ for signature",
