Return LZMA_STREAM_END instead of LZMA_OK if

LZMA_SYNC_FLUSH or LZMA_FULL_FLUSH is used when
there's no unfinished Block open.
This commit is contained in:
Lasse Collin 2008-01-23 21:05:33 +02:00
parent 0e80ded13d
commit ae0cd09a66
1 changed files with 5 additions and 1 deletions

View File

@ -276,8 +276,12 @@ stream_encode(lzma_coder *coder, lzma_allocator *allocator,
// Don't create an empty Block unless it would be
// the only Data Block.
if (*in_pos == in_size) {
// If we are LZMA_SYNC_FLUSHing or LZMA_FULL_FLUSHing,
// return LZMA_STREAM_END since there's nothing to
// flush.
if (action != LZMA_FINISH)
return LZMA_OK;
return action == LZMA_RUN
? LZMA_OK : LZMA_STREAM_END;
if (lzma_info_index_count_get(coder->info) != 0) {
if (lzma_info_index_finish(coder->info))