In lzma_read_match_distances(), don't use

coder->lz.stream_end_was_reached. That variable
will be removed, and the check isn't required anyway.
Rearrange the check so that it doesn't make one to
think that there could be an integer overflow.
This commit is contained in:
Lasse Collin 2008-01-14 12:08:02 +02:00
parent a670fec802
commit 3e09e1c058
1 changed files with 3 additions and 3 deletions

View File

@ -197,12 +197,12 @@ lzma_read_match_distances(lzma_coder *coder,
uint32_t limit = MATCH_MAX_LEN - *len_res;
assert(offset + limit < coder->lz.keep_size_after);
assert(coder->lz.read_pos <= coder->lz.write_pos);
// If we are close to end of the stream, we may need
// to limit the length of the match.
if (coder->lz.stream_end_was_reached
&& coder->lz.write_pos
< coder->lz.read_pos + offset + limit)
if (coder->lz.write_pos - coder->lz.read_pos
< offset + limit)
limit = coder->lz.write_pos
- (coder->lz.read_pos + offset);