MCPcopy Create free account
hub / github.com/DFHack/dfhack / huffmanDecodeSymbol

Function huffmanDecodeSymbol

depends/lodepng/lodepng.cpp:1098–1112  ·  view source on GitHub ↗

returns the code. The bit reader must already have been ensured at least 15 bits */

Source from the content-addressed store, hash-verified

1096returns the code. The bit reader must already have been ensured at least 15 bits
1097*/
1098static unsigned huffmanDecodeSymbol(LodePNGBitReader* reader, const HuffmanTree* codetree) {
1099 unsigned short code = peekBits(reader, FIRSTBITS);
1100 unsigned short l = codetree->table_len[code];
1101 unsigned short value = codetree->table_value[code];
1102 if(l <= FIRSTBITS) {
1103 advanceBits(reader, l);
1104 return value;
1105 } else {
1106 unsigned index2;
1107 advanceBits(reader, FIRSTBITS);
1108 index2 = value + peekBits(reader, l - FIRSTBITS);
1109 advanceBits(reader, codetree->table_len[index2] - FIRSTBITS);
1110 return codetree->table_value[index2];
1111 }
1112}
1113#endif /*LODEPNG_COMPILE_DECODER*/
1114
1115#ifdef LODEPNG_COMPILE_DECODER

Callers 2

getTreeInflateDynamicFunction · 0.85
inflateHuffmanBlockFunction · 0.85

Calls 2

peekBitsFunction · 0.85
advanceBitsFunction · 0.85

Tested by

no test coverage detected