summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_document.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/parser/cpdf_document.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_document.cpp10
1 files changed, 1 insertions, 9 deletions
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp
index 9bfb16b97e..6aedc09d14 100644
--- a/core/fpdfapi/parser/cpdf_document.cpp
+++ b/core/fpdfapi/parser/cpdf_document.cpp
@@ -426,6 +426,7 @@ CPDF_Dictionary* CPDF_Document::TraversePDFPages(int iPage,
i++) {
if (*nPagesToGo == 0)
break;
+ pKidList->ConvertToIndirectObjectAt(i, this);
CPDF_Dictionary* pKid = pKidList->GetDictAt(i);
if (!pKid) {
(*nPagesToGo)--;
@@ -499,15 +500,6 @@ CPDF_Dictionary* CPDF_Document::GetPage(int iPage) {
if (!pPages)
return nullptr;
- if (iPage - m_iNextPageToTraverse + 1 <= 0) {
- // This can happen when the page does not have an object number. On repeated
- // calls to this function for the same page index, this condition causes
- // TraversePDFPages() to incorrectly return nullptr.
- // Example "testing/corpus/fx/other/jetman_std.pdf"
- // We should restart traversing in this case.
- // TODO(art-snake): optimize this.
- ResetTraversal();
- }
if (m_pTreeTraversal.empty()) {
ResetTraversal();
m_pTreeTraversal.push_back(std::make_pair(pPages, 0));