Use Py_ssize_t to count the
authorMartin v. Löwis <martin@v.loewis.de>
Thu, 16 Feb 2006 14:37:16 +0000 (14:37 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Thu, 16 Feb 2006 14:37:16 +0000 (14:37 +0000)
Python/bltinmodule.c
Python/errors.c
Python/getargs.c
Python/modsupport.c
Python/symtable.c
Python/sysmodule.c
Python/traceback.c

index 4f607d6fe8d05b4e256d3b4ebff532503bd749cf..c92499d2e567d2a9c318bb5cac62b98a57eb25d5 100644 (file)
@@ -193,8 +193,8 @@ static PyObject *
 builtin_filter(PyObject *self, PyObject *args)
 {
        PyObject *func, *seq, *result, *it, *arg;
-       int len;   /* guess for result list size */
-       register int j;
+       Py_ssize_t len;   /* guess for result list size */
+       register Py_ssize_t j;
 
        if (!PyArg_UnpackTuple(args, "filter", 2, 2, &func, &seq))
                return NULL;
@@ -860,7 +860,7 @@ builtin_map(PyObject *self, PyObject *args)
        len = 0;
        for (i = 0, sqp = seqs; i < n; ++i, ++sqp) {
                PyObject *curseq;
-               int curlen;
+               Py_ssize_t curlen;
 
                /* Get iterator. */
                curseq = PyTuple_GetItem(args, i+1);
@@ -1338,7 +1338,7 @@ static PyObject *
 builtin_ord(PyObject *self, PyObject* obj)
 {
        long ord;
-       int size;
+       Py_ssize_t size;
 
        if (PyString_Check(obj)) {
                size = PyString_GET_SIZE(obj);
@@ -1363,7 +1363,7 @@ builtin_ord(PyObject *self, PyObject* obj)
 
        PyErr_Format(PyExc_TypeError,
                     "ord() expected a character, "
-                    "but string of length %d found",
+                    "but string of length %zd found",
                     size);
        return NULL;
 }
@@ -2094,10 +2094,10 @@ static PyObject*
 builtin_zip(PyObject *self, PyObject *args)
 {
        PyObject *ret;
-       const int itemsize = PySequence_Length(args);
-       int i;
+       const Py_ssize_t itemsize = PySequence_Length(args);
+       Py_ssize_t i;
        PyObject *itlist;  /* tuple of iterators */
-       int len;           /* guess at result length */
+       Py_ssize_t len;    /* guess at result length */
 
        if (itemsize == 0)
                return PyList_New(0);
@@ -2111,7 +2111,7 @@ builtin_zip(PyObject *self, PyObject *args)
        len = -1;       /* unknown */
        for (i = 0; i < itemsize; ++i) {
                PyObject *item = PyTuple_GET_ITEM(args, i);
-               int thislen = _PyObject_LengthHint(item);
+               Py_ssize_t thislen = _PyObject_LengthHint(item);
                if (thislen < 0) {
                        if (!PyErr_ExceptionMatches(PyExc_TypeError)  &&
                            !PyErr_ExceptionMatches(PyExc_AttributeError)) {
@@ -2460,7 +2460,7 @@ filterstring(PyObject *func, PyObject *strobj)
                        Py_DECREF(good);
                }
                if (ok) {
-                       int reslen;
+                       Py_ssize_t reslen;
                        if (!PyString_Check(item)) {
                                PyErr_SetString(PyExc_TypeError, "can't filter str to str:"
                                        " __getitem__ returned different type");
@@ -2473,7 +2473,7 @@ filterstring(PyObject *func, PyObject *strobj)
                                        PyString_AS_STRING(item)[0];
                        } else {
                                /* do we need more space? */
-                               int need = j + reslen + len-i-1;
+                               Py_ssize_t need = j + reslen + len-i-1;
                                if (need > outlen) {
                                        /* overallocate, to avoid reallocations */
                                        if (need<2*outlen)
@@ -2513,8 +2513,8 @@ filterunicode(PyObject *func, PyObject *strobj)
 {
        PyObject *result;
        register int i, j;
-       int len = PyUnicode_GetSize(strobj);
-       int outlen = len;
+       Py_ssize_t len = PyUnicode_GetSize(strobj);
+       Py_ssize_t outlen = len;
 
        if (func == Py_None) {
                /* If it's a real string we can return the original,
@@ -2554,7 +2554,7 @@ filterunicode(PyObject *func, PyObject *strobj)
                        Py_DECREF(good);
                }
                if (ok) {
-                       int reslen;
+                       Py_ssize_t reslen;
                        if (!PyUnicode_Check(item)) {
                                PyErr_SetString(PyExc_TypeError,
                                "can't filter unicode to unicode:"
@@ -2568,7 +2568,7 @@ filterunicode(PyObject *func, PyObject *strobj)
                                        PyUnicode_AS_UNICODE(item)[0];
                        else {
                                /* do we need more space? */
-                               int need = j + reslen + len - i - 1;
+                               Py_ssize_t need = j + reslen + len - i - 1;
                                if (need > outlen) {
                                        /* overallocate,
                                           to avoid reallocations */
index ce36fc1dee2671431cf4da37e0a81134b3615d44..ace63ffd8115fd7c1949d23059d6f4d39893d678 100644 (file)
@@ -83,7 +83,7 @@ PyErr_GivenExceptionMatches(PyObject *err, PyObject *exc)
                return 0;
        }
        if (PyTuple_Check(exc)) {
-               int i, n;
+               Py_ssize_t i, n;
                n = PyTuple_Size(exc);
                for (i = 0; i < n; i++) {
                        /* Test recursively */
index 06155771fb3e0c1bdf3e979dbf79e1fba81548a2..273cb43da2a20292abd39a8f1a48f30775a4d767 100644 (file)
@@ -153,7 +153,7 @@ cleanreturn(int retval, PyObject *freelist)
 {
        if(freelist) {
                if((retval) == 0) {
-                       int len = PyList_GET_SIZE(freelist), i;
+                       Py_ssize_t len = PyList_GET_SIZE(freelist), i;
                        for (i = 0; i < len; i++)
                                 PyMem_FREE(PyCObject_AsVoidPtr(
                                                PyList_GET_ITEM(freelist, i)));
@@ -176,7 +176,7 @@ vgetargs1(PyObject *args, const char *format, va_list *p_va, int flags)
        int level = 0;
        int endfmt = 0;
        const char *formatsave = format;
-       int i, len;
+       Py_ssize_t i, len;
        char *msg;
        PyObject *freelist = NULL;
        int compat = flags & FLAG_COMPAT;
index f92fc341a8e7bc9975a4208df018ddc92c13b6c9..2356a9e57eeb21b16071872469e8691a400ac3b3 100644 (file)
@@ -315,7 +315,7 @@ do_mkvalue(const char **p_format, va_list *p_va)
                
                case 'n':
 #if SIZEOF_SIZE_T!=SIZEOF_LONG
-                       return PyLong_FromSsize_t(va_arg(*p_va, Py_Ssize_t));
+                       return PyInt_FromSsize_t(va_arg(*p_va, Py_ssize_t));
 #endif
                        /* Fall through from 'n' to 'l' if Py_ssize_t is long */
                case 'l':
index 7f3f5db9e1b1deb039314841682e135a0664c6e3..fd95bd56dcf5fe81f61f89493433b83daf8212a9 100644 (file)
@@ -715,7 +715,7 @@ symtable_warn(struct symtable *st, char *msg, int lineno)
 static int
 symtable_exit_block(struct symtable *st, void *ast)
 {
-       int end;
+       Py_ssize_t end;
 
        Py_DECREF(st->st_cur);
        end = PyList_GET_SIZE(st->st_stack) - 1;
index b240cc744e181aea0610af95ae142a077b6dce48..43c010b8522ffdd0014d0c5c6d80181669436fcd 100644 (file)
@@ -947,7 +947,8 @@ static void
 svnversion_init(void)
 {
        const char *python, *br_start, *br_end, *br_end2, *svnversion;
-       int len, istag;
+       Py_ssize_t len;
+       int istag;
 
        if (svn_initialized)
                return;
index b58e8adceb42c8f9934469f65a79558ce52de072..7b83d8b02d6603a155c232393e9de9cad6a3b83f 100644 (file)
@@ -153,7 +153,8 @@ tb_displayline(PyObject *f, char *filename, int lineno, char *name)
                        tail++;
                path = PySys_GetObject("path");
                if (path != NULL && PyList_Check(path)) {
-                       int npath = PyList_Size(path);
+                       Py_ssize_t _npath = PyList_Size(path);
+                       int npath = Py_SAFE_DOWNCAST(_npath, Py_ssize_t, int);
                        size_t taillen = strlen(tail);
                        char namebuf[MAXPATHLEN+1];
                        for (i = 0; i < npath; i++) {