mirror of
https://github.com/webmproject/libwebp.git
synced 2024-11-19 20:08:28 +01:00
ReadHuffmanCode: rm redundant num code lengths check
4 bits are read ([0, 15]) with 4 added to the result. The check that the result is not > NUM_CODE_LENGTH_CODES (19) is redundant. This makes the check an assert for documentation purposes. webp-lossless-bitstream-spec.txt is updated accordingly. Bug: webp:611 Change-Id: Ie461017dc9de3da4cfe6856543d3dcf58f53a180
This commit is contained in:
parent
a2de25f6b6
commit
aac5c5d0df
@ -904,8 +904,6 @@ First, `num_code_lengths` specifies the number of code lengths.
|
||||
int num_code_lengths = 4 + ReadBits(4);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If `num_code_lengths` is greater than 19, the bitstream is invalid.
|
||||
|
||||
The code lengths are themselves encoded using prefix codes; lower-level code
|
||||
lengths, `code_length_code_lengths`, first have to be read. The rest of those
|
||||
`code_length_code_lengths` (according to the order in `kCodeLengthCodeOrder`)
|
||||
|
@ -12,6 +12,7 @@
|
||||
// Authors: Vikas Arora (vikaas.arora@gmail.com)
|
||||
// Jyrki Alakuijala (jyrki@google.com)
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "src/dec/alphai_dec.h"
|
||||
@ -339,9 +340,7 @@ static int ReadHuffmanCode(int alphabet_size, VP8LDecoder* const dec,
|
||||
int i;
|
||||
int code_length_code_lengths[NUM_CODE_LENGTH_CODES] = { 0 };
|
||||
const int num_codes = VP8LReadBits(br, 4) + 4;
|
||||
if (num_codes > NUM_CODE_LENGTH_CODES) {
|
||||
return VP8LSetError(dec, VP8_STATUS_BITSTREAM_ERROR);
|
||||
}
|
||||
assert(num_codes <= NUM_CODE_LENGTH_CODES);
|
||||
|
||||
for (i = 0; i < num_codes; ++i) {
|
||||
code_length_code_lengths[kCodeLengthCodeOrder[i]] = VP8LReadBits(br, 3);
|
||||
|
Loading…
Reference in New Issue
Block a user