xz: Rename "filters" to "chains"

The convention is that

    lzma_filter filters[LZMA_FILTERS_MAX + 1];

contains the filters of a single filter chain.
It was so here as well before the commit
d6af7f3470.
It changes "filters" to a ten-element array of filter chains.
It's clearer to call this array-of-arrays "chains".

This also renames "filter_idx" to "chain_idx" which is used
as an index as in chains[chain_idx].

(cherry picked from commit ad146b1f42)
This commit is contained in:
Lasse Collin 2024-05-12 17:09:17 +03:00
parent 6822f6f891
commit 067961ee0e
1 changed files with 34 additions and 34 deletions

View File

@ -38,11 +38,11 @@ static lzma_stream strm = LZMA_STREAM_INIT;
/// and 9 other filter chains can be specified with --filtersX. /// and 9 other filter chains can be specified with --filtersX.
#define NUM_FILTER_CHAIN_MAX 10 #define NUM_FILTER_CHAIN_MAX 10
/// The default filter chain is in filters[0]. It is used for encoding /// The default filter chain is in chains[0]. It is used for encoding
/// in all supported formats and also for decdoing raw streams. The other /// in all supported formats and also for decdoing raw streams. The other
/// filter chains are set by --filtersX to support changing filters with /// filter chains are set by --filtersX to support changing filters with
/// the --block-list option. /// the --block-list option.
static lzma_filter filters[NUM_FILTER_CHAIN_MAX][LZMA_FILTERS_MAX + 1]; static lzma_filter chains[NUM_FILTER_CHAIN_MAX][LZMA_FILTERS_MAX + 1];
/// Bitmask indicating which filter chains are actually used when encoding /// Bitmask indicating which filter chains are actually used when encoding
/// in the .xz format. This is needed since the filter chains specified using /// in the .xz format. This is needed since the filter chains specified using
@ -102,7 +102,7 @@ forget_filter_chain(void)
// Setting a preset or using --filters makes us forget // Setting a preset or using --filters makes us forget
// the earlier custom filter chain (if any). // the earlier custom filter chain (if any).
if (filters_count > 0) { if (filters_count > 0) {
lzma_filters_free(filters[0], NULL); lzma_filters_free(chains[0], NULL);
filters_count = 0; filters_count = 0;
} }
@ -139,12 +139,12 @@ coder_add_filter(lzma_vli id, void *options)
if (string_to_filter_used) if (string_to_filter_used)
forget_filter_chain(); forget_filter_chain();
filters[0][filters_count].id = id; chains[0][filters_count].id = id;
filters[0][filters_count].options = options; chains[0][filters_count].options = options;
// Terminate the filter chain with LZMA_VLI_UNKNOWN to simplify // Terminate the filter chain with LZMA_VLI_UNKNOWN to simplify
// implementation of forget_filter_chain(). // implementation of forget_filter_chain().
filters[0][++filters_count].id = LZMA_VLI_UNKNOWN; chains[0][++filters_count].id = LZMA_VLI_UNKNOWN;
// Setting a custom filter chain makes us forget the preset options. // Setting a custom filter chain makes us forget the preset options.
// This makes a difference if one specifies e.g. "xz -9 --lzma2 -e" // This makes a difference if one specifies e.g. "xz -9 --lzma2 -e"
@ -161,7 +161,7 @@ str_to_filters(const char *str, uint32_t index, uint32_t flags)
{ {
int error_pos; int error_pos;
const char *err = lzma_str_to_filters(str, &error_pos, const char *err = lzma_str_to_filters(str, &error_pos,
filters[index], flags, NULL); chains[index], flags, NULL);
if (err != NULL) { if (err != NULL) {
char filter_num[2] = ""; char filter_num[2] = "";
@ -197,7 +197,7 @@ coder_add_filters_from_str(const char *filter_str)
// Set the filters_count to be the number of filters converted from // Set the filters_count to be the number of filters converted from
// the string. // the string.
for (filters_count = 0; filters[0][filters_count].id for (filters_count = 0; chains[0][filters_count].id
!= LZMA_VLI_UNKNOWN; != LZMA_VLI_UNKNOWN;
++filters_count) ; ++filters_count) ;
@ -211,7 +211,7 @@ 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 & (1U << slot)) if (filters_used_mask & (1U << slot))
lzma_filters_free(filters[slot], NULL); lzma_filters_free(chains[slot], NULL);
str_to_filters(str, slot, 0); str_to_filters(str, slot, 0);
@ -249,7 +249,7 @@ filters_memusage_max(uint64_t *filter_memusages,
(void)mt; (void)mt;
#endif #endif
for (uint32_t i = 0; i < ARRAY_SIZE(filters); i++) { for (uint32_t i = 0; i < ARRAY_SIZE(chains); i++) {
if (!(filters_used_mask & (1U << i))) if (!(filters_used_mask & (1U << i)))
continue; continue;
@ -257,16 +257,16 @@ filters_memusage_max(uint64_t *filter_memusages,
#ifdef MYTHREAD_ENABLED #ifdef MYTHREAD_ENABLED
if (mt != NULL) { if (mt != NULL) {
assert(encode); assert(encode);
mt_local.filters = filters[i]; mt_local.filters = chains[i];
memusage = lzma_stream_encoder_mt_memusage(&mt_local); memusage = lzma_stream_encoder_mt_memusage(&mt_local);
} else } else
#endif #endif
if (encode) { if (encode) {
memusage = lzma_raw_encoder_memusage(filters[i]); memusage = lzma_raw_encoder_memusage(chains[i]);
} }
#ifdef HAVE_DECODERS #ifdef HAVE_DECODERS
else { else {
memusage = lzma_raw_decoder_memusage(filters[i]); memusage = lzma_raw_decoder_memusage(chains[i]);
} }
#endif #endif
@ -344,9 +344,9 @@ coder_set_compression_settings(void)
// Options for LZMA1 or LZMA2 in case we are using a preset. // Options for LZMA1 or LZMA2 in case we are using a preset.
static lzma_options_lzma opt_lzma; static lzma_options_lzma opt_lzma;
// The first filter in the filters[] array is for the default // The first filter in the chains[] array is for the default
// filter chain. // filter chain.
lzma_filter *default_filters = filters[0]; lzma_filter *default_filters = chains[0];
if (filters_count == 0 && filters_used_mask & 1) { if (filters_count == 0 && filters_used_mask & 1) {
// We are using a preset. This is not a good idea in raw mode // We are using a preset. This is not a good idea in raw mode
@ -406,11 +406,11 @@ coder_set_compression_settings(void)
// from the filter chain. Currently the threaded encoder doesn't // from the filter chain. Currently the threaded encoder doesn't
// 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(chains); ++i) {
if (!(filters_used_mask & (1U << i))) if (!(filters_used_mask & (1U << i)))
continue; continue;
const lzma_filter *fc = filters[i]; const lzma_filter *fc = chains[i];
for (size_t j = 0; fc[j].id != LZMA_VLI_UNKNOWN; j++) { for (size_t j = 0; fc[j].id != LZMA_VLI_UNKNOWN; j++) {
switch (fc[j].id) { switch (fc[j].id) {
case LZMA_FILTER_LZMA2: case LZMA_FILTER_LZMA2:
@ -446,7 +446,7 @@ coder_set_compression_settings(void)
// Memory usage for each encoder filter chain (default // Memory usage for each encoder filter chain (default
// or --filtersX). The encoder options may need to be // or --filtersX). The encoder options may need to be
// scaled down depending on the memory usage limit. // scaled down depending on the memory usage limit.
uint64_t filter_memusages[ARRAY_SIZE(filters)]; uint64_t filter_memusages[ARRAY_SIZE(chains)];
#endif #endif
if (opt_mode == MODE_COMPRESS) { if (opt_mode == MODE_COMPRESS) {
@ -461,13 +461,13 @@ coder_set_compression_settings(void)
// If opt_block_size is not set, find the maximum // If opt_block_size is not set, find the maximum
// recommended Block size based on the filter chains // recommended Block size based on the filter chains
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(chains);
i++) { i++) {
if (!(filters_used_mask & (1U << i))) if (!(filters_used_mask & (1U << i)))
continue; continue;
uint64_t size = lzma_mt_block_size( uint64_t size = lzma_mt_block_size(
filters[i]); chains[i]);
// If this returns an error, then one // If this returns an error, then one
// of the filter chains in use is // of the filter chains in use is
@ -661,13 +661,13 @@ coder_set_compression_settings(void)
bool reduce_dict_size; bool reduce_dict_size;
} memusage_reduction_data; } memusage_reduction_data;
memusage_reduction_data memusage_reduction[ARRAY_SIZE(filters)]; memusage_reduction_data memusage_reduction[ARRAY_SIZE(chains)];
// Counter represents how many filter chains are above the memory // Counter represents how many filter chains are above the memory
// limit. // limit.
size_t count = 0; size_t count = 0;
for (uint32_t i = 0; i < ARRAY_SIZE(filters); i++) { for (uint32_t i = 0; i < ARRAY_SIZE(chains); i++) {
// The short var name "r" will reduce the number of lines // The short var name "r" will reduce the number of lines
// of code needed since less lines will stretch past 80 // of code needed since less lines will stretch past 80
// characters. // characters.
@ -678,15 +678,15 @@ coder_set_compression_settings(void)
if (!(filters_used_mask & (1U << 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; chains[i][j].id != LZMA_VLI_UNKNOWN;
j++) { j++) {
if ((filters[i][j].id == LZMA_FILTER_LZMA2 if ((chains[i][j].id == LZMA_FILTER_LZMA2
|| filters[i][j].id || chains[i][j].id
== LZMA_FILTER_LZMA1) == LZMA_FILTER_LZMA1)
&& filter_memusages[i] && filter_memusages[i]
> memory_limit) { > memory_limit) {
count++; count++;
r->filters = filters[i]; r->filters = chains[i];
r->lzma_idx = j; r->lzma_idx = j;
r->reduce_dict_size = true; r->reduce_dict_size = true;
@ -864,11 +864,11 @@ coder_init(file_pair *pair)
allow_trailing_input = false; allow_trailing_input = false;
// Set the first filter chain. If the --block-list option is not // Set the first filter chain. If the --block-list option is not
// used then use the default filter chain (filters[0]). // used then use the default filter chain (chains[0]).
// Otherwise, use first filter chain from the block list. // Otherwise, use first filter chain from the block list.
lzma_filter *active_filters = opt_block_list == NULL lzma_filter *active_filters = opt_block_list == NULL
? filters[0] ? chains[0]
: filters[opt_block_list[0].filters_index]; : chains[opt_block_list[0].filters_index];
if (opt_mode == MODE_COMPRESS) { if (opt_mode == MODE_COMPRESS) {
#ifdef HAVE_ENCODERS #ifdef HAVE_ENCODERS
@ -1115,9 +1115,9 @@ split_block(uint64_t *block_remaining,
// Update the filters if needed. // Update the filters if needed.
if (opt_block_list[*list_pos - 1].filters_index if (opt_block_list[*list_pos - 1].filters_index
!= opt_block_list[*list_pos].filters_index) { != opt_block_list[*list_pos].filters_index) {
const uint32_t filter_idx = opt_block_list const uint32_t chain_idx = opt_block_list
[*list_pos].filters_index; [*list_pos].filters_index;
const lzma_filter *next = filters[filter_idx]; const lzma_filter *next = chains[chain_idx];
const lzma_ret ret = lzma_filters_update( const lzma_ret ret = lzma_filters_update(
&strm, next); &strm, next);
@ -1133,7 +1133,7 @@ split_block(uint64_t *block_remaining,
message_fatal( message_fatal(
_("Error changing to " _("Error changing to "
"filter chain %u: %s"), "filter chain %u: %s"),
(unsigned)filter_idx, (unsigned)chain_idx,
message_strm(ret)); message_strm(ret));
} }
} }
@ -1509,9 +1509,9 @@ coder_free(void)
// in coder_set_compression_settings(). Since this is only run in // in coder_set_compression_settings(). Since this is only run in
// 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(chains); i++) {
if (filters_used_mask & (1U << i)) if (filters_used_mask & (1U << i))
lzma_filters_free(filters[i], NULL); lzma_filters_free(chains[i], NULL);
} }
lzma_end(&strm); lzma_end(&strm);