summaryrefslogtreecommitdiff
path: root/Objects/tupleobject.c
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2006-08-12 17:03:09 +0000
committerNeal Norwitz <nnorwitz@gmail.com>2006-08-12 17:03:09 +0000
commit2592e579304b75f2474a2758bd299cfdcb038b42 (patch)
tree26c872d0a54c82e4112bb393cf3612205ee5d76b /Objects/tupleobject.c
parent103ef578717f79e07845c3961c33271370ef9611 (diff)
downloadcpython-2592e579304b75f2474a2758bd299cfdcb038b42.tar.gz
Patch #1538606, Patch to fix __index__() clipping.
I modified this patch some by fixing style, some error checking, and adding XXX comments. This patch requires review and some changes are to be expected. I'm checking in now to get the greatest possible review and establish a baseline for moving forward. I don't want this to hold up release if possible.
Diffstat (limited to 'Objects/tupleobject.c')
-rw-r--r--Objects/tupleobject.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 2161ab9ec1..6f3711f1f4 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -577,14 +577,11 @@ static PySequenceMethods tuple_as_sequence = {
(objobjproc)tuplecontains, /* sq_contains */
};
-#define HASINDEX(o) PyType_HasFeature((o)->ob_type, Py_TPFLAGS_HAVE_INDEX)
-
static PyObject*
tuplesubscript(PyTupleObject* self, PyObject* item)
{
- PyNumberMethods *nb = item->ob_type->tp_as_number;
- if (nb != NULL && HASINDEX(item) && nb->nb_index != NULL) {
- Py_ssize_t i = nb->nb_index(item);
+ if (PyIndex_Check(item)) {
+ Py_ssize_t i = PyNumber_AsSsize_t(item, PyExc_IndexError);
if (i == -1 && PyErr_Occurred())
return NULL;
if (i < 0)