mirror of
https://git.tukaani.org/xz.git
synced 2024-04-04 12:36:23 +02:00
xz: Minor clean up for coder.c
* Moved max_block_list_size from a global to local variable. * Reworded error message in validate_block_list_filter(). * Removed helper function filter_chain_error(). * Changed 1 << X to 1U << X in many places
This commit is contained in:
parent
9adc9e5615
commit
f907705eb1
1 changed files with 21 additions and 32 deletions
|
@ -53,13 +53,6 @@ static uint32_t filters_used_mask = 1;
|
||||||
/// Track the memory usage for all filter chains (default or --filtersX).
|
/// Track the memory usage for all filter chains (default or --filtersX).
|
||||||
/// The memory usage may need to be scaled down depending on the memory limit.
|
/// The memory usage may need to be scaled down depending on the memory limit.
|
||||||
static uint64_t filter_memusages[ARRAY_SIZE(filters)];
|
static uint64_t filter_memusages[ARRAY_SIZE(filters)];
|
||||||
|
|
||||||
# ifdef MYTHREAD_ENABLED
|
|
||||||
/// Represents the largest Block size specified with --block-list. This
|
|
||||||
/// is needed to help reduce the Block size in the multithreaded encoder
|
|
||||||
/// so memory is not wasted.
|
|
||||||
static uint64_t max_block_list_size = 0;
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Input and output buffers
|
/// Input and output buffers
|
||||||
|
@ -219,12 +212,12 @@ extern void
|
||||||
coder_add_block_filters(const char *str, size_t slot)
|
coder_add_block_filters(const char *str, size_t slot)
|
||||||
{
|
{
|
||||||
// Free old filters first, if they were previously allocated.
|
// Free old filters first, if they were previously allocated.
|
||||||
if (filters_used_mask & (1 << slot))
|
if (filters_used_mask & (1U << slot))
|
||||||
lzma_filters_free(filters[slot], NULL);
|
lzma_filters_free(filters[slot], NULL);
|
||||||
|
|
||||||
str_to_filters(str, slot, 0);
|
str_to_filters(str, slot, 0);
|
||||||
|
|
||||||
filters_used_mask |= 1 << slot;
|
filters_used_mask |= 1U << slot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -245,8 +238,8 @@ memlimit_too_small(uint64_t memory_usage)
|
||||||
static void
|
static void
|
||||||
validate_block_list_filter(const uint32_t filter_num)
|
validate_block_list_filter(const uint32_t filter_num)
|
||||||
{
|
{
|
||||||
if (!(filters_used_mask & (1 << filter_num)))
|
if (!(filters_used_mask & (1U << filter_num)))
|
||||||
message_fatal(_("filter chain %u used by --block-list, but "
|
message_fatal(_("filter chain %u used by --block-list but "
|
||||||
"not specified with --filters%u="),
|
"not specified with --filters%u="),
|
||||||
(unsigned)filter_num, (unsigned)filter_num);
|
(unsigned)filter_num, (unsigned)filter_num);
|
||||||
}
|
}
|
||||||
|
@ -270,7 +263,7 @@ filters_memusage_max(const lzma_mt *mt, bool encode)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (uint32_t i = 0; i < ARRAY_SIZE(filters); i++) {
|
for (uint32_t i = 0; i < ARRAY_SIZE(filters); i++) {
|
||||||
if (!(filters_used_mask & (1 << i)))
|
if (!(filters_used_mask & (1U << i)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
uint64_t memusage = UINT64_MAX;
|
uint64_t memusage = UINT64_MAX;
|
||||||
|
@ -301,20 +294,8 @@ filters_memusage_max(const lzma_mt *mt, bool encode)
|
||||||
return max_memusage;
|
return max_memusage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# ifdef MYTHREAD_ENABLED
|
|
||||||
static void
|
|
||||||
filter_chain_error(const uint32_t index, const char *msg)
|
|
||||||
{
|
|
||||||
if (index == 0)
|
|
||||||
message_fatal(_("Error in the filter chain: %s"), msg);
|
|
||||||
else
|
|
||||||
message_fatal(_("Error in --filters%d: %s"), index, msg);
|
|
||||||
}
|
|
||||||
# endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
extern void
|
extern void
|
||||||
coder_set_compression_settings(void)
|
coder_set_compression_settings(void)
|
||||||
{
|
{
|
||||||
|
@ -324,6 +305,13 @@ coder_set_compression_settings(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_ENCODERS
|
#ifdef HAVE_ENCODERS
|
||||||
|
# ifdef MYTHREAD_ENABLED
|
||||||
|
// Represents the largest Block size specified with --block-list. This
|
||||||
|
// is needed to help reduce the Block size in the multithreaded encoder
|
||||||
|
// so memory is not wasted.
|
||||||
|
uint64_t max_block_list_size = 0;
|
||||||
|
# endif
|
||||||
|
|
||||||
if (opt_block_list != NULL) {
|
if (opt_block_list != NULL) {
|
||||||
// This mask tracks the filters actually referenced in
|
// This mask tracks the filters actually referenced in
|
||||||
// --block-list. It is used to help remove bits from
|
// --block-list. It is used to help remove bits from
|
||||||
|
@ -336,7 +324,7 @@ coder_set_compression_settings(void)
|
||||||
opt_block_list[i].filters_index);
|
opt_block_list[i].filters_index);
|
||||||
|
|
||||||
// Mark the current filter as referenced.
|
// Mark the current filter as referenced.
|
||||||
filters_ref_mask |= 1 <<
|
filters_ref_mask |= 1U <<
|
||||||
opt_block_list[i].filters_index;
|
opt_block_list[i].filters_index;
|
||||||
|
|
||||||
# ifdef MYTHREAD_ENABLED
|
# ifdef MYTHREAD_ENABLED
|
||||||
|
@ -431,7 +419,7 @@ coder_set_compression_settings(void)
|
||||||
// support LZMA_SYNC_FLUSH so single-threaded mode must be used.
|
// support LZMA_SYNC_FLUSH so single-threaded mode must be used.
|
||||||
if (opt_mode == MODE_COMPRESS && opt_flush_timeout != 0) {
|
if (opt_mode == MODE_COMPRESS && opt_flush_timeout != 0) {
|
||||||
for (uint32_t i = 0; i < ARRAY_SIZE(filters); ++i) {
|
for (uint32_t i = 0; i < ARRAY_SIZE(filters); ++i) {
|
||||||
if (!(filters_used_mask & (1 << i)))
|
if (!(filters_used_mask & (1U << i)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const lzma_filter *fc = filters[i];
|
const lzma_filter *fc = filters[i];
|
||||||
|
@ -481,7 +469,7 @@ coder_set_compression_settings(void)
|
||||||
if (block_size == 0) {
|
if (block_size == 0) {
|
||||||
for (uint32_t i = 0; i < ARRAY_SIZE(filters);
|
for (uint32_t i = 0; i < ARRAY_SIZE(filters);
|
||||||
i++) {
|
i++) {
|
||||||
if (!(filters_used_mask & (1 << i)))
|
if (!(filters_used_mask & (1U << i)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
uint64_t size = lzma_mt_block_size(
|
uint64_t size = lzma_mt_block_size(
|
||||||
|
@ -492,9 +480,10 @@ coder_set_compression_settings(void)
|
||||||
// invalid, so there is no point in
|
// invalid, so there is no point in
|
||||||
// progressing further.
|
// progressing further.
|
||||||
if (size == UINT64_MAX)
|
if (size == UINT64_MAX)
|
||||||
filter_chain_error(i,
|
message_fatal(_("Unsupported "
|
||||||
message_strm(
|
"options in filter "
|
||||||
LZMA_OPTIONS_ERROR));
|
"chain %u"),
|
||||||
|
(unsigned)i);
|
||||||
|
|
||||||
if (size > block_size)
|
if (size > block_size)
|
||||||
block_size = size;
|
block_size = size;
|
||||||
|
@ -691,7 +680,7 @@ coder_set_compression_settings(void)
|
||||||
r->filters = NULL;
|
r->filters = NULL;
|
||||||
r->reduce_dict_size = false;
|
r->reduce_dict_size = false;
|
||||||
|
|
||||||
if (!(filters_used_mask & (1 << i)))
|
if (!(filters_used_mask & (1U << i)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (uint32_t j = 0; filters[i][j].id != LZMA_VLI_UNKNOWN;
|
for (uint32_t j = 0; filters[i][j].id != LZMA_VLI_UNKNOWN;
|
||||||
|
@ -1525,7 +1514,7 @@ coder_free(void)
|
||||||
// debug mode and will be freed when the process ends anyway, we
|
// debug mode and will be freed when the process ends anyway, we
|
||||||
// don't worry about freeing it.
|
// don't worry about freeing it.
|
||||||
for (uint32_t i = 1; i < ARRAY_SIZE(filters); i++) {
|
for (uint32_t i = 1; i < ARRAY_SIZE(filters); i++) {
|
||||||
if (filters_used_mask & (1 << i))
|
if (filters_used_mask & (1U << i))
|
||||||
lzma_filters_free(filters[i], NULL);
|
lzma_filters_free(filters[i], NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue