liblzma: Creates IS_ENC_DICT_SIZE_VALID() macro.
This creates an internal liblzma macro to test if the dictionary size is valid for encoding.
This commit is contained in:
parent
c247d06e1f
commit
d0f33d672a
|
@ -196,9 +196,7 @@ lz_encoder_prepare(lzma_mf *mf, const lzma_allocator *allocator,
|
||||||
// For now, the dictionary size is limited to 1.5 GiB. This may grow
|
// 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
|
// in the future if needed, but it needs a little more work than just
|
||||||
// changing this check.
|
// changing this check.
|
||||||
if (lz_options->dict_size < LZMA_DICT_SIZE_MIN
|
if (!IS_ENC_DICT_SIZE_VALID(lz_options->dict_size)
|
||||||
|| lz_options->dict_size
|
|
||||||
> (UINT32_C(1) << 30) + (UINT32_C(1) << 29)
|
|
||||||
|| lz_options->nice_len > lz_options->match_len_max)
|
|| lz_options->nice_len > lz_options->match_len_max)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,14 @@
|
||||||
#include "common.h"
|
#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
|
/// A table of these is used by the LZ-based encoder to hold
|
||||||
/// the length-distance pairs found by the match finder.
|
/// the length-distance pairs found by the match finder.
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
Loading…
Reference in New Issue