Closed
Bug 857623
Opened 11 years ago
Closed 11 years ago
ABORT: Decode already done!: '!mDecodeDone' loading animated gif
Categories
(Core :: Graphics: ImageLib, defect)
Tracking
()
RESOLVED
FIXED
mozilla23
People
(Reporter: bc, Assigned: seth)
References
()
Details
(Keywords: assertion, regression, testcase)
Attachments
(2 files, 1 obsolete file)
17.16 KB,
image/gif
|
Details | |
1011 bytes,
patch
|
tnikkel
:
review+
|
Details | Diff | Splinter Review |
1. http://www.absba.org/showthread.php?t=884984 2. ABORT: Decode already done!: '!mDecodeDone', file c:/work/mozilla/builds/nightly/mozilla/image/src/Decoder.cpp, line 366 Aurora/22, Nightly/23 Windows, Linux, OSX. Don't see it in Beta.
Assignee | ||
Comment 1•11 years ago
|
||
Taking a look at this.
Assignee | ||
Comment 2•11 years ago
|
||
Here's the fix. We could previous end up calling PostDecodeDone without calling PostFrameStop, but now we use FinishInternal rather than calling PostDecodeDone directly, which calls PostFrameStop if needed.
Attachment #733019 -
Flags: review?(jmuizelaar)
Assignee | ||
Updated•11 years ago
|
Assignee: nobody → seth
Comment 3•11 years ago
|
||
This also fixes bug 856616. The question (if you look at the patch for that bug) is if PostDecodeDone should be called even for the size decode or not. The simpler (but wrong?) patch from bug 856616 also fixes both problems. PostDecodeDone is in the base class, and it wasn't clear if it should be called for size decodes as well.
Assignee | ||
Comment 4•11 years ago
|
||
(In reply to Milan Sreckovic [:milan] from comment #3) > The question (if you look at the patch for that > bug) is if PostDecodeDone should be called even for the size decode or not. I assume Joe doesn't think so, or he wouldn't have NS_ABORT_IF_FALSE(!IsSizeDecode()) in PostDecodeDone. (You'd have to ask Joe to find out the reason things are designed that way, though.) > The simpler (but wrong?) patch from bug 856616 also fixes both problems. I feel more comfortable with this patch than that one. I'd rather not duplicate this logic in multiple places, and I think calling FinishInternal nicely takes care of several potential problems at once. Maybe we should dupe bug 856616 to this bug?
Comment 5•11 years ago
|
||
I'll make it a dupe and comment in the other bug for Joe to check if he meant that assert to be there. I'm a bit nervous about not setting mGIFOpen to false anymore in the size decode case, but I don't know if we can ever get there.
Assignee | ||
Comment 7•11 years ago
|
||
Yeah, I know what you mean regarding mGIFOpen. I don't like that the invariants are so unclear in this code. But it looks like it doesn't matter, because if you look at the "case gif_image_header" code, if we're doing a size decode we just bail and don't bother to jump to the "gif_done" case anyway.
Comment 8•11 years ago
|
||
Perhaps we want a !IsSizeDecode() assert in gif_done case as well? It is the assumption right now, may as well protect from it changing in the future?
Assignee | ||
Comment 9•11 years ago
|
||
Yeah, I think that sounds like a good idea. I'll update the patch shortly to add that assertion.
Assignee | ||
Comment 10•11 years ago
|
||
Updated patch which includes the assertion suggested in comment #8.
Attachment #734087 -
Flags: review?(jmuizelaar)
Assignee | ||
Updated•11 years ago
|
Attachment #733019 -
Attachment is obsolete: true
Attachment #733019 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 11•11 years ago
|
||
Try job here: https://tbpl.mozilla.org/?tree=Try&rev=321a9b0c672e
Updated•11 years ago
|
Attachment #734087 -
Flags: review?(jmuizelaar) → review+
Assignee | ||
Comment 12•11 years ago
|
||
Thanks for the review! If try looks good I'll push this in later today.
Assignee | ||
Comment 13•11 years ago
|
||
Looks good. Pushing to inbound: https://hg.mozilla.org/integration/mozilla-inbound/rev/3e19dec4264f
Comment 14•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/3e19dec4264f
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
You need to log in
before you can comment on or make changes to this bug.
Description
•