};
static const struct compressor_ops *compressor_ops[] = {
- [WIMLIB_COMPRESSION_TYPE_LZX] = &lzx_compressor_ops,
[WIMLIB_COMPRESSION_TYPE_XPRESS] = &xpress_compressor_ops,
+ [WIMLIB_COMPRESSION_TYPE_LZX] = &lzx_compressor_ops,
[WIMLIB_COMPRESSION_TYPE_LZMS] = &lzms_compressor_ops,
};
{
const struct compressor_ops *ops;
const struct wimlib_compressor_params_header *params;
+ u64 size;
if (!compressor_ctype_valid(ctype))
return 0;
ops = compressor_ops[ctype];
- if (ops->get_needed_memory == NULL)
- return 0;
if (extra_params) {
params = extra_params;
params = compressor_default_params[ctype];
}
- return sizeof(struct wimlib_compressor) +
- ops->get_needed_memory(max_block_size, params);
+ size = sizeof(struct wimlib_compressor);
+ if (ops->get_needed_memory)
+ size += ops->get_needed_memory(max_block_size, params);
+ return size;
}