summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_data_avail.cpp
diff options
context:
space:
mode:
authorArtem Strygin <art-snake@yandex-team.ru>2017-08-29 00:26:42 +0300
committerChromium commit bot <commit-bot@chromium.org>2017-08-29 22:59:01 +0000
commit304eefb58759e56be3fb357c78204accd4fa98fc (patch)
treed7640b3ba8a473856457feba0f41da2453ef6b16 /core/fpdfapi/parser/cpdf_data_avail.cpp
parent3fab4e35539e29c4ded08a424db3b1c7fbfa03fc (diff)
downloadpdfium-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.cpp13
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) {}