#ifdef HAVE_ALLOCA_H
# include <alloca.h>
#endif
-
+#include <stdlib.h>
#include <string.h>
/* Intermediate XPRESS match/literal representation. */
}
struct xpress_record_ctx {
- freq_t freqs[XPRESS_NUM_SYMBOLS];
+ input_idx_t freqs[XPRESS_NUM_SYMBOLS];
struct xpress_match *matches;
};
input_idx_t num_matches;
input_idx_t compressed_len;
input_idx_t i;
- const size_t stack_max = 65536;
/* XPRESS requires 256 bytes of overhead for the Huffman code, so it's
* impossible to compress 256 bytes or less of data to less than the
if (uncompressed_len < XPRESS_NUM_SYMBOLS / 2 + 1 + 4)
return 0;
- if (uncompressed_len <= stack_max) {
+ if (uncompressed_len <= STACK_MAX) {
matches = alloca(uncompressed_len * sizeof(matches[0]));
udata = alloca(uncompressed_len + 8);
prev_tab = alloca(uncompressed_len * sizeof(prev_tab[0]));
#endif
out_free:
- if (uncompressed_len > stack_max) {
+ if (uncompressed_len > STACK_MAX) {
FREE(matches);
FREE(udata);
FREE(prev_tab);