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>
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp
index 994d082..b95c9da 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.cpp
+++ b/core/fpdfapi/parser/cpdf_data_avail.cpp
@@ -1204,8 +1204,7 @@
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 @@
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 @@
return nRet;
}
- DocAvailStatus nResult = CheckLinearizedData(pHints);
+ DocAvailStatus nResult = CheckLinearizedData();
if (nResult != DataAvailable)
return nResult;
@@ -1479,7 +1478,7 @@
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 850ceea..ab54b08 100644
--- a/core/fpdfapi/parser/cpdf_data_avail.h
+++ b/core/fpdfapi/parser/cpdf_data_avail.h
@@ -158,7 +158,7 @@
bool LoadPages();
bool LoadAllXref(DownloadHints* pHints);
bool LoadAllFile();
- DocAvailStatus CheckLinearizedData(DownloadHints* pHints);
+ DocAvailStatus CheckLinearizedData();
bool CheckPageAnnots(uint32_t dwPage);
DocAvailStatus CheckLinearizedFirstPage(uint32_t dwPage);