]> granicus.if.org Git - python/commitdiff
Fix new compiler warnings. Also boost "start" from (C) int to long and
authorTim Peters <tim.peters@gmail.com>
Mon, 14 May 2001 23:19:12 +0000 (23:19 +0000)
committerTim Peters <tim.peters@gmail.com>
Mon, 14 May 2001 23:19:12 +0000 (23:19 +0000)
return a (C) long:  PyArg_ParseTuple and Py_BuildValue may not let us get
at the size_t we really want, but C int is clearly too small for a 64-bit
box, and both the start parameter and the return value should work for
large mapped files even on 32-bit boxes.  The code really needs to be
rethought from scratch (not by me, though ...).

Modules/mmapmodule.c

index acf85a40388f6abe36a01be20fc044d648c63de8..63ef72a7f36d8c83d418eb60db1a93b144e00108 100644 (file)
@@ -224,12 +224,12 @@ static PyObject *
 mmap_find_method(mmap_object *self,
                 PyObject *args)
 {
-       int start = self->pos;
+       long start = self->pos;
        char *needle;
        int len;
 
        CHECK_VALID(NULL);
-       if (!PyArg_ParseTuple (args, "s#|i:find", &needle, &len, &start)) {
+       if (!PyArg_ParseTuple (args, "s#|l:find", &needle, &len, &start)) {
                return NULL;
        } else {
                char *p;
@@ -239,7 +239,7 @@ mmap_find_method(mmap_object *self,
                     start += self->size;
                 if (start < 0)
                     start = 0;
-                else if (start > self->size)
+                else if ((size_t)start > self->size)
                     start = self->size;
                 p = self->data + start;
 
@@ -251,8 +251,8 @@ mmap_find_method(mmap_object *self,
                        }
                        if (!*n) {
                                return Py_BuildValue (
-                                       "i",
-                                       (int) (p - self->data));
+                                       "l",
+                                       (long) (p - self->data));
                        }
                        p++;
                }