Remove class CPDF_PageObjectList.
It is a small wrapper around a std::deque<>. Make CPDF_PageObjectHolder
do all the work instead, since iterating across an object holder
seems like a reasonable thing to be able to do.
Change-Id: I9d1f0b01191f971b8b808957896d147f568558af
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/53950
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
index 11b24e6..7fb7dd3 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentgenerator.cpp
@@ -73,7 +73,7 @@
CPDF_PageContentGenerator::CPDF_PageContentGenerator(
CPDF_PageObjectHolder* pObjHolder)
: m_pObjHolder(pObjHolder), m_pDocument(pObjHolder->GetDocument()) {
- for (const auto& pObj : *pObjHolder->GetPageObjectList()) {
+ for (const auto& pObj : *pObjHolder) {
if (pObj)
m_pageObjects.emplace_back(pObj.get());
}
diff --git a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
index f4d51c6..7659413 100644
--- a/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
+++ b/core/fpdfapi/edit/cpdf_pagecontentmanager.cpp
@@ -136,7 +136,7 @@
stream_index_mapping[streams_left[i]] = i;
// Update the page objects' content stream indexes.
- for (const auto& obj : *obj_holder_->GetPageObjectList()) {
+ for (const auto& obj : *obj_holder_) {
int32_t old_stream_index = obj->GetContentStream();
size_t new_stream_index = stream_index_mapping[old_stream_index];
obj->SetContentStream(new_stream_index);
diff --git a/core/fpdfapi/font/cpdf_type3char.cpp b/core/fpdfapi/font/cpdf_type3char.cpp
index a04e83c..77e5bc6 100644
--- a/core/fpdfapi/font/cpdf_type3char.cpp
+++ b/core/fpdfapi/font/cpdf_type3char.cpp
@@ -40,10 +40,10 @@
if (m_pBitmap || !m_pForm)
return true;
- if (m_pForm->GetPageObjectList()->size() != 1 || m_bColored)
+ if (m_pForm->GetPageObjectCount() != 1 || m_bColored)
return false;
- auto& pPageObj = m_pForm->GetPageObjectList()->front();
+ auto& pPageObj = *m_pForm->begin();
if (!pPageObj->IsImage())
return false;
diff --git a/core/fpdfapi/font/cpdf_type3font.cpp b/core/fpdfapi/font/cpdf_type3font.cpp
index a80048a..d7bd7d0 100644
--- a/core/fpdfapi/font/cpdf_type3font.cpp
+++ b/core/fpdfapi/font/cpdf_type3font.cpp
@@ -125,7 +125,7 @@
pNewChar->Transform(m_FontMatrix);
m_CacheMap[charcode] = std::move(pNewChar);
CPDF_Type3Char* pCachedChar = m_CacheMap[charcode].get();
- if (pCachedChar->form()->GetPageObjectList()->empty())
+ if (pCachedChar->form()->GetPageObjectCount() == 0)
pCachedChar->ResetForm();
return pCachedChar;
}
diff --git a/core/fpdfapi/page/BUILD.gn b/core/fpdfapi/page/BUILD.gn
index ab91ced..9529dad 100644
--- a/core/fpdfapi/page/BUILD.gn
+++ b/core/fpdfapi/page/BUILD.gn
@@ -57,8 +57,6 @@
"cpdf_pageobject.h",
"cpdf_pageobjectholder.cpp",
"cpdf_pageobjectholder.h",
- "cpdf_pageobjectlist.cpp",
- "cpdf_pageobjectlist.h",
"cpdf_path.cpp",
"cpdf_path.h",
"cpdf_pathobject.cpp",
diff --git a/core/fpdfapi/page/cpdf_contentparser.cpp b/core/fpdfapi/page/cpdf_contentparser.cpp
index 8308d0b..efc82e0 100644
--- a/core/fpdfapi/page/cpdf_contentparser.cpp
+++ b/core/fpdfapi/page/cpdf_contentparser.cpp
@@ -209,7 +209,7 @@
m_pParser->GetType3Data());
}
- for (auto& pObj : *m_pObjectHolder->GetPageObjectList()) {
+ for (auto& pObj : *m_pObjectHolder) {
if (!pObj->m_ClipPath.HasRef())
continue;
if (pObj->m_ClipPath.GetPathCount() != 1)
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.cpp b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
index 789e596..51499b0 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.cpp
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.cpp
@@ -123,7 +123,9 @@
CPDF_PageObject* CPDF_PageObjectHolder::GetPageObjectByIndex(
size_t index) const {
- return m_PageObjectList.GetPageObjectByIndex(index);
+ return pdfium::IndexInBounds(m_PageObjectList, index)
+ ? m_PageObjectList[index].get()
+ : nullptr;
}
void CPDF_PageObjectHolder::AppendPageObject(
diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.h b/core/fpdfapi/page/cpdf_pageobjectholder.h
index 524ab98..e75fd4e 100644
--- a/core/fpdfapi/page/cpdf_pageobjectholder.h
+++ b/core/fpdfapi/page/cpdf_pageobjectholder.h
@@ -7,12 +7,12 @@
#ifndef CORE_FPDFAPI_PAGE_CPDF_PAGEOBJECTHOLDER_H_
#define CORE_FPDFAPI_PAGE_CPDF_PAGEOBJECTHOLDER_H_
+#include <deque>
#include <map>
#include <memory>
#include <set>
#include <vector>
-#include "core/fpdfapi/page/cpdf_pageobjectlist.h"
#include "core/fpdfapi/render/cpdf_transparency.h"
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_string.h"
@@ -23,6 +23,7 @@
class CPDF_ContentParser;
class CPDF_Dictionary;
class CPDF_Document;
+class CPDF_PageObject;
class CPDF_Stream;
class PauseIndicatorIface;
@@ -47,6 +48,10 @@
public:
enum class ParseState : uint8_t { kNotParsed, kParsing, kParsed };
+ using iterator = std::deque<std::unique_ptr<CPDF_PageObject>>::iterator;
+ using const_iterator =
+ std::deque<std::unique_ptr<CPDF_PageObject>>::const_iterator;
+
CPDF_PageObjectHolder(CPDF_Document* pDoc,
CPDF_Dictionary* pDict,
CPDF_Dictionary* pPageResources,
@@ -65,16 +70,18 @@
// the ones that assume it can.
CPDF_Dictionary* GetDict() const { return m_pDict.Get(); }
- const CPDF_PageObjectList* GetPageObjectList() const {
- return &m_PageObjectList;
- }
-
size_t GetPageObjectCount() const;
CPDF_PageObject* GetPageObjectByIndex(size_t index) const;
void AppendPageObject(std::unique_ptr<CPDF_PageObject> pPageObj);
bool RemovePageObject(CPDF_PageObject* pPageObj);
bool ErasePageObjectAtIndex(size_t index);
+ iterator begin() { return m_PageObjectList.begin(); }
+ const_iterator begin() const { return m_PageObjectList.begin(); }
+
+ iterator end() { return m_PageObjectList.end(); }
+ const_iterator end() const { return m_PageObjectList.end(); }
+
const CFX_Matrix& GetLastCTM() const { return m_LastCTM; }
const CFX_FloatRect& GetBBox() const { return m_BBox; }
@@ -112,7 +119,7 @@
UnownedPtr<CPDF_Document> m_pDocument;
std::vector<CFX_FloatRect> m_MaskBoundingBoxes;
std::unique_ptr<CPDF_ContentParser> m_pParser;
- CPDF_PageObjectList m_PageObjectList;
+ std::deque<std::unique_ptr<CPDF_PageObject>> m_PageObjectList;
CFX_Matrix m_LastCTM;
// The indexes of Content streams that are dirty and need to be regenerated.
diff --git a/core/fpdfapi/page/cpdf_pageobjectlist.cpp b/core/fpdfapi/page/cpdf_pageobjectlist.cpp
deleted file mode 100644
index 2c8e061..0000000
--- a/core/fpdfapi/page/cpdf_pageobjectlist.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "core/fpdfapi/page/cpdf_pageobjectlist.h"
-
-#include "third_party/base/stl_util.h"
-
-CPDF_PageObject* CPDF_PageObjectList::GetPageObjectByIndex(int index) const {
- return pdfium::IndexInBounds(*this, index) ? (*this)[index].get() : nullptr;
-}
diff --git a/core/fpdfapi/page/cpdf_pageobjectlist.h b/core/fpdfapi/page/cpdf_pageobjectlist.h
deleted file mode 100644
index 1b4bf8f..0000000
--- a/core/fpdfapi/page/cpdf_pageobjectlist.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_FPDFAPI_PAGE_CPDF_PAGEOBJECTLIST_H_
-#define CORE_FPDFAPI_PAGE_CPDF_PAGEOBJECTLIST_H_
-
-#include <deque>
-#include <memory>
-
-class CPDF_PageObject;
-
-class CPDF_PageObjectList final
- : public std::deque<std::unique_ptr<CPDF_PageObject>> {
- public:
- CPDF_PageObject* GetPageObjectByIndex(int index) const;
-};
-
-#endif // CORE_FPDFAPI_PAGE_CPDF_PAGEOBJECTLIST_H_
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 9527ac3..2538984 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -1512,13 +1512,12 @@
pdfium::ScopedSetInsertion<const uint8_t*> scopedInsert(m_ParsedSet.Get(),
pDataStart);
- uint32_t init_obj_count = m_pObjectHolder->GetPageObjectList()->size();
+ uint32_t init_obj_count = m_pObjectHolder->GetPageObjectCount();
CPDF_StreamParser syntax(pdfium::make_span(pDataStart, size_left),
m_pDocument->GetByteStringPool());
CPDF_StreamParserAutoClearer auto_clearer(&m_pSyntax, &syntax);
while (1) {
- uint32_t cost =
- m_pObjectHolder->GetPageObjectList()->size() - init_obj_count;
+ uint32_t cost = m_pObjectHolder->GetPageObjectCount() - init_obj_count;
if (max_cost && cost >= max_cost) {
break;
}
diff --git a/core/fpdfapi/render/cpdf_progressiverenderer.cpp b/core/fpdfapi/render/cpdf_progressiverenderer.cpp
index 4d1fed7..2bbe9ef 100644
--- a/core/fpdfapi/render/cpdf_progressiverenderer.cpp
+++ b/core/fpdfapi/render/cpdf_progressiverenderer.cpp
@@ -52,8 +52,7 @@
return;
}
m_pCurrentLayer = m_pContext->GetLayer(m_LayerIndex);
- m_LastObjectRendered =
- m_pCurrentLayer->m_pObjectHolder->GetPageObjectList()->end();
+ m_LastObjectRendered = m_pCurrentLayer->m_pObjectHolder->end();
m_pRenderStatus = pdfium::MakeUnique<CPDF_RenderStatus>(m_pContext.Get(),
m_pDevice.Get());
if (m_pOptions)
@@ -65,14 +64,14 @@
m_ClipRect = m_pCurrentLayer->m_Matrix.GetInverse().TransformRect(
CFX_FloatRect(m_pDevice->GetClipBox()));
}
- CPDF_PageObjectList::const_iterator iter;
- CPDF_PageObjectList::const_iterator iterEnd =
- m_pCurrentLayer->m_pObjectHolder->GetPageObjectList()->end();
+ CPDF_PageObjectHolder::const_iterator iter;
+ CPDF_PageObjectHolder::const_iterator iterEnd =
+ m_pCurrentLayer->m_pObjectHolder->end();
if (m_LastObjectRendered != iterEnd) {
iter = m_LastObjectRendered;
++iter;
} else {
- iter = m_pCurrentLayer->m_pObjectHolder->GetPageObjectList()->begin();
+ iter = m_pCurrentLayer->m_pObjectHolder->begin();
}
int nObjsToGo = kStepLimit;
bool is_mask = false;
diff --git a/core/fpdfapi/render/cpdf_progressiverenderer.h b/core/fpdfapi/render/cpdf_progressiverenderer.h
index 400909b..d9d2e27 100644
--- a/core/fpdfapi/render/cpdf_progressiverenderer.h
+++ b/core/fpdfapi/render/cpdf_progressiverenderer.h
@@ -9,7 +9,7 @@
#include <memory>
-#include "core/fpdfapi/page/cpdf_pageobjectlist.h"
+#include "core/fpdfapi/page/cpdf_pageobjectholder.h"
#include "core/fpdfapi/render/cpdf_rendercontext.h"
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_system.h"
@@ -54,7 +54,7 @@
CFX_FloatRect m_ClipRect;
uint32_t m_LayerIndex;
CPDF_RenderContext::Layer* m_pCurrentLayer;
- CPDF_PageObjectList::const_iterator m_LastObjectRendered;
+ CPDF_PageObjectHolder::const_iterator m_LastObjectRendered;
};
#endif // CORE_FPDFAPI_RENDER_CPDF_PROGRESSIVERENDERER_H_
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index 4ed7b35..092059b 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -1038,7 +1038,7 @@
#endif
CFX_FloatRect clip_rect = mtObj2Device.GetInverse().TransformRect(
CFX_FloatRect(m_pDevice->GetClipBox()));
- for (const auto& pCurObj : *pObjectHolder->GetPageObjectList()) {
+ for (const auto& pCurObj : *pObjectHolder) {
if (pCurObj.get() == m_pStopObj) {
m_bStopped = true;
return;
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 8ac04c9..1ba470f 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -535,7 +535,7 @@
CPDF_TextPage::TextOrientation CPDF_TextPage::FindTextlineFlowOrientation()
const {
- if (m_pPage->GetPageObjectList()->empty())
+ if (m_pPage->GetPageObjectCount() == 0)
return TextOrientation::Unknown;
const int32_t nPageWidth = static_cast<int32_t>(m_pPage->GetPageWidth());
@@ -550,7 +550,7 @@
int32_t nEndH = 0;
int32_t nStartV = nPageHeight;
int32_t nEndV = 0;
- for (const auto& pPageObj : *m_pPage->GetPageObjectList()) {
+ for (const auto& pPageObj : *m_pPage) {
if (!pPageObj->IsText())
continue;
@@ -608,19 +608,18 @@
}
void CPDF_TextPage::ProcessObject() {
- if (m_pPage->GetPageObjectList()->empty())
+ if (m_pPage->GetPageObjectCount() == 0)
return;
m_TextlineDir = FindTextlineFlowOrientation();
- const CPDF_PageObjectList* pObjList = m_pPage->GetPageObjectList();
- for (auto it = pObjList->begin(); it != pObjList->end(); ++it) {
+ for (auto it = m_pPage->begin(); it != m_pPage->end(); ++it) {
CPDF_PageObject* pObj = it->get();
if (!pObj)
continue;
CFX_Matrix matrix;
if (pObj->IsText())
- ProcessTextObject(pObj->AsText(), matrix, pObjList, it);
+ ProcessTextObject(pObj->AsText(), matrix, m_pPage.Get(), it);
else if (pObj->IsForm())
ProcessFormObject(pObj->AsForm(), matrix);
}
@@ -633,20 +632,15 @@
void CPDF_TextPage::ProcessFormObject(CPDF_FormObject* pFormObj,
const CFX_Matrix& formMatrix) {
- const CPDF_PageObjectList* pObjectList =
- pFormObj->form()->GetPageObjectList();
- if (pObjectList->empty())
- return;
-
CFX_Matrix curFormMatrix = pFormObj->form_matrix() * formMatrix;
-
- for (auto it = pObjectList->begin(); it != pObjectList->end(); ++it) {
+ const CPDF_PageObjectHolder* pHolder = pFormObj->form();
+ for (auto it = pHolder->begin(); it != pHolder->end(); ++it) {
CPDF_PageObject* pPageObj = it->get();
if (!pPageObj)
continue;
if (pPageObj->IsText())
- ProcessTextObject(pPageObj->AsText(), curFormMatrix, pObjectList, it);
+ ProcessTextObject(pPageObj->AsText(), curFormMatrix, pHolder, it);
else if (pPageObj->IsForm())
ProcessFormObject(pPageObj->AsForm(), curFormMatrix);
}
@@ -753,8 +747,8 @@
void CPDF_TextPage::ProcessTextObject(
CPDF_TextObject* pTextObj,
const CFX_Matrix& formMatrix,
- const CPDF_PageObjectList* pObjList,
- CPDF_PageObjectList::const_iterator ObjPos) {
+ const CPDF_PageObjectHolder* pObjList,
+ CPDF_PageObjectHolder::const_iterator ObjPos) {
if (fabs(pTextObj->GetRect().Width()) < kSizeEpsilon)
return;
@@ -1404,8 +1398,8 @@
bool CPDF_TextPage::IsSameAsPreTextObject(
CPDF_TextObject* pTextObj,
- const CPDF_PageObjectList* pObjList,
- CPDF_PageObjectList::const_iterator iter) {
+ const CPDF_PageObjectHolder* pObjList,
+ CPDF_PageObjectHolder::const_iterator iter) {
int i = 0;
while (i < 5 && iter != pObjList->begin()) {
--iter;
diff --git a/core/fpdftext/cpdf_textpage.h b/core/fpdftext/cpdf_textpage.h
index 00f0426..4e92432 100644
--- a/core/fpdftext/cpdf_textpage.h
+++ b/core/fpdftext/cpdf_textpage.h
@@ -11,7 +11,7 @@
#include <functional>
#include <vector>
-#include "core/fpdfapi/page/cpdf_pageobjectlist.h"
+#include "core/fpdfapi/page/cpdf_pageobjectholder.h"
#include "core/fxcrt/cfx_widetextbuf.h"
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/fx_string.h"
@@ -128,15 +128,15 @@
void ProcessTextObject(PDFTEXT_Obj pObj);
void ProcessTextObject(CPDF_TextObject* pTextObj,
const CFX_Matrix& formMatrix,
- const CPDF_PageObjectList* pObjList,
- CPDF_PageObjectList::const_iterator ObjPos);
+ const CPDF_PageObjectHolder* pObjList,
+ CPDF_PageObjectHolder::const_iterator ObjPos);
GenerateCharacter ProcessInsertObject(const CPDF_TextObject* pObj,
const CFX_Matrix& formMatrix);
const PAGECHAR_INFO* GetPrevCharInfo() const;
Optional<PAGECHAR_INFO> GenerateCharInfo(wchar_t unicode);
bool IsSameAsPreTextObject(CPDF_TextObject* pTextObj,
- const CPDF_PageObjectList* pObjList,
- CPDF_PageObjectList::const_iterator ObjPos);
+ const CPDF_PageObjectHolder* pObjList,
+ CPDF_PageObjectHolder::const_iterator ObjPos);
bool IsSameTextObject(CPDF_TextObject* pTextObj1, CPDF_TextObject* pTextObj2);
void CloseTempLine();
FPDFText_MarkedContent PreMarkedContent(PDFTEXT_Obj pObj);
diff --git a/fpdfsdk/fpdf_annot.cpp b/fpdfsdk/fpdf_annot.cpp
index a7a7cd8..0ebd6fb 100644
--- a/fpdfsdk/fpdf_annot.cpp
+++ b/fpdfsdk/fpdf_annot.cpp
@@ -359,13 +359,12 @@
// Check that the object is already in this annotation's object list.
CPDF_Form* pForm = pAnnot->GetForm();
- const CPDF_PageObjectList* pObjList = pForm->GetPageObjectList();
auto it =
- std::find_if(pObjList->begin(), pObjList->end(),
+ std::find_if(pForm->begin(), pForm->end(),
[pObj](const std::unique_ptr<CPDF_PageObject>& candidate) {
return candidate.get() == pObj;
});
- if (it == pObjList->end())
+ if (it == pForm->end())
return false;
// Update the content stream data in the annotation's AP stream.
@@ -406,13 +405,12 @@
// Note that an object that came from a different annotation must not be
// passed here, since an object cannot belong to more than one annotation.
CPDF_Form* pForm = pAnnot->GetForm();
- const CPDF_PageObjectList* pObjList = pForm->GetPageObjectList();
auto it =
- std::find_if(pObjList->begin(), pObjList->end(),
+ std::find_if(pForm->begin(), pForm->end(),
[pObj](const std::unique_ptr<CPDF_PageObject>& candidate) {
return candidate.get() == pObj;
});
- if (it != pObjList->end())
+ if (it != pForm->end())
return false;
// Append the object to the object list.
@@ -436,7 +434,7 @@
pAnnot->SetForm(pStream);
}
- return pdfium::CollectionSize<int>(*pAnnot->GetForm()->GetPageObjectList());
+ return pAnnot->GetForm()->GetPageObjectCount();
}
FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
diff --git a/fpdfsdk/fpdf_editpage.cpp b/fpdfsdk/fpdf_editpage.cpp
index d55a451..b0a9cfa 100644
--- a/fpdfsdk/fpdf_editpage.cpp
+++ b/fpdfsdk/fpdf_editpage.cpp
@@ -141,17 +141,10 @@
return pPageObj ? pPageObj->AsForm() : nullptr;
}
-const CPDF_PageObjectList* CPDFPageObjListFromFPDFFormObject(
+const CPDF_PageObjectHolder* CPDFPageObjHolderFromFPDFFormObject(
FPDF_PAGEOBJECT page_object) {
CPDF_FormObject* pFormObject = CPDFFormObjectFromFPDFPageObject(page_object);
- if (!pFormObject)
- return nullptr;
-
- const CPDF_Form* pForm = pFormObject->form();
- if (!pForm)
- return nullptr;
-
- return pForm->GetPageObjectList();
+ return pFormObject ? pFormObject->form() : nullptr;
}
} // namespace
@@ -842,15 +835,13 @@
FPDF_EXPORT int FPDF_CALLCONV
FPDFFormObj_CountObjects(FPDF_PAGEOBJECT page_object) {
- const CPDF_PageObjectList* pObjectList =
- CPDFPageObjListFromFPDFFormObject(page_object);
- return pObjectList ? pObjectList->size() : -1;
+ const auto* pObjectList = CPDFPageObjHolderFromFPDFFormObject(page_object);
+ return pObjectList ? pObjectList->GetPageObjectCount() : -1;
}
FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
FPDFFormObj_GetObject(FPDF_PAGEOBJECT form_object, unsigned long index) {
- const CPDF_PageObjectList* pObjectList =
- CPDFPageObjListFromFPDFFormObject(form_object);
+ const auto* pObjectList = CPDFPageObjHolderFromFPDFFormObject(form_object);
if (!pObjectList)
return nullptr;
diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp
index d6dbe9a..01c9a82 100644
--- a/fpdfsdk/fpdf_flatten.cpp
+++ b/fpdfsdk/fpdf_flatten.cpp
@@ -53,7 +53,7 @@
auto pPDFPage = pdfium::MakeRetain<CPDF_Page>(pDoc, pDict, false);
pPDFPage->ParseContent();
- for (const auto& pPageObject : *pPDFPage->GetPageObjectList()) {
+ for (const auto& pPageObject : *pPDFPage) {
const CFX_FloatRect& rc = pPageObject->GetRect();
if (IsValidRect(rc, pDict->GetRectFor(pdfium::page_object::kMediaBox)))
pRectArray->push_back(rc);
diff --git a/fxjs/cjs_document.cpp b/fxjs/cjs_document.cpp
index c93ee78..423849f 100644
--- a/fxjs/cjs_document.cpp
+++ b/fxjs/cjs_document.cpp
@@ -1309,7 +1309,7 @@
int nWords = 0;
WideString swRet;
- for (auto& pPageObj : *page->GetPageObjectList()) {
+ for (auto& pPageObj : *page) {
if (pPageObj->IsText()) {
CPDF_TextObject* pTextObj = pPageObj->AsText();
int nObjWords = CountWords(pTextObj);
@@ -1357,7 +1357,7 @@
page->ParseContent();
int nWords = 0;
- for (auto& pPageObj : *page->GetPageObjectList()) {
+ for (auto& pPageObj : *page) {
if (pPageObj->IsText())
nWords += CountWords(pPageObj->AsText());
}