diff options
-rw-r--r-- | AK/BitStream.h | 9 | ||||
-rw-r--r-- | Tests/AK/TestBitStream.cpp | 20 |
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); } |