Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1879)

Unified Diff: core/fxcodec/codec/fx_codec_progress.cpp

Issue 2430743003: in the attempt to fix 627393, changed IFX_FileRead's readBlock to return the length it reads
Patch Set: delete the include folder Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: core/fxcodec/codec/fx_codec_progress.cpp
diff --git a/core/fxcodec/codec/fx_codec_progress.cpp b/core/fxcodec/codec/fx_codec_progress.cpp
index 7d8a3203e9356000f04b94896cbf291652aa794d..e8155c0b2632d8b16986649da2a0e339257af455 100644
--- a/core/fxcodec/codec/fx_codec_progress.cpp
+++ b/core/fxcodec/codec/fx_codec_progress.cpp
@@ -339,7 +339,8 @@ bool CCodec_ProgressiveDecoder::JpegReadMoreData(CCodec_JpegModule* pJpegModule,
dwSize = dwConsume;
}
}
- if (!m_pFile->ReadBlock(m_pSrcBuf + dwAvail, m_offSet, dwSize)) {
+ if (m_pFile->ReadBlock(m_pSrcBuf + dwAvail, m_offSet, dwSize) != dwSize &&
+ !m_pFile->IsEOF()) {
err_status = FXCODEC_STATUS_ERR_READ;
return false;
}
@@ -612,7 +613,8 @@ bool CCodec_ProgressiveDecoder::GifReadMoreData(CCodec_GifModule* pGifModule,
dwSize = dwConsume;
}
}
- if (!m_pFile->ReadBlock(m_pSrcBuf + dwAvail, m_offSet, dwSize)) {
+ if (m_pFile->ReadBlock(m_pSrcBuf + dwAvail, m_offSet, dwSize) != dwSize &&
+ !m_pFile->IsEOF()) {
err_status = FXCODEC_STATUS_ERR_READ;
return false;
}
@@ -902,7 +904,8 @@ bool CCodec_ProgressiveDecoder::BmpReadMoreData(CCodec_BmpModule* pBmpModule,
dwSize = dwConsume;
}
}
- if (!m_pFile->ReadBlock(m_pSrcBuf + dwAvail, m_offSet, dwSize)) {
+ if (m_pFile->ReadBlock(m_pSrcBuf + dwAvail, m_offSet, dwSize) != dwSize &&
+ !m_pFile->IsEOF()) {
err_status = FXCODEC_STATUS_ERR_READ;
return false;
}
@@ -1064,7 +1067,8 @@ bool CCodec_ProgressiveDecoder::DetectImageType(FXCODEC_IMAGE_TYPE imageType,
m_status = FXCODEC_STATUS_ERR_MEMORY;
return false;
}
- bool bResult = m_pFile->ReadBlock(m_pSrcBuf, 0, size);
+ bool bResult =
+ m_pFile->ReadBlock(m_pSrcBuf, 0, size) == size || m_pFile->IsEOF();
if (!bResult) {
m_status = FXCODEC_STATUS_ERR_READ;
return false;
@@ -1116,7 +1120,8 @@ bool CCodec_ProgressiveDecoder::DetectImageType(FXCODEC_IMAGE_TYPE imageType,
m_status = FXCODEC_STATUS_ERR_MEMORY;
return false;
}
- bool bResult = m_pFile->ReadBlock(m_pSrcBuf, 0, size);
+ bool bResult =
+ m_pFile->ReadBlock(m_pSrcBuf, 0, size) == size || m_pFile->IsEOF();
if (!bResult) {
m_status = FXCODEC_STATUS_ERR_READ;
return false;
@@ -1165,7 +1170,8 @@ bool CCodec_ProgressiveDecoder::DetectImageType(FXCODEC_IMAGE_TYPE imageType,
m_status = FXCODEC_STATUS_ERR_MEMORY;
return false;
}
- bool bResult = m_pFile->ReadBlock(m_pSrcBuf, 0, size);
+ bool bResult =
+ m_pFile->ReadBlock(m_pSrcBuf, 0, size) == size || m_pFile->IsEOF();
if (!bResult) {
m_status = FXCODEC_STATUS_ERR_READ;
return false;
@@ -1190,7 +1196,9 @@ bool CCodec_ProgressiveDecoder::DetectImageType(FXCODEC_IMAGE_TYPE imageType,
FXSYS_memset(m_pSrcBuf, 0, input_size);
m_SrcSize = input_size;
}
- bResult = m_pFile->ReadBlock(m_pSrcBuf, m_offSet, input_size);
+ bResult =
+ m_pFile->ReadBlock(m_pSrcBuf, m_offSet, input_size) == input_size ||
+ m_pFile->IsEOF();
if (!bResult) {
m_status = FXCODEC_STATUS_ERR_READ;
return false;
@@ -1229,7 +1237,8 @@ bool CCodec_ProgressiveDecoder::DetectImageType(FXCODEC_IMAGE_TYPE imageType,
m_status = FXCODEC_STATUS_ERR_MEMORY;
return false;
}
- bool bResult = m_pFile->ReadBlock(m_pSrcBuf, 0, size);
+ bool bResult =
+ m_pFile->ReadBlock(m_pSrcBuf, 0, size) == size || m_pFile->IsEOF();
if (!bResult) {
m_status = FXCODEC_STATUS_ERR_READ;
return false;
@@ -2137,7 +2146,9 @@ FXCODEC_STATUS CCodec_ProgressiveDecoder::ContinueDecode(IFX_Pause* pPause) {
FXSYS_memset(m_pSrcBuf, 0, input_size);
m_SrcSize = input_size;
}
- bool bResult = m_pFile->ReadBlock(m_pSrcBuf, m_offSet, input_size);
+ bool bResult =
+ m_pFile->ReadBlock(m_pSrcBuf, m_offSet, input_size) == input_size ||
+ m_pFile->IsEOF();
if (!bResult) {
m_pDeviceBitmap = nullptr;
m_pFile = nullptr;

Powered by Google App Engine
This is Rietveld 408576698