diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/fxcodec/codec/fx_codec_progress.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/core/fxcodec/codec/fx_codec_progress.cpp b/core/fxcodec/codec/fx_codec_progress.cpp index 04ca7b26c2..3551fc272d 100644 --- a/core/fxcodec/codec/fx_codec_progress.cpp +++ b/core/fxcodec/codec/fx_codec_progress.cpp @@ -1322,12 +1322,18 @@ FXCODEC_STATUS CCodec_ProgressiveDecoder::LoadImageInfo( m_startX = m_startY = 0; m_sizeX = m_sizeY = 0; m_SrcPassNumber = 0; - if (bSkipImageTypeCheck || (imageType != FXCODEC_IMAGE_UNKNOWN && - DetectImageType(imageType, pAttribute))) { + if (imageType != FXCODEC_IMAGE_UNKNOWN && + DetectImageType(imageType, pAttribute)) { m_imagType = imageType; m_status = FXCODEC_STATUS_FRAME_READY; return m_status; } + // If we got here then the image data does not match the requested decoder. + // If we're skipping the type check then bail out at this point and return + // the failed status. + if (bSkipImageTypeCheck) + return m_status; + for (int type = FXCODEC_IMAGE_BMP; type < FXCODEC_IMAGE_MAX; type++) { if (DetectImageType((FXCODEC_IMAGE_TYPE)type, pAttribute)) { m_imagType = (FXCODEC_IMAGE_TYPE)type; |