diff Objects/stringobject.c @ 39544:01034018e8b2

Make the it_index field in the str/unicode iterators Py_ssize_t's. Test the new iterators on str/unicode.
author Guido van Rossum <guido@python.org>
date Thu, 17 Aug 2006 21:11:47 +0000
parents 8f5b9982beba
children 3674f20ac781
line wrap: on
line diff
--- a/Objects/stringobject.c	Thu Aug 17 20:24:18 2006 +0000
+++ b/Objects/stringobject.c	Thu Aug 17 21:11:47 2006 +0000
@@ -4992,7 +4992,7 @@
 
 typedef struct {
 	PyObject_HEAD
-	long it_index;
+	Py_ssize_t it_index;
 	PyStringObject *it_seq; /* Set to NULL when iterator is exhausted */
 } striterobject;
 
@@ -5024,7 +5024,8 @@
 	assert(PyString_Check(seq));
 
 	if (it->it_index < PyString_GET_SIZE(seq)) {
-		item = PyString_FromStringAndSize(PyString_AS_STRING(seq)+it->it_index, 1);
+		item = PyString_FromStringAndSize(
+			PyString_AS_STRING(seq)+it->it_index, 1);
 		if (item != NULL)
 			++it->it_index;
 		return item;
@@ -5044,18 +5045,20 @@
 	return PyInt_FromSsize_t(len);
 }
 
-PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
+PyDoc_STRVAR(length_hint_doc,
+	     "Private method returning an estimate of len(list(it)).");
 
 static PyMethodDef striter_methods[] = {
-	{"__length_hint__", (PyCFunction)striter_len, METH_NOARGS, length_hint_doc},
+	{"__length_hint__", (PyCFunction)striter_len, METH_NOARGS,
+	 length_hint_doc},
  	{NULL,		NULL}		/* sentinel */
 };
 
 PyTypeObject PyStringIter_Type = {
 	PyObject_HEAD_INIT(&PyType_Type)
 	0,					/* ob_size */
-	"striterator",			/* tp_name */
-	sizeof(striterobject),		/* tp_basicsize */
+	"striterator",				/* tp_name */
+	sizeof(striterobject),			/* tp_basicsize */
 	0,					/* tp_itemsize */
 	/* methods */
 	(destructor)striter_dealloc,		/* tp_dealloc */