Closed
Bug 1160801
Opened 11 years ago
Closed 11 years ago
Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Unexpected DisposalMethod) @ mozilla::image::FrameAnimator::DoBlend
Categories
(Core :: Graphics: ImageLib, defect)
Core
Graphics: ImageLib
Tracking
()
RESOLVED
FIXED
mozilla41
People
(Reporter: bc, Assigned: seth)
References
()
Details
(Keywords: assertion)
Attachments
(2 files, 2 obsolete files)
|
129.21 KB,
text/plain
|
Details | |
|
3.44 KB,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
1. http://ohnotheydidnt.livejournal.com/?skip=30
2. Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Unexpected DisposalMethod)
Nightly OSX, Linux, Windows 7
| Assignee | ||
Comment 1•11 years ago
|
||
Thanks for reporting this! This is potentially serious...
| Assignee | ||
Comment 2•11 years ago
|
||
The GIF89a spec defines four disposal methods (see page 16):
http://www.w3.org/Graphics/GIF/spec-gif89a.txt
Disposal methods 0, 1, 2, and 3 are used. 4, 5, 6, and 7 are left undefined by
the spec. We treat 4 as 3, but we currently have no interpretation for 5, 6, or
7. There's no valid value in the DisposalMethod enumeration for these undefined
disposal methods, and that's what caused the assertion to fire.
This patch makes us treat methods 5, 6, and 7 as method 0
(DisposalMethod::NOT_SPECIFIED). This eliminates the assertion, and causes us to
render the GIF in question the same way that WebKit does.
I've also included regression tests, each of which tests correct handling for
one of the undefined disposal methods.
Attachment #8601229 -
Flags: review?(jmuizelaar)
| Assignee | ||
Updated•11 years ago
|
Assignee: nobody → seth
Status: NEW → ASSIGNED
| Assignee | ||
Comment 3•11 years ago
|
||
Ack, left a print in the previous patch by mistake.
Attachment #8601230 -
Flags: review?(jmuizelaar)
| Assignee | ||
Updated•11 years ago
|
Attachment #8601229 -
Attachment is obsolete: true
Attachment #8601229 -
Flags: review?(jmuizelaar)
| Assignee | ||
Comment 4•11 years ago
|
||
| Assignee | ||
Comment 5•11 years ago
|
||
Hmm, I can see this test becoming an intermittent orange. Unfortunately I don't think delaytest.html is reliable. =\
Perhaps I should just make these crashtests...
| Assignee | ||
Comment 6•11 years ago
|
||
Same C++ code, but switched the tests to just be crashtests.
Attachment #8602387 -
Flags: review?(jmuizelaar)
| Assignee | ||
Updated•11 years ago
|
Attachment #8601230 -
Attachment is obsolete: true
Attachment #8601230 -
Flags: review?(jmuizelaar)
| Assignee | ||
Comment 7•11 years ago
|
||
Updated•11 years ago
|
Attachment #8602387 -
Flags: review?(jmuizelaar) → review+
| Assignee | ||
Comment 8•11 years ago
|
||
| Assignee | ||
Comment 9•11 years ago
|
||
Thanks for the review! I went ahead and pushed since all seems well on try.
Comment 10•11 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
status-firefox41:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
You need to log in
before you can comment on or make changes to this bug.
Description
•