From: Nathan Moinvaziri Date: Wed, 19 Aug 2020 00:45:48 +0000 (-0700) Subject: Move zero check for insert_string count to fill_window since it is the only place... X-Git-Tag: 1.9.9-b1~96 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd753715a99e1ec258fc38b4761071e199495ede;p=thirdparty%2Fzlib-ng.git Move zero check for insert_string count to fill_window since it is the only place where count is ever passed as zero. --- diff --git a/deflate.c b/deflate.c index 014f56c8a..1cc7642bf 100644 --- a/deflate.c +++ b/deflate.c @@ -1316,8 +1316,10 @@ void ZLIB_INTERNAL fill_window(deflate_state *s) { } else { count = s->insert; } - functable.insert_string(s, str, count); - s->insert -= count; + if (count > 0) { + functable.insert_string(s, str, count); + s->insert -= count; + } #endif } /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, diff --git a/insert_string_tpl.h b/insert_string_tpl.h index 127a7ca8d..4900010ca 100644 --- a/insert_string_tpl.h +++ b/insert_string_tpl.h @@ -61,17 +61,11 @@ ZLIB_INTERNAL Pos QUICK_INSERT_STRING(deflate_state *const s, const uint32_t str * (except for the last MIN_MATCH-1 bytes of the input file). */ ZLIB_INTERNAL Pos INSERT_STRING(deflate_state *const s, const uint32_t str, uint32_t count) { - Pos idx, ret; - uint8_t *strstart, *strend; - - if (UNLIKELY(count == 0)) { - return s->prev[str & s->w_mask]; - } - - strstart = s->window + str; - strend = strstart + count - 1; /* last position */ + Pos idx, ret = 0; + uint8_t *strstart = s->window + str; + uint8_t *strend = strstart + count - 1; /* last position */ - for (ret = 0, idx = str; strstart <= strend; idx++, strstart++) { + for (idx = str; strstart <= strend; idx++, strstart++) { uint32_t val, hm, h = 0; #ifdef UNALIGNED_OK