diff options
| author | ljfa-ag <ljfa-ag@web.de> | 2015-09-15 08:17:01 +0200 |
|---|---|---|
| committer | ljfa-ag <ljfa-ag@web.de> | 2015-09-15 12:03:03 +0200 |
| commit | c61cb502c1bb06b5ff93a6766c500c17f1e7dcc0 (patch) | |
| tree | f5e3db812e574694056f9a4610b68149fabd16d8 /src | |
| parent | f3cd19f1fa88b2bc33bfb96fb6c877a4d62c5c97 (diff) | |
| download | Project-Tick-c61cb502c1bb06b5ff93a6766c500c17f1e7dcc0.tar.gz Project-Tick-c61cb502c1bb06b5ff93a6766c500c17f1e7dcc0.zip | |
No output doesn't necessarily mean EOF
Diffstat (limited to 'src')
| -rw-r--r-- | src/io/izlibstream.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/io/izlibstream.cpp b/src/io/izlibstream.cpp index 632f0cf7c6..9079489507 100644 --- a/src/io/izlibstream.cpp +++ b/src/io/izlibstream.cpp @@ -65,6 +65,7 @@ inflate_streambuf::int_type inflate_streambuf::underflow() zstr.avail_out = out.size(); int ret = inflate(&zstr, Z_NO_FLUSH); + have = out.size() - zstr.avail_out; switch(ret) { case Z_NEED_DICT: @@ -73,10 +74,11 @@ inflate_streambuf::int_type inflate_streambuf::underflow() case Z_MEM_ERROR: throw std::bad_alloc(); case Z_STREAM_END: - return traits_type::eof(); + if(have == 0) + return traits_type::eof(); + break; } - have = out.size() - zstr.avail_out; } while(have == 0); setg(out.data(), out.data(), out.data() + have); |
