| Index: third_party/brotli/dec/state.h
|
| diff --git a/third_party/brotli/dec/state.h b/third_party/brotli/dec/state.h
|
| index f8e12595a4680aba8ad082781d2d35b56bef9051..de1056de9d4b712cd3232b2e64c22e5660af15f2 100644
|
| --- a/third_party/brotli/dec/state.h
|
| +++ b/third_party/brotli/dec/state.h
|
| @@ -9,9 +9,10 @@
|
| #ifndef BROTLI_DEC_STATE_H_
|
| #define BROTLI_DEC_STATE_H_
|
|
|
| +#include "../common/constants.h"
|
| +#include <brotli/types.h>
|
| #include "./bit_reader.h"
|
| #include "./huffman.h"
|
| -#include "./types.h"
|
| #include "./port.h"
|
|
|
| #if defined(__cplusplus) || defined(c_plusplus)
|
| @@ -93,7 +94,7 @@ typedef enum {
|
| BROTLI_STATE_READ_BLOCK_LENGTH_SUFFIX
|
| } BrotliRunningReadBlockLengthState;
|
|
|
| -struct BrotliStateStruct {
|
| +struct BrotliDecoderStateStruct {
|
| BrotliRunningState state;
|
|
|
| /* This counter is reused for several disjoint loops. */
|
| @@ -114,7 +115,6 @@ struct BrotliStateStruct {
|
|
|
| int pos;
|
| int max_backward_distance;
|
| - int max_backward_distance_minus_custom_dict_size;
|
| int max_distance;
|
| int ringbuffer_size;
|
| int ringbuffer_mask;
|
| @@ -152,7 +152,6 @@ struct BrotliStateStruct {
|
| uint32_t num_dist_htrees;
|
| uint8_t* dist_context_map;
|
| HuffmanCode* literal_htree;
|
| - uint8_t literal_htree_index;
|
| uint8_t dist_htree_index;
|
| uint32_t repeat_code_len;
|
| uint32_t prev_code_len;
|
| @@ -161,8 +160,8 @@ struct BrotliStateStruct {
|
| int distance_code;
|
|
|
| /* For partial write operations */
|
| - size_t rb_roundtrips; /* How many times we went around the ringbuffer */
|
| - size_t partial_pos_out; /* How much output to the user in total (<= rb) */
|
| + size_t rb_roundtrips; /* How many times we went around the ring-buffer */
|
| + size_t partial_pos_out; /* How much output to the user in total */
|
|
|
| /* For ReadHuffmanCode */
|
| uint32_t symbol;
|
| @@ -174,10 +173,10 @@ struct BrotliStateStruct {
|
| uint16_t* symbol_lists;
|
| /* Storage from symbol_lists. */
|
| uint16_t symbols_lists_array[BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1 +
|
| - BROTLI_HUFFMAN_MAX_CODE_LENGTHS_SIZE];
|
| + BROTLI_NUM_COMMAND_SYMBOLS];
|
| /* Tails of symbol chains. */
|
| int next_symbol[32];
|
| - uint8_t code_length_code_lengths[18];
|
| + uint8_t code_length_code_lengths[BROTLI_CODE_LENGTH_CODES];
|
| /* Population counts for the code lengths */
|
| uint16_t code_length_histo[16];
|
|
|
| @@ -193,7 +192,7 @@ struct BrotliStateStruct {
|
|
|
| /* For InverseMoveToFrontTransform */
|
| uint32_t mtf_upper_bound;
|
| - uint8_t mtf[256 + 4];
|
| + uint32_t mtf[64 + 1];
|
|
|
| /* For custom dictionaries */
|
| const uint8_t* custom_dict;
|
| @@ -209,30 +208,38 @@ struct BrotliStateStruct {
|
| BrotliRunningDecodeUint8State substate_decode_uint8;
|
| BrotliRunningReadBlockLengthState substate_read_block_length;
|
|
|
| - uint8_t is_last_metablock;
|
| - uint8_t is_uncompressed;
|
| - uint8_t is_metadata;
|
| - uint8_t size_nibbles;
|
| + unsigned int is_last_metablock : 1;
|
| + unsigned int is_uncompressed : 1;
|
| + unsigned int is_metadata : 1;
|
| + unsigned int should_wrap_ringbuffer : 1;
|
| + unsigned int size_nibbles : 8;
|
| uint32_t window_bits;
|
|
|
| + int new_ringbuffer_size;
|
| +
|
| uint32_t num_literal_htrees;
|
| uint8_t* context_map;
|
| uint8_t* context_modes;
|
| +
|
| + uint32_t trivial_literal_contexts[8]; /* 256 bits */
|
| };
|
|
|
| -typedef struct BrotliStateStruct BrotliStateInternal;
|
| -#define BrotliState BrotliStateInternal
|
| -
|
| -BROTLI_INTERNAL void BrotliStateInit(BrotliState* s);
|
| -BROTLI_INTERNAL void BrotliStateInitWithCustomAllocators(BrotliState* s,
|
| - brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque);
|
| -BROTLI_INTERNAL void BrotliStateCleanup(BrotliState* s);
|
| -BROTLI_INTERNAL void BrotliStateMetablockBegin(BrotliState* s);
|
| -BROTLI_INTERNAL void BrotliStateCleanupAfterMetablock(BrotliState* s);
|
| -BROTLI_INTERNAL void BrotliHuffmanTreeGroupInit(BrotliState* s,
|
| - HuffmanTreeGroup* group, uint32_t alphabet_size, uint32_t ntrees);
|
| -BROTLI_INTERNAL void BrotliHuffmanTreeGroupRelease(BrotliState* s,
|
| - HuffmanTreeGroup* group);
|
| +typedef struct BrotliDecoderStateStruct BrotliDecoderStateInternal;
|
| +#define BrotliDecoderState BrotliDecoderStateInternal
|
| +
|
| +BROTLI_INTERNAL void BrotliDecoderStateInit(BrotliDecoderState* s);
|
| +BROTLI_INTERNAL void BrotliDecoderStateInitWithCustomAllocators(
|
| + BrotliDecoderState* s, brotli_alloc_func alloc_func,
|
| + brotli_free_func free_func, void* opaque);
|
| +BROTLI_INTERNAL void BrotliDecoderStateCleanup(BrotliDecoderState* s);
|
| +BROTLI_INTERNAL void BrotliDecoderStateMetablockBegin(BrotliDecoderState* s);
|
| +BROTLI_INTERNAL void BrotliDecoderStateCleanupAfterMetablock(
|
| + BrotliDecoderState* s);
|
| +BROTLI_INTERNAL BROTLI_BOOL BrotliDecoderHuffmanTreeGroupInit(
|
| + BrotliDecoderState* s, HuffmanTreeGroup* group, uint32_t alphabet_size,
|
| + uint32_t ntrees);
|
| +BROTLI_INTERNAL void BrotliDecoderHuffmanTreeGroupRelease(
|
| + BrotliDecoderState* s, HuffmanTreeGroup* group);
|
|
|
| #if defined(__cplusplus) || defined(c_plusplus)
|
| } /* extern "C" */
|
|
|