소스 검색

AK: Remove the fallbile constructor from `BigEndianOutputBitStream`

Tim Schumacher 2 년 전
부모
커밋
0fee97916b
2개의 변경된 파일12개의 추가작업 그리고 17개의 파일을 삭제
  1. 2 7
      AK/BitStream.h
  2. 10 10
      Tests/AK/TestBitStream.cpp

+ 2 - 7
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 };

+ 10 - 10
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);
     }