xz: Free filters[] in debug mode.

This will only free filter chains created with --filters1-9 since the
default filter chain may be set from a static function variable. The
complexity to free the default filter chain is not worth the burden on
code maintenance.
This commit is contained in:
Jia Tan 2023-05-10 22:38:59 +08:00
parent f281cd0d69
commit f86ede2250
1 changed files with 10 additions and 0 deletions

View File

@ -1245,6 +1245,16 @@ coder_run(const char *filename)
extern void extern void
coder_free(void) coder_free(void)
{ {
// Free starting from the second filter chain since the default
// filter chain may have its options set from a static variable
// in coder_set_compression_settings(). Since this is only run in
// debug mode and will be freed when the process ends anyway, we
// don't worry about freeing it.
for (uint32_t i = 1; i < ARRAY_SIZE(filters); i++) {
if (filters_init_mask & (1 << i))
lzma_filters_free(filters[i], NULL);
}
lzma_end(&strm); lzma_end(&strm);
return; return;
} }