[Python-checkins] CVS: python/dist/src/Modules zlibmodule.c,2.46,2.47
Jeremy Hylton
jhylton@users.sourceforge.net
Tue, 16 Oct 2001 14:56:11 -0700
Update of /cvsroot/python/python/dist/src/Modules
In directory usw-pr-cvs1:/tmp/cvs-serv9643
Modified Files:
zlibmodule.c
Log Message:
Add zlib_error() helper.
It sets a ZlibError exception, using the msg from the z_stream pointer
if one is available.
Index: zlibmodule.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/zlibmodule.c,v
retrieving revision 2.46
retrieving revision 2.47
diff -C2 -d -r2.46 -r2.47
*** zlibmodule.c 2001/10/16 21:23:58 2.46
--- zlibmodule.c 2001/10/16 21:56:09 2.47
***************
*** 83,86 ****
--- 83,95 ----
} compobject;
+ static void
+ zlib_error(z_stream zst, int err, char *msg)
+ {
+ if (zst.msg == Z_NULL)
+ PyErr_Format(ZlibError, "Error %d %s", err, msg);
+ else
+ PyErr_Format(ZlibError, "Error %d %s: %.200s", err, msg, zst.msg);
+ }
+
static char compressobj__doc__[] =
"compressobj() -- Return a compressor object.\n"
***************
*** 176,213 ****
return_error = 1;
break;
! default: {
! if (zst.msg == Z_NULL)
! PyErr_Format(ZlibError, "Error %i while compressing data",
! err);
! else
! PyErr_Format(ZlibError, "Error %i while compressing data: %.200s",
! err, zst.msg);
deflateEnd(&zst);
return_error = 1;
- }
}
if (!return_error) {
Py_BEGIN_ALLOW_THREADS;
! err=deflate(&zst, Z_FINISH);
Py_END_ALLOW_THREADS;
! switch(err)
! {
! case(Z_STREAM_END):
! break;
! /* Are there other errors to be trapped here? */
! default: {
! if (zst.msg == Z_NULL)
! PyErr_Format(ZlibError, "Error %i while compressing data",
! err);
! else
! PyErr_Format(ZlibError, "Error %i while compressing data: %.200s",
! err, zst.msg);
!
deflateEnd(&zst);
-
return_error = 1;
- }
}
--- 185,203 ----
return_error = 1;
break;
! default:
deflateEnd(&zst);
+ zlib_error(zst, err, "while compressing data");
return_error = 1;
}
if (!return_error) {
Py_BEGIN_ALLOW_THREADS;
! err = deflate(&zst, Z_FINISH);
Py_END_ALLOW_THREADS;
! if (err != Z_STREAM_END) {
! zlib_error(zst, err, "while compressing data");
deflateEnd(&zst);
return_error = 1;
}
***************
*** 217,230 ****
ReturnVal = PyString_FromStringAndSize((char *)output,
zst.total_out);
! else {
! if (zst.msg == Z_NULL)
! PyErr_Format(ZlibError,
! "Error %i while finishing compression",
! err);
! else
! PyErr_Format(ZlibError,
! "Error %i while finishing compression: %.200s",
! err, zst.msg);
! }
}
}
--- 207,212 ----
ReturnVal = PyString_FromStringAndSize((char *)output,
zst.total_out);
! else
! zlib_error(zst, err, "while finishing compression");
}
}
***************
*** 287,302 ****
"Out of memory while decompressing data");
return_error = 1;
! default: {
! if (zst.msg == Z_NULL)
! PyErr_Format(ZlibError, "Error %i preparing to decompress data",
! err);
! else
! PyErr_Format(ZlibError,
! "Error %i while preparing to decompress data: %.200s",
! err, zst.msg);
inflateEnd(&zst);
!
return_error = 1;
- }
}
--- 269,276 ----
"Out of memory while decompressing data");
return_error = 1;
! default:
inflateEnd(&zst);
! zlib_error(zst, err, "while preparing to decompress data");
return_error = 1;
}
***************
*** 318,323 ****
* process the inflate call() due to an error in the data.
*/
! if (zst.avail_out > 0)
! {
PyErr_Format(ZlibError, "Error %i while decompressing data",
err);
--- 292,296 ----
* process the inflate call() due to an error in the data.
*/
! if (zst.avail_out > 0) {
PyErr_Format(ZlibError, "Error %i while decompressing data",
err);
***************
*** 339,353 ****
r_strlen = r_strlen << 1;
break;
! default: {
! if (zst.msg == Z_NULL)
! PyErr_Format(ZlibError, "Error %i while decompressing data",
! err);
! else
! PyErr_Format(ZlibError,
! "Error %i while decompressing data: %.200s",
! err, zst.msg);
inflateEnd(&zst);
return_error = 1;
- }
}
} while (err != Z_STREAM_END);
--- 312,319 ----
r_strlen = r_strlen << 1;
break;
! default:
inflateEnd(&zst);
+ zlib_error(zst, err, "while decompressing data");
return_error = 1;
}
} while (err != Z_STREAM_END);
***************
*** 356,369 ****
err = inflateEnd(&zst);
if (err != Z_OK) {
! if (zst.msg == Z_NULL)
! PyErr_Format(ZlibError,
! "Error %i while finishing data decompression",
! err);
! else
! PyErr_Format(ZlibError,
! "Error %i while finishing data decompression: %.200s",
! err, zst.msg);
!
! return_error = 1;
return NULL;
}
--- 322,326 ----
err = inflateEnd(&zst);
if (err != Z_OK) {
! zlib_error(zst, err, "while finishing data decompression");
return NULL;
}
***************
*** 411,426 ****
return NULL;
default:
! {
! if (self->zst.msg == Z_NULL)
! PyErr_Format(ZlibError,
! "Error %i while creating compression object",
! err);
! else
! PyErr_Format(ZlibError,
! "Error %i while creating compression object: %.200s",
! err, self->zst.msg);
Py_DECREF(self);
return NULL;
- }
}
}
--- 368,374 ----
return NULL;
default:
! zlib_error(self->zst, err, "while creating compression object");
Py_DECREF(self);
return NULL;
}
}
***************
*** 456,471 ****
return NULL;
default:
! {
! if (self->zst.msg == Z_NULL)
! PyErr_Format(ZlibError,
! "Error %i while creating decompression object",
! err);
! else
! PyErr_Format(ZlibError,
! "Error %i while creating decompression object: %.200s",
! err, self->zst.msg);
Py_DECREF(self);
return NULL;
- }
}
}
--- 404,410 ----
return NULL;
default:
! zlib_error(self->zst, err, "while creating decompression object");
Py_DECREF(self);
return NULL;
}
}
***************
*** 852,862 ****
err = inflateEnd(&(self->zst));
if (err != Z_OK) {
! if (self->zst.msg == Z_NULL)
! PyErr_Format(ZlibError, "Error %i from inflateEnd()",
! err);
! else
! PyErr_Format(ZlibError, "Error %i from inflateEnd(): %.200s",
! err, self->zst.msg);
!
retval = NULL;
} else {
--- 791,795 ----
err = inflateEnd(&(self->zst));
if (err != Z_OK) {
! zlib_error(self->zst, err, "from inflateEnd()");
retval = NULL;
} else {