Update high water mark in deflate_stored.
This avoids unnecessary filling of bytes in the sliding window buffer when switching from level zero to a non-zero level. This also provides a consistent indication of deflate having taken input for a later commit ...
This commit is contained in:
parent
37ed2112a1
commit
7d9c9d410a
@ -1756,6 +1756,8 @@ local block_state deflate_stored(s, flush)
|
|||||||
s->block_start = s->strstart;
|
s->block_start = s->strstart;
|
||||||
s->insert += MIN(used, s->w_size - s->insert);
|
s->insert += MIN(used, s->w_size - s->insert);
|
||||||
}
|
}
|
||||||
|
if (s->high_water < s->strstart)
|
||||||
|
s->high_water = s->strstart;
|
||||||
|
|
||||||
/* If the last block was written to next_out, then done. */
|
/* If the last block was written to next_out, then done. */
|
||||||
if (last)
|
if (last)
|
||||||
@ -1783,6 +1785,8 @@ local block_state deflate_stored(s, flush)
|
|||||||
read_buf(s->strm, s->window + s->strstart, have);
|
read_buf(s->strm, s->window + s->strstart, have);
|
||||||
s->strstart += have;
|
s->strstart += have;
|
||||||
}
|
}
|
||||||
|
if (s->high_water < s->strstart)
|
||||||
|
s->high_water = s->strstart;
|
||||||
|
|
||||||
/* There was not enough avail_out to write a complete worthy or flushed
|
/* There was not enough avail_out to write a complete worthy or flushed
|
||||||
* stored block to next_out. Write a stored block to pending instead, if we
|
* stored block to next_out. Write a stored block to pending instead, if we
|
||||||
|
Loading…
Reference in New Issue
Block a user