X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fcompress_common.c;h=682a53c5f259e2416c995e6d88238f4070486949;hb=757b2d7b9005bd959855428d15e1fb3bf9c1f3fb;hp=959e1deb2d704b359acba3cdb4a8d5b1b04d3522;hpb=55f1b41f8c2e4b53fbdd1f601389abc49795e4d4;p=wimlib diff --git a/src/compress_common.c b/src/compress_common.c index 959e1deb..682a53c5 100644 --- a/src/compress_common.c +++ b/src/compress_common.c @@ -552,8 +552,8 @@ gen_codewords(u32 A[restrict], u8 lens[restrict], * approximately (with the algorithm used here) the minimum weighted path * length from the root, given this constraint. * - * A canonical Huffman code satisfies the properties that a codeword - * never lexicographically precedes a shorter codeword, and the + * A canonical Huffman code satisfies the properties that a longer + * codeword never lexicographically precedes a shorter codeword, and the * lexicographic ordering of codewords of the same length is the same as * the lexicographic ordering of the corresponding symbols. A canonical * Huffman code, or more generally a canonical prefix code, can be @@ -689,7 +689,7 @@ make_canonical_huffman_code(unsigned num_syms, unsigned max_codeword_len, /* Assumptions */ wimlib_assert2(num_syms >= 2); wimlib_assert2(num_syms <= (1 << NUM_SYMBOL_BITS)); - wimlib_assert2(max_codeword_len > 0); + wimlib_assert2((1ULL << max_codeword_len) >= num_syms); wimlib_assert2(max_codeword_len <= 32); /* We begin by sorting the symbols primarily by frequency and