summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AK/BitStream.h9
-rw-r--r--Tests/AK/TestBitStream.cpp20
2 files changed, 12 insertions, 17 deletions
diff --git a/AK/BitStream.h b/AK/BitStream.h
index 775a23c5fb..310217e0e1 100644
--- a/AK/BitStream.h
+++ b/AK/BitStream.h
@@ -225,9 +225,9 @@ private:
/// in big-endian order to another stream.
class BigEndianOutputBitStream : public Stream {
public:
- static ErrorOr<NonnullOwnPtr<BigEndianOutputBitStream>> construct(MaybeOwned<Stream> stream)
+ explicit BigEndianOutputBitStream(MaybeOwned<Stream> stream)
+ : m_stream(move(stream))
{
- return adopt_nonnull_own_or_enomem<BigEndianOutputBitStream>(new BigEndianOutputBitStream(move(stream)));
}
virtual ErrorOr<Bytes> read(Bytes) override
@@ -294,11 +294,6 @@ public:
}
private:
- BigEndianOutputBitStream(MaybeOwned<Stream> stream)
- : m_stream(move(stream))
- {
- }
-
MaybeOwned<Stream> m_stream;
u8 m_current_byte { 0 };
size_t m_bit_offset { 0 };
diff --git a/Tests/AK/TestBitStream.cpp b/Tests/AK/TestBitStream.cpp
index 1e48050bc7..5e99f61bd2 100644
--- a/Tests/AK/TestBitStream.cpp
+++ b/Tests/AK/TestBitStream.cpp
@@ -71,21 +71,21 @@ TEST_CASE(big_endian_bit_stream_input_output_match)
// Note: The bit stream only ever reads from/writes to the underlying stream in one byte chunks,
// so testing with sizes that will not trigger a write will yield unexpected results.
- auto bit_write_stream = MUST(BigEndianOutputBitStream::construct(MaybeOwned<AK::Stream>(*memory_stream)));
+ BigEndianOutputBitStream bit_write_stream { MaybeOwned<AK::Stream>(*memory_stream) };
BigEndianInputBitStream bit_read_stream { MaybeOwned<AK::Stream>(*memory_stream) };
// Test two mirrored chunks of a fully mirrored pattern to check that we are not dropping bits.
{
- MUST(bit_write_stream->write_bits(0b1111u, 4));
- MUST(bit_write_stream->write_bits(0b1111u, 4));
+ MUST(bit_write_stream.write_bits(0b1111u, 4));
+ MUST(bit_write_stream.write_bits(0b1111u, 4));
auto result = MUST(bit_read_stream.read_bits(4));
EXPECT_EQ(0b1111u, result);
result = MUST(bit_read_stream.read_bits(4));
EXPECT_EQ(0b1111u, result);
}
{
- MUST(bit_write_stream->write_bits(0b0000u, 4));
- MUST(bit_write_stream->write_bits(0b0000u, 4));
+ MUST(bit_write_stream.write_bits(0b0000u, 4));
+ MUST(bit_write_stream.write_bits(0b0000u, 4));
auto result = MUST(bit_read_stream.read_bits(4));
EXPECT_EQ(0b0000u, result);
result = MUST(bit_read_stream.read_bits(4));
@@ -94,8 +94,8 @@ TEST_CASE(big_endian_bit_stream_input_output_match)
// Test two mirrored chunks of a non-mirrored pattern to check that we are writing bits within a pattern in the correct order.
{
- MUST(bit_write_stream->write_bits(0b1000u, 4));
- MUST(bit_write_stream->write_bits(0b1000u, 4));
+ MUST(bit_write_stream.write_bits(0b1000u, 4));
+ MUST(bit_write_stream.write_bits(0b1000u, 4));
auto result = MUST(bit_read_stream.read_bits(4));
EXPECT_EQ(0b1000u, result);
result = MUST(bit_read_stream.read_bits(4));
@@ -104,8 +104,8 @@ TEST_CASE(big_endian_bit_stream_input_output_match)
// Test two different chunks to check that we are not confusing their order.
{
- MUST(bit_write_stream->write_bits(0b1000u, 4));
- MUST(bit_write_stream->write_bits(0b0100u, 4));
+ MUST(bit_write_stream.write_bits(0b1000u, 4));
+ MUST(bit_write_stream.write_bits(0b0100u, 4));
auto result = MUST(bit_read_stream.read_bits(4));
EXPECT_EQ(0b1000u, result);
result = MUST(bit_read_stream.read_bits(4));
@@ -114,7 +114,7 @@ TEST_CASE(big_endian_bit_stream_input_output_match)
// Test a pattern that spans multiple bytes.
{
- MUST(bit_write_stream->write_bits(0b1101001000100001u, 16));
+ MUST(bit_write_stream.write_bits(0b1101001000100001u, 16));
auto result = MUST(bit_read_stream.read_bits(16));
EXPECT_EQ(0b1101001000100001u, result);
}