[Python-checkins] CVS: python/dist/src/Objects typeobject.c,2.19,2.20

Guido van Rossum gvanrossum@users.sourceforge.net
Thu, 02 Aug 2001 08:32:00 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv3131

Modified Files:
	typeobject.c 
Log Message:
Fix SF #442791 (revisited): No __delitem__ wrapper was defined.


Index: typeobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/typeobject.c,v
retrieving revision 2.19
retrieving revision 2.20
diff -C2 -d -r2.19 -r2.20
*** typeobject.c	2001/08/02 04:15:00	2.19
--- typeobject.c	2001/08/02 15:31:58	2.20
***************
*** 1505,1511 ****
--- 1505,1528 ----
  }
  
+ 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}
  };
***************
*** 1571,1577 ****
--- 1588,1612 ----
  }
  
+ 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}
  };