From 7d9c9d410a7f8c732fdb0cac2b268659d624a6b6 Mon Sep 17 00:00:00 2001
From: Mark Adler <madler@alumni.caltech.edu>
Date: Sun, 15 Jan 2017 08:15:55 -0800
Subject: 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 ...
---
 deflate.c | 4 ++++
 1 file changed, 4 insertions(+)

(limited to 'deflate.c')

diff --git a/deflate.c b/deflate.c
index 0aa020e..8a1a91e 100644
--- a/deflate.c
+++ b/deflate.c
@@ -1756,6 +1756,8 @@ local block_state deflate_stored(s, flush)
         s->block_start = s->strstart;
         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 (last)
@@ -1783,6 +1785,8 @@ local block_state deflate_stored(s, flush)
         read_buf(s->strm, s->window + 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
      * stored block to next_out. Write a stored block to pending instead, if we
-- 
cgit v1.2.3-55-g6feb