Browse Source

AK: Rename the `const` overload of `FixedMemoryStream::bytes()`

Due to overload resolutions rules, this simple code provokes a crash:

ReadonlyBytes readonly_bytes{};
FixedMemoryStream stream{readonly_bytes};
ReadonlyBytes give_them_back{stream.bytes()};
    // -> Panics on VERIFY(m_writing_enabled);
    // but this is fine:
auto bytes = static_cast<FixedMemoryStream const&>(*stream).bytes()

If we need to be explicit about it, let's rename the overload instead of
adding that `static_cast`.
Lucas CHOLLET 2 years ago
parent
commit
18b7ddd0b5
3 changed files with 3 additions and 3 deletions
  1. 1 1
      AK/MemoryStream.cpp
  2. 1 1
      AK/MemoryStream.h
  3. 1 1
      Userland/Libraries/LibVideo/VP9/Context.h

+ 1 - 1
AK/MemoryStream.cpp

@@ -114,7 +114,7 @@ Bytes FixedMemoryStream::bytes()
     VERIFY(m_writing_enabled);
     return m_bytes;
 }
-ReadonlyBytes FixedMemoryStream::bytes() const
+ReadonlyBytes FixedMemoryStream::readonly_bytes() const
 {
     return m_bytes;
 }

+ 1 - 1
AK/MemoryStream.h

@@ -32,7 +32,7 @@ public:
     virtual ErrorOr<void> write_until_depleted(ReadonlyBytes bytes) override;
 
     Bytes bytes();
-    ReadonlyBytes bytes() const;
+    ReadonlyBytes readonly_bytes() const;
     size_t offset() const;
     size_t remaining() const;
 

+ 1 - 1
Userland/Libraries/LibVideo/VP9/Context.h

@@ -59,7 +59,7 @@ public:
 
     DecoderErrorOr<BooleanDecoder> create_range_decoder(size_t size)
     {
-        ReadonlyBytes stream_data = static_cast<FixedMemoryStream const&>(*stream).bytes();
+        ReadonlyBytes stream_data = stream->readonly_bytes();
         auto compressed_header_data = ReadonlyBytes(stream_data.data() + stream->offset(), size);
 
         // 9.2.1: The Boolean decoding process specified in section 9.2.2 is invoked to read a marker syntax element from the