liblzma: Simple/BCJ filters: Allow disabling generic BCJ options.
This will be needed for the ARM64 BCJ filter as it will use its own options struct.
This commit is contained in:
parent
c3592d0a55
commit
177bdc922c
|
@ -49,7 +49,7 @@ arm_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|||
const lzma_filter_info *filters, bool is_encoder)
|
||||
{
|
||||
return lzma_simple_coder_init(next, allocator, filters,
|
||||
&arm_code, 0, 4, 4, is_encoder);
|
||||
&arm_code, 0, 4, 4, is_encoder, true);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ armthumb_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|||
const lzma_filter_info *filters, bool is_encoder)
|
||||
{
|
||||
return lzma_simple_coder_init(next, allocator, filters,
|
||||
&armthumb_code, 0, 4, 2, is_encoder);
|
||||
&armthumb_code, 0, 4, 2, is_encoder, true);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ ia64_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|||
const lzma_filter_info *filters, bool is_encoder)
|
||||
{
|
||||
return lzma_simple_coder_init(next, allocator, filters,
|
||||
&ia64_code, 0, 16, 16, is_encoder);
|
||||
&ia64_code, 0, 16, 16, is_encoder, true);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ powerpc_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|||
const lzma_filter_info *filters, bool is_encoder)
|
||||
{
|
||||
return lzma_simple_coder_init(next, allocator, filters,
|
||||
&powerpc_code, 0, 4, 4, is_encoder);
|
||||
&powerpc_code, 0, 4, 4, is_encoder, true);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -237,7 +237,7 @@ lzma_simple_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|||
size_t (*filter)(void *simple, uint32_t now_pos,
|
||||
bool is_encoder, uint8_t *buffer, size_t size),
|
||||
size_t simple_size, size_t unfiltered_max,
|
||||
uint32_t alignment, bool is_encoder)
|
||||
uint32_t alignment, bool is_encoder, bool is_generic_bcj)
|
||||
{
|
||||
// Allocate memory for the lzma_simple_coder structure if needed.
|
||||
lzma_simple_coder *coder = next->coder;
|
||||
|
@ -270,7 +270,7 @@ lzma_simple_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|||
}
|
||||
}
|
||||
|
||||
if (filters[0].options != NULL) {
|
||||
if (is_generic_bcj && filters[0].options != NULL) {
|
||||
const lzma_options_bcj *simple = filters[0].options;
|
||||
coder->now_pos = simple->start_offset;
|
||||
if (coder->now_pos & (alignment - 1))
|
||||
|
|
|
@ -69,6 +69,6 @@ extern lzma_ret lzma_simple_coder_init(lzma_next_coder *next,
|
|||
size_t (*filter)(void *simple, uint32_t now_pos,
|
||||
bool is_encoder, uint8_t *buffer, size_t size),
|
||||
size_t simple_size, size_t unfiltered_max,
|
||||
uint32_t alignment, bool is_encoder);
|
||||
uint32_t alignment, bool is_encoder, bool is_generic_bcj);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -61,7 +61,7 @@ sparc_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|||
const lzma_filter_info *filters, bool is_encoder)
|
||||
{
|
||||
return lzma_simple_coder_init(next, allocator, filters,
|
||||
&sparc_code, 0, 4, 4, is_encoder);
|
||||
&sparc_code, 0, 4, 4, is_encoder, true);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -128,7 +128,8 @@ x86_coder_init(lzma_next_coder *next, const lzma_allocator *allocator,
|
|||
const lzma_filter_info *filters, bool is_encoder)
|
||||
{
|
||||
const lzma_ret ret = lzma_simple_coder_init(next, allocator, filters,
|
||||
&x86_code, sizeof(lzma_simple_x86), 5, 1, is_encoder);
|
||||
&x86_code, sizeof(lzma_simple_x86), 5, 1, is_encoder,
|
||||
true);
|
||||
|
||||
if (ret == LZMA_OK) {
|
||||
lzma_simple_coder *coder = next->coder;
|
||||
|
|
Loading…
Reference in New Issue