|
@@ -110,6 +110,7 @@ u32 DeflateDecompressor::CanonicalCode::read_symbol(InputBitStream& stream) cons
|
|
|
for (;;) {
|
|
|
code_bits = code_bits << 1 | stream.read_bits(1);
|
|
|
|
|
|
+ // FIXME: This seems really inefficent, this could be an index into an array instead.
|
|
|
size_t index;
|
|
|
if (AK::binary_search(m_symbol_codes.span(), code_bits, AK::integral_compare<u32>, &index))
|
|
|
return m_symbol_values[index];
|
|
@@ -405,7 +406,7 @@ void DeflateDecompressor::decode_codes(CanonicalCode& literal_code, Optional<Can
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- auto nrepeat = 3 + m_input_stream.read_bits(3);
|
|
|
+ auto nrepeat = 3 + m_input_stream.read_bits(2);
|
|
|
for (size_t j = 0; j < nrepeat; ++j)
|
|
|
code_lengths.append(code_lengths.last());
|
|
|
}
|