Small LZMA_SYNC_FLUSH fixes to Block and Single-Stream encoders.
This commit is contained in:
parent
3599dba957
commit
a670fec802
|
@ -94,7 +94,7 @@ block_encode(lzma_coder *coder, lzma_allocator *allocator,
|
|||
|
||||
// Main loop
|
||||
while (*out_pos < out_size
|
||||
&& (*in_pos < in_size || action == LZMA_FINISH))
|
||||
&& (*in_pos < in_size || action != LZMA_RUN))
|
||||
switch (coder->sequence) {
|
||||
case SEQ_CODE: {
|
||||
const size_t in_start = *in_pos;
|
||||
|
@ -121,7 +121,7 @@ block_encode(lzma_coder *coder, lzma_allocator *allocator,
|
|||
lzma_check_update(&coder->check, coder->options->check,
|
||||
in + in_start, in_used);
|
||||
|
||||
if (ret != LZMA_STREAM_END)
|
||||
if (ret != LZMA_STREAM_END || action == LZMA_SYNC_FLUSH)
|
||||
return ret;
|
||||
|
||||
assert(*in_pos == in_size);
|
||||
|
|
|
@ -212,6 +212,7 @@ lzma_stream_encoder_single(
|
|||
lzma_next_strm_init(strm, stream_encoder_init, options);
|
||||
|
||||
strm->internal->supported_actions[LZMA_RUN] = true;
|
||||
strm->internal->supported_actions[LZMA_SYNC_FLUSH] = true;
|
||||
strm->internal->supported_actions[LZMA_FINISH] = true;
|
||||
|
||||
return LZMA_OK;
|
||||
|
|
Loading…
Reference in New Issue