aboutsummaryrefslogtreecommitdiff
path: root/src/liblzma/lz/lz_encoder.h
diff options
context:
space:
mode:
authorJia Tan <jiat0218@gmail.com>2023-05-08 22:58:09 +0800
committerJia Tan <jiat0218@gmail.com>2023-05-11 22:28:45 +0800
commitd0f33d672a4da7985ebb5ba8d829f885de49c171 (patch)
tree0200c537d23be7b4ad1f60ccd70574026b26f73a /src/liblzma/lz/lz_encoder.h
parentAdd NEWS for 5.4.3. (diff)
downloadxz-d0f33d672a4da7985ebb5ba8d829f885de49c171.tar.xz
liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro.
This creates an internal liblzma macro to test if the dictionary size is valid for encoding.
Diffstat (limited to '')
-rw-r--r--src/liblzma/lz/lz_encoder.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/liblzma/lz/lz_encoder.h b/src/liblzma/lz/lz_encoder.h
index 7950a2f4..2027b39f 100644
--- a/src/liblzma/lz/lz_encoder.h
+++ b/src/liblzma/lz/lz_encoder.h
@@ -17,6 +17,14 @@
#include "common.h"
+// For now, the dictionary size is limited to 1.5 GiB. This may grow
+// in the future if needed, but it needs a little more work than just
+// changing this check.
+#define IS_ENC_DICT_SIZE_VALID(size) \
+ ((size) >= LZMA_DICT_SIZE_MIN \
+ && (size) <= (UINT32_C(1) << 30) + (UINT32_C(1) << 29))
+
+
/// A table of these is used by the LZ-based encoder to hold
/// the length-distance pairs found by the match finder.
typedef struct {