From 62b218074ea2bc658488c583362930a798b39107 Mon Sep 17 00:00:00 2001 From: Artem Strygin Date: Mon, 2 Oct 2017 22:07:55 +0300 Subject: Improve CPDF_ReadVaildator Merge CPDF_ReadValidator::IsXXXAvailable and CPDF_ReadValidator::SheduleXXXDowload methods into one CheckXXXAndRequestIfUnavailable. Change-Id: Ib108d5bc3589df17269c841b0024dd4690909304 Reviewed-on: https://pdfium-review.googlesource.com/13730 Reviewed-by: dsinclair Commit-Queue: Art Snake --- core/fpdfapi/parser/cpdf_data_avail.cpp | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) (limited to 'core/fpdfapi/parser/cpdf_data_avail.cpp') diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp index 8b378aab0e..b2415915c4 100644 --- a/core/fpdfapi/parser/cpdf_data_avail.cpp +++ b/core/fpdfapi/parser/cpdf_data_avail.cpp @@ -322,11 +322,10 @@ bool CPDF_DataAvail::CheckPageStatus() { } bool CPDF_DataAvail::LoadAllFile() { - if (GetValidator()->IsWholeFileAvailable()) { + if (GetValidator()->CheckWholeFileAndRequestIfUnavailable()) { m_docStatus = PDF_DATAAVAIL_DONE; return true; } - GetValidator()->ScheduleDownloadWholeFile(); return false; } @@ -590,18 +589,17 @@ bool CPDF_DataAvail::CheckFirstPage() { dwEnd = (uint32_t)m_dwFileLen; const FX_FILESIZE start_pos = m_dwFileLen > 1024 ? 1024 : m_dwFileLen; - const uint32_t data_size = dwEnd > 1024 ? dwEnd - 1024 : 0; - if (!GetValidator()->IsDataRangeAvailable(start_pos, data_size)) { - GetValidator()->ScheduleDataDownload(start_pos, data_size); + const size_t data_size = dwEnd > 1024 ? static_cast(dwEnd - 1024) : 0; + if (!GetValidator()->CheckDataRangeAndRequestIfUnavailable(start_pos, + data_size)) return false; - } m_docStatus = m_bSupportHintTable ? PDF_DATAAVAIL_HINTTABLE : PDF_DATAAVAIL_DONE; return true; } -bool CPDF_DataAvail::IsDataAvail(FX_FILESIZE offset, uint32_t size) { +bool CPDF_DataAvail::IsDataAvail(FX_FILESIZE offset, size_t size) { if (offset < 0 || offset > m_dwFileLen) return true; @@ -613,10 +611,9 @@ bool CPDF_DataAvail::IsDataAvail(FX_FILESIZE offset, uint32_t size) { else size += 512; - if (!GetValidator()->IsDataRangeAvailable(offset, size)) { - GetValidator()->ScheduleDataDownload(offset, size); + if (!GetValidator()->CheckDataRangeAndRequestIfUnavailable(offset, size)) return false; - } + return true; } @@ -1207,17 +1204,14 @@ CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::CheckLinearizedData() { return DataError; if (!m_bMainXRefLoadTried) { - FX_SAFE_UINT32 data_size = m_dwFileLen; + FX_SAFE_SIZE_T data_size = m_dwFileLen; data_size -= m_pLinearized->GetLastXRefOffset(); if (!data_size.IsValid()) return DataError; - if (!GetValidator()->IsDataRangeAvailable( - m_pLinearized->GetLastXRefOffset(), data_size.ValueOrDie())) { - GetValidator()->ScheduleDataDownload(m_pLinearized->GetLastXRefOffset(), - data_size.ValueOrDie()); + if (!GetValidator()->CheckDataRangeAndRequestIfUnavailable( + m_pLinearized->GetLastXRefOffset(), data_size.ValueOrDie())) return DataNotAvailable; - } CPDF_Parser::Error eRet = m_pDocument->GetParser()->LoadLinearizedMainXRefTable(); -- cgit v1.2.3