[Python-checkins] python/dist/src/Python bltinmodule.c,2.279,2.280
doerwalter@users.sourceforge.net
doerwalter@users.sourceforge.net
Mon, 10 Feb 2003 09:36:43 -0800
Update of /cvsroot/python/python/dist/src/Python
In directory sc8-pr-cvs1:/tmp/cvs-serv28462/Python
Modified Files:
bltinmodule.c
Log Message:
Change filtertuple() to use tp_as_sequence->sq_item
instead of PyTuple_GetItem, so an overwritten __getitem__
in a tuple subclass works. SF bug #665835.
Index: bltinmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/bltinmodule.c,v
retrieving revision 2.279
retrieving revision 2.280
diff -C2 -d -r2.279 -r2.280
*** bltinmodule.c 10 Feb 2003 14:48:29 -0000 2.279
--- bltinmodule.c 10 Feb 2003 17:36:40 -0000 2.280
***************
*** 1889,1894 ****
int ok;
! if ((item = PyTuple_GetItem(tuple, i)) == NULL)
goto Fail_1;
if (func == Py_None) {
Py_INCREF(item);
--- 1889,1899 ----
int ok;
! if (tuple->ob_type->tp_as_sequence &&
! tuple->ob_type->tp_as_sequence->sq_item) {
! item = tuple->ob_type->tp_as_sequence->sq_item(tuple, i);
! } else {
! PyErr_SetString(PyExc_TypeError, "unsubscriptable object");
goto Fail_1;
+ }
if (func == Py_None) {
Py_INCREF(item);