lzma2_decoder.c   lzma2_decoder.c 
skipping to change at line 209 skipping to change at line 209
default: default:
assert(0); assert(0);
return LZMA_PROG_ERROR; return LZMA_PROG_ERROR;
} }
return LZMA_OK; return LZMA_OK;
} }
static void static void
lzma2_decoder_end(lzma_coder *coder, lzma_allocator *allocator) lzma2_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{ {
assert(coder->lzma.end == NULL); assert(coder->lzma.end == NULL);
lzma_free(coder->lzma.coder, allocator); lzma_free(coder->lzma.coder, allocator);
lzma_free(coder, allocator); lzma_free(coder, allocator);
return; return;
} }
static lzma_ret static lzma_ret
lzma2_decoder_init(lzma_lz_decoder *lz, lzma_allocator *allocator, lzma2_decoder_init(lzma_lz_decoder *lz, const lzma_allocator *allocator,
const void *opt, lzma_lz_options *lz_options) const void *opt, lzma_lz_options *lz_options)
{ {
if (lz->coder == NULL) { if (lz->coder == NULL) {
lz->coder = lzma_alloc(sizeof(lzma_coder), allocator); lz->coder = lzma_alloc(sizeof(lzma_coder), allocator);
if (lz->coder == NULL) if (lz->coder == NULL)
return LZMA_MEM_ERROR; return LZMA_MEM_ERROR;
lz->code = &lzma2_decode; lz->code = &lzma2_decode;
lz->end = &lzma2_decoder_end; lz->end = &lzma2_decoder_end;
skipping to change at line 246 skipping to change at line 246
lz->coder->sequence = SEQ_CONTROL; lz->coder->sequence = SEQ_CONTROL;
lz->coder->need_properties = true; lz->coder->need_properties = true;
lz->coder->need_dictionary_reset = options->preset_dict == NULL lz->coder->need_dictionary_reset = options->preset_dict == NULL
|| options->preset_dict_size == 0; || options->preset_dict_size == 0;
return lzma_lzma_decoder_create(&lz->coder->lzma, return lzma_lzma_decoder_create(&lz->coder->lzma,
allocator, options, lz_options); allocator, options, lz_options);
} }
extern lzma_ret extern lzma_ret
lzma_lzma2_decoder_init(lzma_next_coder *next, lzma_allocator *allocator, lzma_lzma2_decoder_init(lzma_next_coder *next, const lzma_allocator *alloca tor,
const lzma_filter_info *filters) const lzma_filter_info *filters)
{ {
// LZMA2 can only be the last filter in the chain. This is enforced // LZMA2 can only be the last filter in the chain. This is enforced
// by the raw_decoder initialization. // by the raw_decoder initialization.
assert(filters[1].init == NULL); assert(filters[1].init == NULL);
return lzma_lz_decoder_init(next, allocator, filters, return lzma_lz_decoder_init(next, allocator, filters,
&lzma2_decoder_init); &lzma2_decoder_init);
} }
extern uint64_t extern uint64_t
lzma_lzma2_decoder_memusage(const void *options) lzma_lzma2_decoder_memusage(const void *options)
{ {
return sizeof(lzma_coder) return sizeof(lzma_coder)
+ lzma_lzma_decoder_memusage_nocheck(options); + lzma_lzma_decoder_memusage_nocheck(options);
} }
extern lzma_ret extern lzma_ret
lzma_lzma2_props_decode(void **options, lzma_allocator *allocator, lzma_lzma2_props_decode(void **options, const lzma_allocator *allocator,
const uint8_t *props, size_t props_size) const uint8_t *props, size_t props_size)
{ {
if (props_size != 1) if (props_size != 1)
return LZMA_OPTIONS_ERROR; return LZMA_OPTIONS_ERROR;
// Check that reserved bits are unset. // Check that reserved bits are unset.
if (props[0] & 0xC0) if (props[0] & 0xC0)
return LZMA_OPTIONS_ERROR; return LZMA_OPTIONS_ERROR;
// Decode the dictionary size. // Decode the dictionary size.
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/