1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 20:07:34 +00:00

Userland: Return empty if ImageDecoder client receives an invalid frame

This simplifies error checking for all the users of the ImageDecoder
client.
This commit is contained in:
Tim Ledbetter 2023-10-01 19:56:19 +01:00 committed by Andreas Kling
parent e6c1429311
commit eaa6304aab
6 changed files with 11 additions and 15 deletions

View file

@ -246,7 +246,7 @@ ErrorOr<void> ViewWidget::try_open_file(String const& path, Core::File& file)
frames.ensure_capacity(decoded_image->frames.size());
for (u32 i = 0; i < decoded_image->frames.size(); i++) {
auto& frame_data = decoded_image->frames[i];
frames.unchecked_append({ BitmapImage::create(*frame_data.bitmap), int(frame_data.duration) });
frames.unchecked_append({ BitmapImage::create(frame_data.bitmap), int(frame_data.duration) });
}
}

View file

@ -66,10 +66,7 @@ ErrorOr<NonnullRefPtr<Gfx::Bitmap>> Image::decode_bitmap(ReadonlyBytes bitmap_da
if (decoded_image.frames.is_empty())
return Error::from_string_literal("Image decode failed (no frames)");
auto decoded_bitmap = decoded_image.frames.first().bitmap;
if (decoded_bitmap.is_null())
return Error::from_string_literal("Image decode failed (no bitmap for frame)");
return decoded_bitmap.release_nonnull();
return decoded_image.frames.first().bitmap;
}
ErrorOr<NonnullRefPtr<Image>> Image::create_from_bitmap(NonnullRefPtr<Gfx::Bitmap> const& bitmap)