diff options
Diffstat (limited to 'src/liblzma/lzma/lzma2_encoder.c')
-rw-r--r-- | src/liblzma/lzma/lzma2_encoder.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/liblzma/lzma/lzma2_encoder.c b/src/liblzma/lzma/lzma2_encoder.c index 81b6f973..cc676d5e 100644 --- a/src/liblzma/lzma/lzma2_encoder.c +++ b/src/liblzma/lzma/lzma2_encoder.c @@ -318,15 +318,17 @@ lzma2_encoder_init(lzma_lz_encoder *lz, lzma_allocator *allocator, lz->coder->lzma = NULL; } - lz->coder->sequence = SEQ_INIT; - lz->coder->need_properties = true; - lz->coder->need_state_reset = false; - lz->coder->need_dictionary_reset = true; - lz->coder->opt_cur = *(const lzma_options_lzma *)(options); lz->coder->opt_new = lz->coder->opt_cur.persistent ? options : NULL; + lz->coder->sequence = SEQ_INIT; + lz->coder->need_properties = true; + lz->coder->need_state_reset = false; + lz->coder->need_dictionary_reset + = lz->coder->opt_cur.preset_dict == NULL + || lz->coder->opt_cur.preset_dict_size == 0; + // Initialize LZMA encoder return_if_error(lzma_lzma_encoder_create(&lz->coder->lzma, allocator, &lz->coder->opt_cur, lz_options)); |