X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fxpress-compress.c;fp=src%2Fxpress-compress.c;h=175534c0c7a38e5aba180b98a012961204fe4d1f;hp=b1638877f212f896e2adbad17034c8627c8af441;hb=41f15b937564a3ae58f199c27e8290a1b1a40856;hpb=44b239c501762cbee4ac0d218b144c937e642098 diff --git a/src/xpress-compress.c b/src/xpress-compress.c index b1638877..175534c0 100644 --- a/src/xpress-compress.c +++ b/src/xpress-compress.c @@ -314,7 +314,22 @@ oom: return WIMLIB_ERR_NOMEM; } +static u64 +xpress_get_needed_memory(size_t max_window_size, + const struct wimlib_compressor_params_header *params) +{ + u64 size = 0; + + size += sizeof(struct xpress_compressor); + size += max_window_size + 8; + size += max_window_size * sizeof(((struct xpress_compressor*)0)->matches[0]); + size += max_window_size * sizeof(((struct xpress_compressor*)0)->prev_tab[0]); + + return size; +} + const struct compressor_ops xpress_compressor_ops = { + .get_needed_memory = xpress_get_needed_memory, .create_compressor = xpress_create_compressor, .compress = xpress_compress, .free_compressor = xpress_free_compressor,