diff --git a/Userland/Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp b/Userland/Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp index f03f5f1683..e5d9456a33 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp +++ b/Userland/Libraries/LibGfx/ImageFormats/JPEGXLLoader.cpp @@ -1208,17 +1208,7 @@ public: TODO(); // Read symbol from entropy coded stream using D[clusters[ctx]] - u32 token {}; - TRY(m_distributions.visit( - [&](Vector const& distributions) -> ErrorOr { - token = TRY(distributions[m_clusters[context]].read_symbol(stream)); - return {}; - }, - [&](Vector const& distributions) -> ErrorOr { - token = TRY(distributions[m_clusters[context]].read_symbol(stream, m_state)); - return {}; - })); - + auto const token = TRY(read_symbol(stream, context)); auto r = TRY(read_uint(stream, m_configs[m_clusters[context]], token)); return r; } @@ -1276,6 +1266,21 @@ private: return config; } + ErrorOr read_symbol(LittleEndianInputBitStream& stream, u32 context) + { + u32 token {}; + TRY(m_distributions.visit( + [&](Vector const& distributions) -> ErrorOr { + token = TRY(distributions[m_clusters[context]].read_symbol(stream)); + return {}; + }, + [&](Vector const& distributions) -> ErrorOr { + token = TRY(distributions[m_clusters[context]].read_symbol(stream, m_state)); + return {}; + })); + return token; + } + ErrorOr read_pre_clustered_distributions(LittleEndianInputBitStream& stream, u32 num_distrib) { // C.2.2 Distribution clustering