diff options
author | Georg Brandl <georg@python.org> | 2005-09-03 07:49:53 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2005-09-03 07:49:53 (GMT) |
commit | a8bcecc872f3463da60fb887c63472e4326dddda (patch) | |
tree | 94b8e5a666091cc9ac458ba08cfa585d4c41d423 /Modules | |
parent | 99363b6a1922a76f407900f6157434cafa3401c9 (diff) | |
download | cpython-a8bcecc872f3463da60fb887c63472e4326dddda.zip cpython-a8bcecc872f3463da60fb887c63472e4326dddda.tar.gz cpython-a8bcecc872f3463da60fb887c63472e4326dddda.tar.bz2 |
bug [ 1274069 ] bz2module.c compiler warning
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/bz2module.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Modules/bz2module.c b/Modules/bz2module.c index 4547815..af67ff1 100644 --- a/Modules/bz2module.c +++ b/Modules/bz2module.c @@ -110,8 +110,8 @@ typedef struct { BZFILE *fp; int mode; - long pos; - long size; + Py_off_t pos; + Py_off_t size; #ifdef WITH_THREAD PyThread_type_lock lock; #endif @@ -982,7 +982,7 @@ BZ2File_seek(BZ2FileObject *self, PyObject *args) char *buffer = small_buffer; size_t buffersize = SMALLCHUNK; int bytesread = 0; - int readsize; + size_t readsize; int chunksize; int bzerror; int rewind = 0; @@ -1089,10 +1089,13 @@ BZ2File_seek(BZ2FileObject *self, PyObject *args) /* Before getting here, offset must be set to the number of bytes * to walk forward. */ for (;;) { - if ((size_t)offset-bytesread > buffersize) + if (offset-bytesread > buffersize) readsize = buffersize; else - readsize = offset-bytesread; + /* offset might be wider that readsize, but the result + * of the subtraction is bound by buffersize (see the + * condition above). buffersize is 8192. */ + readsize = (size_t)(offset-bytesread); Py_BEGIN_ALLOW_THREADS chunksize = Util_UnivNewlineRead(&bzerror, self->fp, buffer, readsize, self); @@ -1137,7 +1140,11 @@ BZ2File_tell(BZ2FileObject *self, PyObject *args) goto cleanup; } +#if !defined(HAVE_LARGEFILE_SUPPORT) ret = PyInt_FromLong(self->pos); +#else + ret = PyLong_FromLongLong(self->pos); +#endif cleanup: return ret; |