@ -1513,6 +1513,8 @@ local void fill_window(s)
s - > match_start - = wsize ;
s - > strstart - = wsize ; /* we now have strstart >= MAX_DIST */
s - > block_start - = ( long ) wsize ;
if ( s - > insert > s - > strstart )
s - > insert = s - > strstart ;
slide_hash ( s ) ;
more + = wsize ;
}
@ -1742,6 +1744,7 @@ local block_state deflate_stored(s, flush)
s - > matches = 2 ; /* clear hash */
zmemcpy ( s - > window , s - > strm - > next_in - s - > w_size , s - > w_size ) ;
s - > strstart = s - > w_size ;
s - > insert = s - > strstart ;
}
else {
if ( s - > window_size - s - > strstart < = used ) {
@ -1750,12 +1753,14 @@ local block_state deflate_stored(s, flush)
zmemcpy ( s - > window , s - > window + s - > w_size , s - > strstart ) ;
if ( s - > matches < 2 )
s - > matches + + ; /* add a pending slide_hash() */
if ( s - > insert > s - > strstart )
s - > insert = s - > strstart ;
}
zmemcpy ( s - > window + s - > strstart , s - > strm - > next_in - used , used ) ;
s - > strstart + = used ;
s - > insert + = MIN ( used , s - > w_size - s - > insert ) ;
}
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 ;
@ -1779,12 +1784,15 @@ local block_state deflate_stored(s, flush)
if ( s - > matches < 2 )
s - > matches + + ; /* add a pending slide_hash() */
have + = s - > w_size ; /* more space now */
if ( s - > insert > s - > strstart )
s - > insert = s - > strstart ;
}
if ( have > s - > strm - > avail_in )
have = s - > strm - > avail_in ;
if ( have ) {
read_buf ( s - > strm , s - > window + s - > strstart , have ) ;
s - > strstart + = have ;
s - > insert + = MIN ( have , s - > w_size - s - > insert ) ;
}
if ( s - > high_water < s - > strstart )
s - > high_water = s - > strstart ;