diff options
author | Artem Strygin <art-snake@yandex-team.ru> | 2017-10-03 17:33:19 +0300 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-10-03 19:53:25 +0000 |
commit | aafdc153a2b7609968b315ca6c6900717f6d6c36 (patch) | |
tree | 4e9671595b04047a507a64292f19114d9589be91 /core/fpdfapi/parser/cpdf_data_avail.cpp | |
parent | 609d1fd4a4360e2592c5c59d60758ac67a1cb4ee (diff) | |
download | pdfium-aafdc153a2b7609968b315ca6c6900717f6d6c36.tar.xz |
Unify CPDF_HintsTable.chromium/3232
Break relationship from CPDF_DataAvail for CPDF_HintsTable.
Change-Id: If3e6d4910dd368742f095c05adb122ab08c0d804
Reviewed-on: https://pdfium-review.googlesource.com/15270
Commit-Queue: Art Snake <art-snake@yandex-team.ru>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_data_avail.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_data_avail.cpp | 25 |
1 files changed, 4 insertions, 21 deletions
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp index b2415915c4..aaec4c7708 100644 --- a/core/fpdfapi/parser/cpdf_data_avail.cpp +++ b/core/fpdfapi/parser/cpdf_data_avail.cpp @@ -599,24 +599,6 @@ bool CPDF_DataAvail::CheckFirstPage() { return true; } -bool CPDF_DataAvail::IsDataAvail(FX_FILESIZE offset, size_t size) { - if (offset < 0 || offset > m_dwFileLen) - return true; - - FX_SAFE_FILESIZE safeSize = offset; - safeSize += size; - safeSize += 512; - if (!safeSize.IsValid() || safeSize.ValueOrDie() > m_dwFileLen) - size = m_dwFileLen - offset; - else - size += 512; - - if (!GetValidator()->CheckDataRangeAndRequestIfUnavailable(offset, size)) - return false; - - return true; -} - bool CPDF_DataAvail::CheckHintTables() { if (m_pLinearized->GetPageCount() <= 1) { m_docStatus = PDF_DATAAVAIL_DONE; @@ -630,13 +612,14 @@ bool CPDF_DataAvail::CheckHintTables() { const FX_FILESIZE szHintStart = m_pLinearized->GetHintStart(); const uint32_t szHintLength = m_pLinearized->GetHintLength(); - if (!IsDataAvail(szHintStart, szHintLength)) + if (!GetValidator()->CheckDataRangeAndRequestIfUnavailable(szHintStart, + szHintLength)) return false; m_syntaxParser.InitParser(m_pFileRead, m_dwHeaderOffset); - auto pHintTables = - pdfium::MakeUnique<CPDF_HintTables>(this, m_pLinearized.get()); + auto pHintTables = pdfium::MakeUnique<CPDF_HintTables>(GetValidator().Get(), + m_pLinearized.get()); std::unique_ptr<CPDF_Object> pHintStream = ParseIndirectObjectAt(szHintStart, 0); CPDF_Stream* pStream = ToStream(pHintStream.get()); |