diff --git a/Userland/Libraries/LibGfx/ImageFormats/PortableImageLoaderCommon.h b/Userland/Libraries/LibGfx/ImageFormats/PortableImageLoaderCommon.h index c9538111e4..3b90c024c1 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/PortableImageLoaderCommon.h +++ b/Userland/Libraries/LibGfx/ImageFormats/PortableImageLoaderCommon.h @@ -195,9 +195,8 @@ static ErrorOr read_header(Context& context) template static ErrorOr decode(TContext& context) { - VERIFY(context.state == TContext::State::NotDecoded); + VERIFY(context.state == TContext::State::HeaderDecoded); - TRY(read_header(context)); TRY(read_image_data(context)); context.state = TContext::State::BitmapDecoded; diff --git a/Userland/Libraries/LibGfx/ImageFormats/PortableImageMapLoader.h b/Userland/Libraries/LibGfx/ImageFormats/PortableImageMapLoader.h index 80f6bc20a5..7c33c564f0 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/PortableImageMapLoader.h +++ b/Userland/Libraries/LibGfx/ImageFormats/PortableImageMapLoader.h @@ -82,17 +82,6 @@ PortableImageDecoderPlugin::PortableImageDecoderPlugin(NonnullOwnPtr IntSize PortableImageDecoderPlugin::size() { - if (m_context->state == TContext::State::Error) - return {}; - - if (m_context->state < TContext::State::BitmapDecoded) { - if (decode(*m_context).is_error()) { - m_context->state = TContext::State::Error; - // FIXME: We should propagate errors - return {}; - } - } - return { m_context->width, m_context->height }; } @@ -100,7 +89,9 @@ template ErrorOr> PortableImageDecoderPlugin::create(ReadonlyBytes data) { auto stream = TRY(try_make(data)); - return adopt_nonnull_own_or_enomem(new (nothrow) PortableImageDecoderPlugin(move(stream))); + auto plugin = TRY(adopt_nonnull_own_or_enomem(new (nothrow) PortableImageDecoderPlugin(move(stream)))); + TRY(read_header(*plugin->m_context)); + return plugin; } template