[Python-checkins] commit of r41773 - in python/branches/ssize_t: Include/object.h Modules/_elementtree.c Modules/arraymodule.c Modules/collectionsmodule.c Modules/mmapmodule.c Objects/bufferobject.c Objects/classobject.c Objects/listobject.c Objects/typeobject.c Python/getargs.c

martin.v.loewis python-checkins at python.org
Tue Dec 20 08:20:43 CET 2005


Author: martin.v.loewis
Date: Tue Dec 20 08:20:38 2005
New Revision: 41773

Modified:
   python/branches/ssize_t/Include/object.h
   python/branches/ssize_t/Modules/_elementtree.c
   python/branches/ssize_t/Modules/arraymodule.c
   python/branches/ssize_t/Modules/collectionsmodule.c
   python/branches/ssize_t/Modules/mmapmodule.c
   python/branches/ssize_t/Objects/bufferobject.c
   python/branches/ssize_t/Objects/classobject.c
   python/branches/ssize_t/Objects/listobject.c
   python/branches/ssize_t/Objects/typeobject.c
   python/branches/ssize_t/Python/getargs.c
Log:
Make ass_item use Py_ssize_t also.


Modified: python/branches/ssize_t/Include/object.h
==============================================================================
--- python/branches/ssize_t/Include/object.h	(original)
+++ python/branches/ssize_t/Include/object.h	Tue Dec 20 08:20:38 2005
@@ -135,7 +135,7 @@
 typedef PyObject *(*ssizessizeargfunc)(PyObject *, Py_ssize_t, Py_ssize_t);
 typedef int(*intobjargproc)(PyObject *, int, PyObject *);
 typedef int(*intintobjargproc)(PyObject *, int, int, PyObject *);
-typedef int(*sizeobjargproc)(PyObject *, size_t, PyObject *);
+typedef int(*ssizeobjargproc)(PyObject *, Py_ssize_t, PyObject *);
 typedef int(*ssizessizeobjargproc)(PyObject *, Py_ssize_t, Py_ssize_t, PyObject *);
 typedef int(*objobjargproc)(PyObject *, PyObject *, PyObject *);
 typedef Py_ssize_t (*getreadbufferproc)(PyObject *, int, void **);
@@ -205,7 +205,7 @@
 	ssizeargfunc sq_repeat;
 	ssizeargfunc sq_item;
 	ssizessizeargfunc sq_slice;
-	sizeobjargproc sq_ass_item;
+	ssizeobjargproc sq_ass_item;
 	ssizessizeobjargproc sq_ass_slice;
 	objobjproc sq_contains;
 	/* Added in release 2.0 */

Modified: python/branches/ssize_t/Modules/_elementtree.c
==============================================================================
--- python/branches/ssize_t/Modules/_elementtree.c	(original)
+++ python/branches/ssize_t/Modules/_elementtree.c	Tue Dec 20 08:20:38 2005
@@ -916,7 +916,7 @@
 }
 
 static PyObject*
-element_getitem(ElementObject* self, int index)
+element_getitem(ElementObject* self, Py_ssize_t index)
 {
     if (!self->extra || index < 0 || index >= self->extra->length) {
         PyErr_SetString(
@@ -931,9 +931,9 @@
 }
 
 static PyObject*
-element_getslice(ElementObject* self, int start, int end)
+element_getslice(ElementObject* self, Py_ssize_t start, Py_ssize_t end)
 {
-    int i;
+    Py_ssize_t i;
     PyObject* list;
 
     if (!self->extra)
@@ -1158,7 +1158,7 @@
 }
 
 static int
-element_setslice(ElementObject* self, int start, int end, PyObject* item)
+element_setslice(ElementObject* self, Py_ssize_t start, Py_ssize_t end, PyObject* item)
 {
     int i, new, old;
     PyObject* recycle = NULL;
@@ -2142,7 +2142,7 @@
     for (i = 0; i < 256; i++)
         s[i] = i;
     
-    u = PyUnicode_Decode(s, 256, name, "replace");
+    u = PyUnicode_Decode((char*)s, 256, name, "replace");
     if (!u)
         return XML_STATUS_ERROR;
 

Modified: python/branches/ssize_t/Modules/arraymodule.c
==============================================================================
--- python/branches/ssize_t/Modules/arraymodule.c	(original)
+++ python/branches/ssize_t/Modules/arraymodule.c	Tue Dec 20 08:20:38 2005
@@ -760,9 +760,8 @@
 #undef b
 }
 
-/* XXX should be ssize_t */
 static int
-array_ass_item(arrayobject *a, size_t i, PyObject *v)
+array_ass_item(arrayobject *a, Py_ssize_t i, PyObject *v)
 {
 	if (i < 0 || i >= a->ob_size) {
 		PyErr_SetString(PyExc_IndexError,
@@ -1707,7 +1706,7 @@
 			if (av->ob_size != slicelength) {
 				PyErr_Format(PyExc_ValueError,
             "attempt to assign array of size %ld to extended slice of size %ld",
-					     av->ob_size, slicelength);
+					     /*XXX*/(long)av->ob_size, /*XXX*/(long)slicelength);
 				return -1;
 			}
 
@@ -1786,7 +1785,7 @@
 	(ssizeargfunc)array_repeat,		/*sq_repeat*/
 	(ssizeargfunc)array_item,		        /*sq_item*/
 	(ssizessizeargfunc)array_slice,		/*sq_slice*/
-	(sizeobjargproc)array_ass_item,		/*sq_ass_item*/
+	(ssizeobjargproc)array_ass_item,		/*sq_ass_item*/
 	(ssizessizeobjargproc)array_ass_slice,	/*sq_ass_slice*/
 	(objobjproc)array_contains,		/*sq_contains*/
 	(binaryfunc)array_inplace_concat,	/*sq_inplace_concat*/

Modified: python/branches/ssize_t/Modules/collectionsmodule.c
==============================================================================
--- python/branches/ssize_t/Modules/collectionsmodule.c	(original)
+++ python/branches/ssize_t/Modules/collectionsmodule.c	Tue Dec 20 08:20:38 2005
@@ -314,7 +314,7 @@
 "Extend the left side of the deque with elements from the iterable");
 
 static int
-_deque_rotate(dequeobject *deque, int n)
+_deque_rotate(dequeobject *deque, Py_ssize_t n)
 {
 	int i, len=deque->len, halflen=(len+1)>>1;
 	PyObject *item, *rv;
@@ -374,7 +374,7 @@
 static PyObject *
 deque_remove(dequeobject *deque, PyObject *value)
 {
-	int i, n=deque->len;
+	Py_ssize_t i, n=deque->len;
 
 	for (i=0 ; i<n ; i++) {
 		PyObject *item = deque->leftblock->data[deque->leftindex];
@@ -469,7 +469,7 @@
 */
 
 static int
-deque_del_item(dequeobject *deque, int i)
+deque_del_item(dequeobject *deque, Py_ssize_t i)
 {
 	PyObject *item;
 
@@ -485,7 +485,7 @@
 }
 
 static int
-deque_ass_item(dequeobject *deque, int i, PyObject *v)
+deque_ass_item(dequeobject *deque, Py_ssize_t i, PyObject *v)
 {
 	PyObject *old_value;
 	block *b;
@@ -781,7 +781,7 @@
 	0,				/* sq_repeat */
 	(ssizeargfunc)deque_item,	/* sq_item */
 	0,				/* sq_slice */
-	(sizeobjargproc)deque_ass_item,	/* sq_ass_item */
+	(ssizeobjargproc)deque_ass_item,	/* sq_ass_item */
 };
 
 /* deque object ********************************************************/

Modified: python/branches/ssize_t/Modules/mmapmodule.c
==============================================================================
--- python/branches/ssize_t/Modules/mmapmodule.c	(original)
+++ python/branches/ssize_t/Modules/mmapmodule.c	Tue Dec 20 08:20:38 2005
@@ -641,7 +641,7 @@
 }
 
 static PyObject *
-mmap_item(mmap_object *self, int i)
+mmap_item(mmap_object *self, Py_ssize_t i)
 {
 	CHECK_VALID(NULL);
 	if (i < 0 || (size_t)i >= self->size) {
@@ -652,7 +652,7 @@
 }
 
 static PyObject *
-mmap_slice(mmap_object *self, int ilow, int ihigh)
+mmap_slice(mmap_object *self, Py_ssize_t ilow, Py_ssize_t ihigh)
 {
 	CHECK_VALID(NULL);
 	if (ilow < 0)
@@ -679,7 +679,7 @@
 }
 
 static PyObject *
-mmap_repeat(mmap_object *self, int n)
+mmap_repeat(mmap_object *self, Py_ssize_t n)
 {
 	CHECK_VALID(NULL);
 	PyErr_SetString(PyExc_SystemError,
@@ -688,7 +688,7 @@
 }
 
 static int
-mmap_ass_slice(mmap_object *self, int ilow, int ihigh, PyObject *v)
+mmap_ass_slice(mmap_object *self, Py_ssize_t ilow, Py_ssize_t ihigh, PyObject *v)
 {
 	const char *buf;
 
@@ -727,7 +727,7 @@
 }
 
 static int
-mmap_ass_item(mmap_object *self, int i, PyObject *v)
+mmap_ass_item(mmap_object *self, Py_ssize_t i, PyObject *v)
 {
 	const char *buf;
  
@@ -757,10 +757,10 @@
 	(inquiry)mmap_length,		       /*sq_length*/
 	(binaryfunc)mmap_concat,	       /*sq_concat*/
 	(ssizeargfunc)mmap_repeat,	       /*sq_repeat*/
-	(ssizeargfunc)mmap_item,	       /*sq_item*/
+	(ssizeargfunc)mmap_item,		       /*sq_item*/
 	(ssizessizeargfunc)mmap_slice,	       /*sq_slice*/
-	(sizeobjargproc)mmap_ass_item,	       /*sq_ass_item*/
-	(ssizessizeobjargproc)mmap_ass_slice,  /*sq_ass_slice*/
+	(ssizeobjargproc)mmap_ass_item,	       /*sq_ass_item*/
+	(ssizessizeobjargproc)mmap_ass_slice,      /*sq_ass_slice*/
 };
 
 static PyBufferProcs mmap_as_buffer = {

Modified: python/branches/ssize_t/Objects/bufferobject.c
==============================================================================
--- python/branches/ssize_t/Objects/bufferobject.c	(original)
+++ python/branches/ssize_t/Objects/bufferobject.c	Tue Dec 20 08:20:38 2005
@@ -445,7 +445,7 @@
 	if (!get_buf(self, &ptr1, &size))
 		return -1;
 
-	if (idx >= size) {
+	if (idx < 0 || idx >= size) {
 		PyErr_SetString(PyExc_IndexError,
 				"buffer assignment index out of range");
 		return -1;
@@ -599,7 +599,7 @@
 	(ssizeargfunc)buffer_repeat, /*sq_repeat*/
 	(ssizeargfunc)buffer_item, /*sq_item*/
 	(ssizessizeargfunc)buffer_slice, /*sq_slice*/
-	(sizeobjargproc)buffer_ass_item, /*sq_ass_item*/
+	(ssizeobjargproc)buffer_ass_item, /*sq_ass_item*/
 	(ssizessizeobjargproc)buffer_ass_slice, /*sq_ass_slice*/
 };
 

Modified: python/branches/ssize_t/Objects/classobject.c
==============================================================================
--- python/branches/ssize_t/Objects/classobject.c	(original)
+++ python/branches/ssize_t/Objects/classobject.c	Tue Dec 20 08:20:38 2005
@@ -1145,7 +1145,7 @@
 
 
 static PyObject *
-instance_slice(PyInstanceObject *inst, int i, int j)
+instance_slice(PyInstanceObject *inst, Py_ssize_t i, Py_ssize_t j)
 {
 	PyObject *func, *arg, *res;
 	static PyObject *getslicestr;
@@ -1179,7 +1179,7 @@
 }
 
 static int
-instance_ass_item(PyInstanceObject *inst, int i, PyObject *item)
+instance_ass_item(PyInstanceObject *inst, Py_ssize_t i, PyObject *item)
 {
 	PyObject *func, *arg, *res;
 
@@ -1213,7 +1213,7 @@
 }
 
 static int
-instance_ass_slice(PyInstanceObject *inst, int i, int j, PyObject *value)
+instance_ass_slice(PyInstanceObject *inst, Py_ssize_t i, Py_ssize_t j, PyObject *value)
 {
 	PyObject *func, *arg, *res;
 	static PyObject *setslicestr, *delslicestr;
@@ -1327,7 +1327,7 @@
 	0,					/* sq_repeat */
 	(ssizeargfunc)instance_item,		/* sq_item */
 	(ssizessizeargfunc)instance_slice,	/* sq_slice */
-	(sizeobjargproc)instance_ass_item,	/* sq_ass_item */
+	(ssizeobjargproc)instance_ass_item,	/* sq_ass_item */
 	(ssizessizeobjargproc)instance_ass_slice,/* sq_ass_slice */
 	(objobjproc)instance_contains,		/* sq_contains */
 };

Modified: python/branches/ssize_t/Objects/listobject.c
==============================================================================
--- python/branches/ssize_t/Objects/listobject.c	(original)
+++ python/branches/ssize_t/Objects/listobject.c	Tue Dec 20 08:20:38 2005
@@ -2438,7 +2438,7 @@
 	(ssizeargfunc)list_repeat,		/* sq_repeat */
 	(ssizeargfunc)list_item,		/* sq_item */
 	(ssizessizeargfunc)list_slice,		/* sq_slice */
-	(sizeobjargproc)list_ass_item,		/* sq_ass_item */
+	(ssizeobjargproc)list_ass_item,		/* sq_ass_item */
 	(ssizessizeobjargproc)list_ass_slice,	/* sq_ass_slice */
 	(objobjproc)list_contains,		/* sq_contains */
 	(binaryfunc)list_inplace_concat,	/* sq_inplace_concat */

Modified: python/branches/ssize_t/Objects/typeobject.c
==============================================================================
--- python/branches/ssize_t/Objects/typeobject.c	(original)
+++ python/branches/ssize_t/Objects/typeobject.c	Tue Dec 20 08:20:38 2005
@@ -4102,7 +4102,7 @@
 /* Super-optimized version of slot_sq_item.
    Other slots could do the same... */
 static PyObject *
-slot_sq_item(PyObject *self, int i)
+slot_sq_item(PyObject *self, Py_ssize_t i)
 {
 	static PyObject *getitem_str;
 	PyObject *func, *args = NULL, *ival = NULL, *retval = NULL;
@@ -4144,10 +4144,10 @@
 	return NULL;
 }
 
-SLOT2(slot_sq_slice, "__getslice__", int, int, "ii")
+SLOT2(slot_sq_slice, "__getslice__", Py_ssize_t, Py_ssize_t, "nn")
 
 static int
-slot_sq_ass_item(PyObject *self, int index, PyObject *value)
+slot_sq_ass_item(PyObject *self, Py_ssize_t index, PyObject *value)
 {
 	PyObject *res;
 	static PyObject *delitem_str, *setitem_str;
@@ -4165,7 +4165,7 @@
 }
 
 static int
-slot_sq_ass_slice(PyObject *self, int i, int j, PyObject *value)
+slot_sq_ass_slice(PyObject *self, Py_ssize_t i, Py_ssize_t j, PyObject *value)
 {
 	PyObject *res;
 	static PyObject *delslice_str, *setslice_str;

Modified: python/branches/ssize_t/Python/getargs.c
==============================================================================
--- python/branches/ssize_t/Python/getargs.c	(original)
+++ python/branches/ssize_t/Python/getargs.c	Tue Dec 20 08:20:38 2005
@@ -652,7 +652,7 @@
 		break;
 	}
 #endif
-	/* Fall through from 'L' to 'l' if Py_ssize_t is int */
+	/* Fall through from 'n' to 'l' if Py_ssize_t is int */
 	case 'l': {/* long int */
 		long *p = va_arg(*p_va, long *);
 		long ival;


More information about the Python-checkins mailing list