#ifndef BROTLI_DEC_HUFFMAN_H_
#define BROTLI_DEC_HUFFMAN_H_
#include <brotli/types.h>
#include "../common/platform.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
#define BROTLI_HUFFMAN_MAX_CODE_LENGTH …
#define BROTLI_HUFFMAN_MAX_SIZE_26 …
#define BROTLI_HUFFMAN_MAX_SIZE_258 …
#define BROTLI_HUFFMAN_MAX_SIZE_272 …
#define BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH …
#if ((defined(BROTLI_TARGET_ARMV7) || defined(BROTLI_TARGET_ARMV8_32)) && \
BROTLI_GNUC_HAS_ATTRIBUTE(aligned, 2, 7, 0))
#define BROTLI_HUFFMAN_CODE_FAST_LOAD
#endif
#if !defined(BROTLI_HUFFMAN_CODE_FAST_LOAD)
HuffmanCode;
static BROTLI_INLINE HuffmanCode ConstructHuffmanCode(const uint8_t bits,
const uint16_t value) { … }
#define BROTLI_HC_MARK_TABLE_FOR_FAST_LOAD(H) …
#define BROTLI_HC_ADJUST_TABLE_INDEX(H, V) …
#define BROTLI_HC_FAST_LOAD_BITS(H) …
#define BROTLI_HC_FAST_LOAD_VALUE(H) …
#else
typedef BROTLI_ALIGNED(4) uint32_t HuffmanCode;
static BROTLI_INLINE HuffmanCode ConstructHuffmanCode(const uint8_t bits,
const uint16_t value) {
return (HuffmanCode) ((value & 0xFFFF) << 16) | (bits & 0xFF);
}
#define BROTLI_HC_MARK_TABLE_FOR_FAST_LOAD …
#define BROTLI_HC_ADJUST_TABLE_INDEX …
#define BROTLI_HC_FAST_LOAD_BITS …
#define BROTLI_HC_FAST_LOAD_VALUE …
#endif
BROTLI_INTERNAL void BrotliBuildCodeLengthsHuffmanTable(HuffmanCode* root_table,
const uint8_t* const code_lengths, uint16_t* count);
BROTLI_INTERNAL uint32_t BrotliBuildHuffmanTable(HuffmanCode* root_table,
int root_bits, const uint16_t* const symbol_lists, uint16_t* count);
BROTLI_INTERNAL uint32_t BrotliBuildSimpleHuffmanTable(HuffmanCode* table,
int root_bits, uint16_t* symbols, uint32_t num_symbols);
HuffmanTreeGroup;
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif