]> granicus.if.org Git - python/commitdiff
Only call sq_length in Sequence_GetItem for negative index.
authorGuido van Rossum <guido@python.org>
Sat, 9 Nov 1996 22:32:05 +0000 (22:32 +0000)
committerGuido van Rossum <guido@python.org>
Sat, 9 Nov 1996 22:32:05 +0000 (22:32 +0000)
Objects/abstract.c

index bb197a5796970d765b6bf5e66ad959d6f43f9db5..8d07cfa12d7be45e663380aceb6e1c5cbfff6c19 100644 (file)
@@ -666,12 +666,14 @@ PySequence_GetItem(s, i)
 
   if(! s) return Py_ReturnNullError();
 
-  if(! ((m=s->ob_type->tp_as_sequence) && m->sq_length && m->sq_item))
+  if(! ((m=s->ob_type->tp_as_sequence) && m->sq_item))
     return Py_ReturnMethodError("__getitem__");  
 
-  if(0 > (l=m->sq_length(s))) return NULL;
-
-  if(i < 0) i += l;
+  if(i < 0)
+    {
+      if(0 > (l=m->sq_length(s))) return NULL;
+      i += l;
+    }
       
   return m->sq_item(s,i);
 }