]> granicus.if.org Git - python/commitdiff
fix bug in PyZlib_flush.
authorJeremy Hylton <jeremy@alum.mit.edu>
Wed, 6 Jan 1999 22:56:24 +0000 (22:56 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Wed, 6 Jan 1999 22:56:24 +0000 (22:56 +0000)
patch from Grzegorz Makarewicz & Rafal Smotrzyk.

Modules/zlibmodule.c

index 5afa70920a96ef69f0cbba5f1805a67f75c99d02..9402e99fcb30af016f60fac1f8012d6003c0f556 100644 (file)
@@ -530,7 +530,7 @@ PyZlib_flush(self, args)
   /* When flushing the zstream, there's no input data.  
      If zst.avail_out == 0, that means that more output space is
      needed to complete the flush operation. */ 
-  do {
+  while (err == Z_OK) {
       err = deflate(&(self->zst), Z_FINISH);
       if (self->zst.avail_out <= 0) {
          if (_PyString_Resize(&RetVal, length << 1) == -1)  {
@@ -542,9 +542,9 @@ PyZlib_flush(self, args)
          self->zst.avail_out = length;
          length = length << 1;
       }
-  } while (self->zst.avail_out == 0);
+  }
 
-  if (err!=Z_OK && err != Z_STREAM_END) 
+  if (err != Z_STREAM_END) 
   {
       if (self->zst.msg == Z_NULL)
          PyErr_Format(ZlibError, "Error %i while flushing",
@@ -554,7 +554,7 @@ PyZlib_flush(self, args)
                       err, self->zst.msg);  
       Py_DECREF(RetVal);
       return NULL;
-    }
+  }
   if (flushmode == Z_FINISH) {
     err=deflateEnd(&(self->zst));
     if (err!=Z_OK) {