1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-28 16:52:07 +00:00

LibGfx: Improve ImageDecoder construction

Previously, ImageDecoder::create() would return a NonnullRefPtr and
could not "fail", although the returned decoder may be "invalid" which
you then had to check anyway.

The new interface looks like this:

    static RefPtr<Gfx::ImageDecoder> try_create(ReadonlyBytes);

This simplifies ImageDecoder since it no longer has to worry about its
validity. Client code gets slightly clearer as well.
This commit is contained in:
Andreas Kling 2021-07-27 01:12:53 +02:00
parent c6f4ecced9
commit d01b4327fa
6 changed files with 77 additions and 58 deletions

View file

@ -78,7 +78,9 @@ void ImageWidget::load_from_file(const StringView& path)
return;
auto& mapped_file = *file_or_error.value();
m_image_decoder = Gfx::ImageDecoder::create((const u8*)mapped_file.data(), mapped_file.size());
m_image_decoder = Gfx::ImageDecoder::try_create(mapped_file.bytes());
VERIFY(m_image_decoder);
auto bitmap = m_image_decoder->bitmap();
VERIFY(bitmap);