mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 08:54:58 +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:
parent
c6f4ecced9
commit
d01b4327fa
6 changed files with 77 additions and 58 deletions
|
@ -28,9 +28,8 @@ static Optional<String> image_details(const String& description, const String& p
|
|||
return {};
|
||||
|
||||
auto& mapped_file = *file_or_error.value();
|
||||
auto image_decoder = Gfx::ImageDecoder::create((const u8*)mapped_file.data(), mapped_file.size());
|
||||
|
||||
if (!image_decoder->is_valid())
|
||||
auto image_decoder = Gfx::ImageDecoder::try_create(mapped_file.bytes());
|
||||
if (!image_decoder)
|
||||
return {};
|
||||
|
||||
return String::formatted("{}, {} x {}", description, image_decoder->width(), image_decoder->height());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue