diff options
author | Nathan Moinvaziri <nathan@nathanm.com> | 2020-06-27 08:55:40 -0700 |
---|---|---|
committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2020-06-28 11:17:44 +0200 |
commit | ad89d5131b29d15f752ac3ef977784ded1fd12a3 (patch) | |
tree | 94a904f096709dec029304ee926e15f73b3056d8 /deflate_quick.c | |
parent | 3f6e40d8fc36ad46ea4e78d4a213dc5546f60196 (diff) |
Don't write end of last block when returning finish_started.
Diffstat (limited to 'deflate_quick.c')
-rw-r--r-- | deflate_quick.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/deflate_quick.c b/deflate_quick.c index 3e47f2b..faa90b2 100644 --- a/deflate_quick.c +++ b/deflate_quick.c @@ -37,6 +37,7 @@ extern const ct_data static_dtree[D_CODES]; zng_tr_emit_end_block(s, static_ltree, last); \ s->block_open = 0; \ s->block_start = s->strstart; \ + flush_pending(s->strm); \ } \ } @@ -108,15 +109,14 @@ ZLIB_INTERNAL block_state deflate_quick(deflate_state *s, int flush) { s->insert = s->strstart < MIN_MATCH-1 ? s->strstart : MIN_MATCH-1; - QUICK_END_BLOCK(s, last); - flush_pending(s->strm); - if (last) { if (s->strm->avail_out == 0) return s->strm->avail_in == 0 ? finish_started : need_more; - else - return finish_done; + + QUICK_END_BLOCK(s, 1); + return finish_done; } + QUICK_END_BLOCK(s, 0); return block_done; } |