mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-29 16:21:29 +00:00
LibGfx/WebP: Stop passing context to decode_webp_chunk_VP8L_contents()
It was used only for context.error(), and the calling code needs to be changed to deal normal Errors anyways, since CanonicalCode can produce them.
This commit is contained in:
parent
97d085abea
commit
135b029250
Notes:
sideshowbarker
2024-07-17 07:16:27 +09:00
Author: https://github.com/nico Commit: https://github.com/SerenityOS/serenity/commit/135b029250 Pull-request: https://github.com/SerenityOS/serenity/pull/18707
|
@ -1230,7 +1230,7 @@ ErrorOr<NonnullRefPtr<Bitmap>> ColorIndexingTransform::transform(NonnullRefPtr<B
|
|||
|
||||
// https://developers.google.com/speed/webp/docs/riff_container#simple_file_format_lossless
|
||||
// https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification#7_overall_structure_of_the_format
|
||||
static ErrorOr<NonnullRefPtr<Bitmap>> decode_webp_chunk_VP8L_contents(WebPLoadingContext& context, VP8LHeader const& vp8l_header, ReadonlyBytes lossless_data);
|
||||
static ErrorOr<NonnullRefPtr<Bitmap>> decode_webp_chunk_VP8L_contents(VP8LHeader const& vp8l_header, ReadonlyBytes lossless_data);
|
||||
|
||||
static ErrorOr<NonnullRefPtr<Bitmap>> decode_webp_chunk_VP8L(WebPLoadingContext& context, Chunk const& vp8l_chunk)
|
||||
{
|
||||
|
@ -1239,11 +1239,11 @@ static ErrorOr<NonnullRefPtr<Bitmap>> decode_webp_chunk_VP8L(WebPLoadingContext&
|
|||
|
||||
auto vp8l_header = TRY(decode_webp_chunk_VP8L_header(vp8l_chunk));
|
||||
ReadonlyBytes lossless_data = vp8l_chunk.data.slice(5);
|
||||
return decode_webp_chunk_VP8L_contents(context, vp8l_header, lossless_data);
|
||||
return decode_webp_chunk_VP8L_contents(vp8l_header, lossless_data);
|
||||
}
|
||||
|
||||
// Decodes the lossless webp bitstream following the 5-byte header information.
|
||||
static ErrorOr<NonnullRefPtr<Bitmap>> decode_webp_chunk_VP8L_contents(WebPLoadingContext& context, VP8LHeader const& vp8l_header, ReadonlyBytes lossless_data)
|
||||
static ErrorOr<NonnullRefPtr<Bitmap>> decode_webp_chunk_VP8L_contents(VP8LHeader const& vp8l_header, ReadonlyBytes lossless_data)
|
||||
{
|
||||
FixedMemoryStream memory_stream { lossless_data };
|
||||
LittleEndianInputBitStream bit_stream { MaybeOwned<Stream>(memory_stream) };
|
||||
|
@ -1283,7 +1283,7 @@ static ErrorOr<NonnullRefPtr<Bitmap>> decode_webp_chunk_VP8L_contents(WebPLoadin
|
|||
// Check that each transform is used only once.
|
||||
u8 mask = 1 << (int)transform_type;
|
||||
if (seen_transforms & mask)
|
||||
return context.error("WebPImageDecoderPlugin: transform type used multiple times");
|
||||
return Error::from_string_literal("WebPImageDecoderPlugin: transform type used multiple times");
|
||||
seen_transforms |= mask;
|
||||
|
||||
switch (transform_type) {
|
||||
|
@ -1349,7 +1349,7 @@ static ErrorOr<void> decode_webp_chunk_ALPH(WebPLoadingContext& context, Chunk c
|
|||
// Once the image-stream is decoded into ARGB color values, following the process described in the lossless format specification,
|
||||
// the transparency information must be extracted from the green channel of the ARGB quadruplet."
|
||||
VP8LHeader vp8l_header = { static_cast<u16>(bitmap.width()), static_cast<u16>(bitmap.height()), /*is_alpha_used=*/false };
|
||||
auto lossless_bitmap = TRY(decode_webp_chunk_VP8L_contents(context, vp8l_header, alpha_data));
|
||||
auto lossless_bitmap = TRY(decode_webp_chunk_VP8L_contents(vp8l_header, alpha_data));
|
||||
|
||||
if (pixel_count != static_cast<size_t>(lossless_bitmap->width() * lossless_bitmap->height()))
|
||||
return context.error("WebPImageDecoderPlugin: decompressed ALPH dimensions don't match VP8 dimensions");
|
||||
|
|
Loading…
Reference in a new issue