mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-02 13:58:40 +09:00
Issue #2073 - m-c 523950: Discard decoded frames of very large GIF animations (squashed)
Controlled by image.animated.decode-on-demand.threshold-kb, default 256MB Includes squashed bugfixes/regressions: - m-c 1444537: Shutting down the decode pool should make animated decoders bail early - m-c 1628606: Make sure to mark the surface cache entry available before sending the frame complete notification - m-c 1502275: Skip recreating the decoder after redecode errors if an animated image is reset - m-c 1443232: Don't insert frames into our AnimationFrameBuffer that we consider in error and unusable
This commit is contained in:
parent
eac8afce35
commit
e96122ede2
25 changed files with 925 additions and 63 deletions
|
|
@ -36,6 +36,7 @@ Decoder::Decoder(RasterImage* aImage)
|
|||
, mHaveExplicitOutputSize(false)
|
||||
, mInFrame(false)
|
||||
, mFinishedNewFrame(false)
|
||||
, mHasFrameToTake(false)
|
||||
, mReachedTerminalState(false)
|
||||
, mDecodeDone(false)
|
||||
, mError(false)
|
||||
|
|
@ -254,6 +255,8 @@ Decoder::AllocateFrame(const gfx::IntSize& aOutputSize,
|
|||
mCurrentFrame.get());
|
||||
|
||||
if (mCurrentFrame) {
|
||||
mHasFrameToTake = true;
|
||||
|
||||
// Gather the raw pointers the decoders will use.
|
||||
mCurrentFrame->GetImageData(&mImageData, &mImageDataLength);
|
||||
mCurrentFrame->GetPaletteData(&mColormap, &mColormapSize);
|
||||
|
|
@ -474,6 +477,7 @@ Decoder::PostError()
|
|||
mCurrentFrame->Abort();
|
||||
mInFrame = false;
|
||||
--mFrameCount;
|
||||
mHasFrameToTake = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue