Bug 170721 - REGRESSION(r215211): [GTK] Lots of image related tests are crashing, causing the test bot to exit early
Summary: REGRESSION(r215211): [GTK] Lots of image related tests are crashing, causing ...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKitGTK (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Miguel Gomez
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-04-11 02:43 PDT by Miguel Gomez
Modified: 2017-04-11 09:21 PDT (History)
5 users (show)

See Also:


Attachments
Patch (5.77 KB, patch)
2017-04-11 02:49 PDT, Miguel Gomez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Miguel Gomez 2017-04-11 02:43:16 PDT
There seems to be an infinite loop created by r215211.
Comment 1 Miguel Gomez 2017-04-11 02:49:16 PDT
Created attachment 306791 [details]
Patch
Comment 2 WebKit Commit Bot 2017-04-11 03:22:05 PDT
Comment on attachment 306791 [details]
Patch

Clearing flags on attachment: 306791

Committed r215224: <http://trac.webkit.org/changeset/215224>
Comment 3 WebKit Commit Bot 2017-04-11 03:22:07 PDT
All reviewed patches have been landed.  Closing bug.
Comment 4 Said Abou-Hallawa 2017-04-11 09:21:54 PDT
Comment on attachment 306791 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=306791&action=review

> Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp:61
> +    if (ImageDecoder::encodedDataStatus() < EncodedDataStatus::SizeAvailable)

Alternately you could change the ImageDecoder::isSizeAvailable() in platform/image-decoders/ImageDecoder.h to force calling the base class function:

<< bool isSizeAvailable() { return encodedDataStatus() >= EncodedDataStatus::SizeAvailable; }
>> bool isSizeAvailable() { return ImageDecoder::encodedDataStatus() >= EncodedDataStatus::SizeAvailable; }

This should avoid making the same change in six different source files. And this is the correct behavior since isSizeAvailable() tells the status of the encoded data before doing any decoding.