mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
Merged revisions 81100 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r81100 | antoine.pitrou | 2010-05-12 01:46:02 +0200 (mer., 12 mai 2010) | 10 lines
Merged revisions 81098 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81098 | antoine.pitrou | 2010-05-12 01:42:28 +0200 (mer., 12 mai 2010) | 5 lines
Issue #8681: Make the zlib module's error messages more informative when
the zlib itself doesn't give any detailed explanation.
........
................
This commit is contained in:
parent
bbff8cf035
commit
96f212b377
3 changed files with 27 additions and 4 deletions
|
|
@ -52,10 +52,24 @@ typedef struct
|
|||
static void
|
||||
zlib_error(z_stream zst, int err, char *msg)
|
||||
{
|
||||
if (zst.msg == Z_NULL)
|
||||
const char *zmsg = zst.msg;
|
||||
if (zmsg == Z_NULL) {
|
||||
switch (err) {
|
||||
case Z_BUF_ERROR:
|
||||
zmsg = "incomplete or truncated stream";
|
||||
break;
|
||||
case Z_STREAM_ERROR:
|
||||
zmsg = "inconsistent stream state";
|
||||
break;
|
||||
case Z_DATA_ERROR:
|
||||
zmsg = "invalid input data";
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (zmsg == Z_NULL)
|
||||
PyErr_Format(ZlibError, "Error %d %s", err, msg);
|
||||
else
|
||||
PyErr_Format(ZlibError, "Error %d %s: %.200s", err, msg, zst.msg);
|
||||
PyErr_Format(ZlibError, "Error %d %s: %.200s", err, msg, zmsg);
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(compressobj__doc__,
|
||||
|
|
@ -241,8 +255,7 @@ PyZlib_decompress(PyObject *self, PyObject *args)
|
|||
* 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);
|
||||
zlib_error(zst, err, "while decompressing data");
|
||||
inflateEnd(&zst);
|
||||
goto error;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue