diff options
author | Artem Strygin <art-snake@yandex-team.ru> | 2017-08-29 00:26:42 +0300 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-08-29 22:59:01 +0000 |
commit | 304eefb58759e56be3fb357c78204accd4fa98fc (patch) | |
tree | d7640b3ba8a473856457feba0f41da2453ef6b16 /core/fpdfapi/parser/cpdf_data_avail.cpp | |
parent | 3fab4e35539e29c4ded08a424db3b1c7fbfa03fc (diff) | |
download | pdfium-304eefb58759e56be3fb357c78204accd4fa98fc.tar.xz |
Implement CPDF_ObjectAvail.
This is non recursive replacement for CPDF_DataAvail::AreObjectsAvailable.
Also added tests.
Change-Id: I546289fc0963d2343253755850f55af8c0bd8e4c
Reviewed-on: https://pdfium-review.googlesource.com/11430
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Art Snake <art-snake@yandex-team.ru>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_data_avail.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_data_avail.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/core/fpdfapi/parser/cpdf_data_avail.cpp b/core/fpdfapi/parser/cpdf_data_avail.cpp index 43897a464c..c9cb1d75fc 100644 --- a/core/fpdfapi/parser/cpdf_data_avail.cpp +++ b/core/fpdfapi/parser/cpdf_data_avail.cpp @@ -18,6 +18,7 @@ #include "core/fpdfapi/parser/cpdf_linearized_header.h" #include "core/fpdfapi/parser/cpdf_name.h" #include "core/fpdfapi/parser/cpdf_number.h" +#include "core/fpdfapi/parser/cpdf_page_object_avail.h" #include "core/fpdfapi/parser/cpdf_read_validator.h" #include "core/fpdfapi/parser/cpdf_reference.h" #include "core/fpdfapi/parser/cpdf_stream.h" @@ -1514,10 +1515,8 @@ bool CPDF_DataAvail::ValidatePage(uint32_t dwPage) { CPDF_Dictionary* pPageDict = m_pDocument->GetPage(safePage.ValueOrDie()); if (!pPageDict) return false; - std::vector<CPDF_Object*> obj_array; - obj_array.push_back(pPageDict); - std::vector<CPDF_Object*> dummy; - return AreObjectsAvailable(obj_array, true, dummy); + CPDF_PageObjectAvail obj_avail(GetValidator().Get(), m_pDocument, pPageDict); + return obj_avail.CheckAvail() == DocAvailStatus::DataAvailable; } bool CPDF_DataAvail::ValidateForm() { @@ -1527,10 +1526,8 @@ bool CPDF_DataAvail::ValidateForm() { CPDF_Object* pAcroForm = pRoot->GetObjectFor("AcroForm"); if (!pAcroForm) return false; - std::vector<CPDF_Object*> obj_array; - obj_array.push_back(pAcroForm); - std::vector<CPDF_Object*> dummy; - return AreObjectsAvailable(obj_array, true, dummy); + CPDF_PageObjectAvail obj_avail(GetValidator().Get(), m_pDocument, pAcroForm); + return obj_avail.CheckAvail() == DocAvailStatus::DataAvailable; } CPDF_DataAvail::PageNode::PageNode() : m_type(PDF_PAGENODE_UNKNOWN) {} |