|
|
|
@ -204,18 +204,13 @@ internal sealed class PngDecoderCore : IImageDecoderInternals |
|
|
|
break; |
|
|
|
case PngChunkType.FrameControl: |
|
|
|
frameCount++; |
|
|
|
if (frameCount == this.maxFrames) |
|
|
|
{ |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
currentFrame = null; |
|
|
|
currentFrameControl = this.ReadFrameControlChunk(chunk.Data.GetSpan()); |
|
|
|
break; |
|
|
|
case PngChunkType.FrameData: |
|
|
|
if (frameCount == this.maxFrames) |
|
|
|
if (frameCount >= this.maxFrames) |
|
|
|
{ |
|
|
|
break; |
|
|
|
goto EOF; |
|
|
|
} |
|
|
|
|
|
|
|
if (image is null) |
|
|
|
@ -271,6 +266,11 @@ internal sealed class PngDecoderCore : IImageDecoderInternals |
|
|
|
previousFrameControl = currentFrameControl; |
|
|
|
} |
|
|
|
|
|
|
|
if (frameCount >= this.maxFrames) |
|
|
|
{ |
|
|
|
goto EOF; |
|
|
|
} |
|
|
|
|
|
|
|
break; |
|
|
|
case PngChunkType.Palette: |
|
|
|
this.palette = chunk.Data.GetSpan().ToArray(); |
|
|
|
@ -389,7 +389,7 @@ internal sealed class PngDecoderCore : IImageDecoderInternals |
|
|
|
break; |
|
|
|
case PngChunkType.FrameControl: |
|
|
|
++frameCount; |
|
|
|
if (frameCount == this.maxFrames) |
|
|
|
if (frameCount >= this.maxFrames) |
|
|
|
{ |
|
|
|
break; |
|
|
|
} |
|
|
|
@ -397,7 +397,7 @@ internal sealed class PngDecoderCore : IImageDecoderInternals |
|
|
|
lastFrameControl = this.ReadFrameControlChunk(chunk.Data.GetSpan()); |
|
|
|
break; |
|
|
|
case PngChunkType.FrameData: |
|
|
|
if (frameCount == this.maxFrames) |
|
|
|
if (frameCount >= this.maxFrames) |
|
|
|
{ |
|
|
|
break; |
|
|
|
} |
|
|
|
|