summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Strygin <art-snake@yandex-team.ru>2017-09-08 17:09:27 +0300
committerChromium commit bot <commit-bot@chromium.org>2017-09-18 21:28:35 +0000
commit21f4afbff95cf184917eac23a5659061654760a1 (patch)
tree65a063bc056e1e1a15a8dd70cb22d2aeffbec743
parent5278cebc468e6975f217d0c016501a554d10fd97 (diff)
downloadpdfium-21f4afbff95cf184917eac23a5659061654760a1.tar.xz
Use CPDF_ReadValidator to request linearized data.
Change-Id: I5c0fccc74a9f103d91c95fd72dc6683d991eadec Reviewed-on: https://pdfium-review.googlesource.com/13570 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Art Snake <art-snake@yandex-team.ru>
-rw-r--r--core/fpdfapi/parser/cpdf_data_avail.cpp15
-rw-r--r--core/fpdfapi/parser/cpdf_data_avail.h2
2 files changed, 8 insertions, 9 deletions
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp
index 994d082712..b95c9daf8d 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_data_avail.cpp
@@ -1204,8 +1204,7 @@ bool CPDF_DataAvail::LoadPages() {
return false;
}
-CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::CheckLinearizedData(
- DownloadHints* pHints) {
+CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::CheckLinearizedData() {
if (m_bLinearedDataOK)
return DataAvailable;
ASSERT(m_pLinearized);
@@ -1218,10 +1217,10 @@ CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::CheckLinearizedData(
if (!data_size.IsValid())
return DataError;
- if (!m_pFileAvail->IsDataAvail(m_pLinearized->GetLastXRefOffset(),
- data_size.ValueOrDie())) {
- pHints->AddSegment(m_pLinearized->GetLastXRefOffset(),
- data_size.ValueOrDie());
+ if (!GetValidator()->IsDataRangeAvailable(
+ m_pLinearized->GetLastXRefOffset(), data_size.ValueOrDie())) {
+ GetValidator()->ScheduleDataDownload(m_pLinearized->GetLastXRefOffset(),
+ data_size.ValueOrDie());
return DataNotAvailable;
}
@@ -1312,7 +1311,7 @@ CPDF_DataAvail::DocAvailStatus CPDF_DataAvail::IsPageAvail(
return nRet;
}
- DocAvailStatus nResult = CheckLinearizedData(pHints);
+ DocAvailStatus nResult = CheckLinearizedData();
if (nResult != DataAvailable)
return nResult;
@@ -1479,7 +1478,7 @@ CPDF_DataAvail::DocFormStatus CPDF_DataAvail::IsFormAvail(
const HintsScope hints_scope(GetValidator().Get(), pHints);
if (m_pLinearized) {
- DocAvailStatus nDocStatus = CheckLinearizedData(pHints);
+ DocAvailStatus nDocStatus = CheckLinearizedData();
if (nDocStatus == DataError)
return FormError;
if (nDocStatus == DataNotAvailable)
diff --git a/core/fpdfapi/parser/cpdf_data_avail.h b/core/fpdfapi/parser/cpdf_data_avail.h
index 850ceeaae2..ab54b08404 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.h
+++ b/core/fpdfapi/parser/cpdf_data_avail.h
@@ -158,7 +158,7 @@ class CPDF_DataAvail final {
bool LoadPages();
bool LoadAllXref(DownloadHints* pHints);
bool LoadAllFile();
- DocAvailStatus CheckLinearizedData(DownloadHints* pHints);
+ DocAvailStatus CheckLinearizedData();
bool CheckPageAnnots(uint32_t dwPage);
DocAvailStatus CheckLinearizedFirstPage(uint32_t dwPage);