mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 22:57:44 +00:00
LibCompress: Switch DeflateDecompressor
to a fallible constructor
We don't have anything fallible in there yet, but we will soon switch the seekback buffer to the new `CircularBuffer`, which has a fallible constructor. We have to do the same for the internal `GzipDecompressor::Member` class, as it needs to construct a `DeflateCompressor` from its received stream.
This commit is contained in:
parent
d717a08003
commit
d23f0a7405
4 changed files with 34 additions and 16 deletions
|
@ -56,25 +56,24 @@ public:
|
|||
private:
|
||||
class Member {
|
||||
public:
|
||||
Member(BlockHeader header, Core::Stream::Stream& stream)
|
||||
: m_header(header)
|
||||
, m_stream(Core::Stream::Handle<Core::Stream::Stream>(stream))
|
||||
{
|
||||
}
|
||||
static ErrorOr<NonnullOwnPtr<Member>> construct(BlockHeader header, Core::Stream::Stream&);
|
||||
|
||||
BlockHeader m_header;
|
||||
DeflateDecompressor m_stream;
|
||||
NonnullOwnPtr<DeflateDecompressor> m_stream;
|
||||
Crypto::Checksum::CRC32 m_checksum;
|
||||
size_t m_nread { 0 };
|
||||
|
||||
private:
|
||||
Member(BlockHeader, NonnullOwnPtr<DeflateDecompressor>);
|
||||
};
|
||||
|
||||
Member const& current_member() const { return m_current_member.value(); }
|
||||
Member& current_member() { return m_current_member.value(); }
|
||||
Member const& current_member() const { return *m_current_member; }
|
||||
Member& current_member() { return *m_current_member; }
|
||||
|
||||
NonnullOwnPtr<Core::Stream::Stream> m_input_stream;
|
||||
u8 m_partial_header[sizeof(BlockHeader)];
|
||||
size_t m_partial_header_offset { 0 };
|
||||
Optional<Member> m_current_member;
|
||||
OwnPtr<Member> m_current_member {};
|
||||
|
||||
bool m_eof { false };
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue