]> granicus.if.org Git - python/commitdiff
Cleanup the code a bit. test_rfind is failing on PPC and PPC64 buildbots,
authorNeal Norwitz <nnorwitz@gmail.com>
Sat, 26 Jan 2008 20:24:36 +0000 (20:24 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Sat, 26 Jan 2008 20:24:36 +0000 (20:24 +0000)
this might fix the problem.

Modules/mmapmodule.c

index bc153c96a6c03a0fd27af2fcba21bfa71965e8b0..e808d875852a5735b454bb4b0fc255a56b5abe22 100644 (file)
@@ -253,8 +253,8 @@ mmap_gfind(mmap_object *self,
           int reverse)
 {
        Py_ssize_t start = self->pos;
-        Py_ssize_t end = self->size;
-       char *needle;
+       Py_ssize_t end = self->size;
+       const char *needle;
        Py_ssize_t len;
 
        CHECK_VALID(NULL);
@@ -262,7 +262,7 @@ mmap_gfind(mmap_object *self,
                              &needle, &len, &start, &end)) {
                return NULL;
        } else {
-               char *p;
+               const char *p, *start_p, *end_p;
                char sign = reverse ? -1 : 1;
 
                 if (start < 0)
@@ -279,11 +279,11 @@ mmap_gfind(mmap_object *self,
                else if ((size_t)end > self->size)
                        end = self->size;
 
-               start += (Py_ssize_t)self->data;
-               end += (Py_ssize_t)self->data;
+               start_p = self->data + start;
+               end_p = self->data + end;
 
-               for (p = (char *)(reverse ? end - len : start);
-                    p >= (char *)start && p + len <= (char *)end; p+=sign) {
+               for (p = (reverse ? end_p - len : start_p);
+                    (p >= start_p) && (p + len <= end_p); p += sign) {
                        Py_ssize_t i;
                        for (i = 0; i < len && needle[i] == p[i]; ++i)
                                /* nothing */;