Kaydet (Commit) d401eddf authored tarafından Tim Peters's avatar Tim Peters

Fix new compiler warnings. Also boost "start" from (C) int to long and

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 ...).
üst 58e0a8c1
...@@ -224,12 +224,12 @@ static PyObject * ...@@ -224,12 +224,12 @@ static PyObject *
mmap_find_method(mmap_object *self, mmap_find_method(mmap_object *self,
PyObject *args) PyObject *args)
{ {
int start = self->pos; long start = self->pos;
char *needle; char *needle;
int len; int len;
CHECK_VALID(NULL); 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; return NULL;
} else { } else {
char *p; char *p;
...@@ -239,7 +239,7 @@ mmap_find_method(mmap_object *self, ...@@ -239,7 +239,7 @@ mmap_find_method(mmap_object *self,
start += self->size; start += self->size;
if (start < 0) if (start < 0)
start = 0; start = 0;
else if (start > self->size) else if ((size_t)start > self->size)
start = self->size; start = self->size;
p = self->data + start; p = self->data + start;
...@@ -251,8 +251,8 @@ mmap_find_method(mmap_object *self, ...@@ -251,8 +251,8 @@ mmap_find_method(mmap_object *self,
} }
if (!*n) { if (!*n) {
return Py_BuildValue ( return Py_BuildValue (
"i", "l",
(int) (p - self->data)); (long) (p - self->data));
} }
p++; p++;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment