Fix for SF bug #485678.
slot_tp_descr_set(): When deleting an attribute described by a
descriptor implemented in Python, the descriptor's __del__ method is
called by the slot_tp_descr_set dispatch function. This is bogus --
__del__ already has a different meaning. Renaming this use of __del__
is renamed to __delete__.
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 07032f4..c79636d 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3281,7 +3281,7 @@
static PyObject *del_str, *set_str;
if (value == NULL)
- res = call_method(self, "__del__", &del_str,
+ res = call_method(self, "__delete__", &del_str,
"(O)", target);
else
res = call_method(self, "__set__", &set_str,