1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-10 18:10:56 +09:00

LibCompress: Move CanonicalCode out of DeflateDecompressor.

This commit is contained in:
asynts 2020-09-10 14:06:50 +02:00 committed by Andreas Kling
parent 49e6ff8958
commit 5c9c0082a1
Notes: sideshowbarker 2024-07-19 02:46:15 +09:00
2 changed files with 19 additions and 19 deletions

View file

@ -34,7 +34,7 @@
namespace Compress {
const DeflateDecompressor::CanonicalCode& DeflateDecompressor::CanonicalCode::fixed_literal_codes()
const CanonicalCode& CanonicalCode::fixed_literal_codes()
{
static CanonicalCode code;
static bool initialized = false;
@ -54,7 +54,7 @@ const DeflateDecompressor::CanonicalCode& DeflateDecompressor::CanonicalCode::fi
return code;
}
const DeflateDecompressor::CanonicalCode& DeflateDecompressor::CanonicalCode::fixed_distance_codes()
const CanonicalCode& CanonicalCode::fixed_distance_codes()
{
static CanonicalCode code;
static bool initialized = false;
@ -71,7 +71,7 @@ const DeflateDecompressor::CanonicalCode& DeflateDecompressor::CanonicalCode::fi
return code;
}
Optional<DeflateDecompressor::CanonicalCode> DeflateDecompressor::CanonicalCode::from_bytes(ReadonlyBytes bytes)
Optional<CanonicalCode> CanonicalCode::from_bytes(ReadonlyBytes bytes)
{
// FIXME: I can't quite follow the algorithm here, but it seems to work.
@ -103,7 +103,7 @@ Optional<DeflateDecompressor::CanonicalCode> DeflateDecompressor::CanonicalCode:
return code;
}
u32 DeflateDecompressor::CanonicalCode::read_symbol(InputBitStream& stream) const
u32 CanonicalCode::read_symbol(InputBitStream& stream) const
{
u32 code_bits = 1;

View file

@ -34,23 +34,23 @@
namespace Compress {
class CanonicalCode {
public:
CanonicalCode() = default;
u32 read_symbol(InputBitStream&) const;
static const CanonicalCode& fixed_literal_codes();
static const CanonicalCode& fixed_distance_codes();
static Optional<CanonicalCode> from_bytes(ReadonlyBytes);
private:
Vector<u32> m_symbol_codes;
Vector<u32> m_symbol_values;
};
class DeflateDecompressor final : public InputStream {
private:
class CanonicalCode {
public:
CanonicalCode() = default;
u32 read_symbol(InputBitStream&) const;
static const CanonicalCode& fixed_literal_codes();
static const CanonicalCode& fixed_distance_codes();
static Optional<CanonicalCode> from_bytes(ReadonlyBytes);
private:
Vector<u32> m_symbol_codes;
Vector<u32> m_symbol_values;
};
class CompressedBlock {
public:
CompressedBlock(DeflateDecompressor&, CanonicalCode literal_codes, Optional<CanonicalCode> distance_codes);