[Python-checkins] r45643 - in python/trunk/Modules: cjkcodecs/multibytecodec.c operator.c posixmodule.c

martin.v.loewis python-checkins at python.org
Sat Apr 22 13:15:43 CEST 2006


Author: martin.v.loewis
Date: Sat Apr 22 13:15:41 2006
New Revision: 45643

Modified:
   python/trunk/Modules/cjkcodecs/multibytecodec.c
   python/trunk/Modules/operator.c
   python/trunk/Modules/posixmodule.c
Log:
Fix more ssize_t problems.

Modified: python/trunk/Modules/cjkcodecs/multibytecodec.c
==============================================================================
--- python/trunk/Modules/cjkcodecs/multibytecodec.c	(original)
+++ python/trunk/Modules/cjkcodecs/multibytecodec.c	Sat Apr 22 13:15:41 2006
@@ -831,7 +831,7 @@
 {
 	while (buf->inbuf < buf->inbuf_end) {
 		Py_ssize_t inleft, outleft;
-		int r;
+		Py_ssize_t r;
 
 		inleft = (Py_ssize_t)(buf->inbuf_end - buf->inbuf);
 		outleft = (Py_ssize_t)(buf->outbuf_end - buf->outbuf);

Modified: python/trunk/Modules/operator.c
==============================================================================
--- python/trunk/Modules/operator.c	(original)
+++ python/trunk/Modules/operator.c	Sat Apr 22 13:15:41 2006
@@ -48,6 +48,12 @@
   if(-1 == (r=AOP(a1,a2))) return NULL; \
   return PyInt_FromLong(r); }
 
+#define spamn2(OP,AOP) static PyObject *OP(PyObject *s, PyObject *a) { \
+  PyObject *a1, *a2; Py_ssize_t r; \
+  if(! PyArg_UnpackTuple(a,#OP,2,2,&a1,&a2)) return NULL; \
+  if(-1 == (r=AOP(a1,a2))) return NULL; \
+  return PyInt_FromSsize_t(r); }
+
 #define spami2b(OP,AOP) static PyObject *OP(PyObject *s, PyObject *a) { \
   PyObject *a1, *a2; long r; \
   if(! PyArg_UnpackTuple(a,#OP,2,2,&a1,&a2)) return NULL; \
@@ -99,8 +105,8 @@
 spamoi(op_irepeat      , PySequence_InPlaceRepeat)
 spami2b(op_contains     , PySequence_Contains)
 spami2b(sequenceIncludes, PySequence_Contains)
-spami2(indexOf         , PySequence_Index)
-spami2(countOf         , PySequence_Count)
+spamn2(indexOf         , PySequence_Index)
+spamn2(countOf         , PySequence_Count)
 spami(isMappingType    , PyMapping_Check)
 spam2(op_getitem       , PyObject_GetItem)
 spam2n(op_delitem       , PyObject_DelItem)

Modified: python/trunk/Modules/posixmodule.c
==============================================================================
--- python/trunk/Modules/posixmodule.c	(original)
+++ python/trunk/Modules/posixmodule.c	Sat Apr 22 13:15:41 2006
@@ -2440,7 +2440,7 @@
 	PyObject *key, *val, *keys=NULL, *vals=NULL;
 	Py_ssize_t i, pos, argc, envc;
 	PyObject *(*getitem)(PyObject *, Py_ssize_t);
-	int lastarg = 0;
+	Py_ssize_t lastarg = 0;
 
 	/* execve has three arguments: (path, argv, env), where
 	   argv is a list or tuple of strings and env is a dictionary
@@ -2581,7 +2581,8 @@
 	char *path;
 	PyObject *argv;
 	char **argvlist;
-	int mode, i, argc;
+	int mode, i;
+	Py_ssize_t argc;
 	Py_intptr_t spawnval;
 	PyObject *(*getitem)(PyObject *, Py_ssize_t);
 
@@ -2670,10 +2671,11 @@
 	char **argvlist;
 	char **envlist;
 	PyObject *key, *val, *keys=NULL, *vals=NULL, *res=NULL;
-	int mode, i, pos, argc, envc;
+	int mode, pos, envc;
+	Py_ssize_t argc, i;
 	Py_intptr_t spawnval;
 	PyObject *(*getitem)(PyObject *, Py_ssize_t);
-	int lastarg = 0;
+	Py_ssize_t lastarg = 0;
 
 	/* spawnve has four arguments: (mode, path, argv, env), where
 	   argv is a list or tuple of strings and env is a dictionary
@@ -4374,7 +4376,7 @@
 			char modulepath[_MAX_PATH];
 			struct stat statinfo;
 			GetModuleFileName(NULL, modulepath, sizeof(modulepath));
-			for (i = x = 0; modulepath[i]; i++)
+			for (x = i = 0; modulepath[i]; i++)
 				if (modulepath[i] == SEP)
 					x = i+1;
 			modulepath[x] = '\0';


More information about the Python-checkins mailing list