From 3fdc000b9012a56d6e9211a128a6492835a23783 Mon Sep 17 00:00:00 2001 From: Lucas CHOLLET Date: Fri, 4 Aug 2023 15:38:22 -0400 Subject: [PATCH] LibGfx/JPEGXL: Use a wider type for the context id These numbers can be way bigger than 255, let's use a `u32` instead of a `u8`, which is what other decoders do. --- .../Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Userland/Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp b/Userland/Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp index ca02eb39cc..f03f5f1683 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp +++ b/Userland/Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp @@ -1140,7 +1140,7 @@ public: dbgln("JPEGXLLoader: ANS decoder left in invalid state"); } - static ErrorOr create(LittleEndianInputBitStream& stream, u8 initial_num_distrib) + static ErrorOr create(LittleEndianInputBitStream& stream, u32 initial_num_distrib) { EntropyDecoder entropy_decoder; // C.2 - Distribution decoding @@ -1200,7 +1200,7 @@ public: return entropy_decoder; } - ErrorOr decode_hybrid_uint(LittleEndianInputBitStream& stream, u16 context) + ErrorOr decode_hybrid_uint(LittleEndianInputBitStream& stream, u32 context) { // C.3.3 - Hybrid integer decoding @@ -1276,7 +1276,7 @@ private: return config; } - ErrorOr read_pre_clustered_distributions(LittleEndianInputBitStream& stream, u8 num_distrib) + ErrorOr read_pre_clustered_distributions(LittleEndianInputBitStream& stream, u32 num_distrib) { // C.2.2 Distribution clustering if (num_distrib == 1) { @@ -1293,7 +1293,7 @@ private: u16 num_clusters = 0; auto const read_clusters = [&](auto&& reader) -> ErrorOr { - for (u8 i {}; i < num_distrib; ++i) { + for (u32 i {}; i < num_distrib; ++i) { m_clusters[i] = TRY(reader()); if (m_clusters[i] >= num_clusters) num_clusters = m_clusters[i] + 1; @@ -1335,7 +1335,7 @@ private: class MATree { public: struct LeafNode { - u8 ctx {}; + u32 ctx {}; u8 predictor {}; i32 offset {}; u32 multiplier {};