]> wimlib.net Git - wimlib/blobdiff - src/xpress-compress.c
xpress-compress.c: Remove unneeded includes
[wimlib] / src / xpress-compress.c
index b1638877f212f896e2adbad17034c8627c8af441..6fb7e1c4846a92db78d9969875b1aa41e35d6b36 100644 (file)
 #include "wimlib/util.h"
 #include "wimlib/xpress.h"
 
-#ifdef HAVE_ALLOCA_H
-#  include <alloca.h>
-#endif
-#include <stdlib.h>
 #include <string.h>
 
 struct xpress_record_ctx {
@@ -314,7 +310,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,