From 2c47fb2c9b3db7be3480cbc044fa90fda988b97f Mon Sep 17 00:00:00 2001 From: Henrique Nakashima Date: Mon, 26 Mar 2018 20:17:29 +0000 Subject: Do not call CPDF_PageObjectList directly in fpdfeditpage.cpp. Change-Id: If816c4f532f03513ad06959182b0e0edfd688e39 Reviewed-on: https://pdfium-review.googlesource.com/29170 Reviewed-by: dsinclair Commit-Queue: Henrique Nakashima --- core/fpdfapi/page/cpdf_pageobjectholder.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'core/fpdfapi/page/cpdf_pageobjectholder.cpp') diff --git a/core/fpdfapi/page/cpdf_pageobjectholder.cpp b/core/fpdfapi/page/cpdf_pageobjectholder.cpp index 9413ffbfae..67b356fc57 100644 --- a/core/fpdfapi/page/cpdf_pageobjectholder.cpp +++ b/core/fpdfapi/page/cpdf_pageobjectholder.cpp @@ -7,6 +7,7 @@ #include "core/fpdfapi/page/cpdf_pageobjectholder.h" #include +#include #include "core/fpdfapi/page/cpdf_allstates.h" #include "core/fpdfapi/page/cpdf_contentparser.h" @@ -91,3 +92,30 @@ void CPDF_PageObjectHolder::LoadTransInfo() { m_iTransparency |= PDFTRANS_KNOCKOUT; } } + +size_t CPDF_PageObjectHolder::GetPageObjectCount() const { + return pdfium::CollectionSize(m_PageObjectList); +} + +CPDF_PageObject* CPDF_PageObjectHolder::GetPageObjectByIndex( + size_t index) const { + return m_PageObjectList.GetPageObjectByIndex(index); +} + +void CPDF_PageObjectHolder::AppendPageObject( + std::unique_ptr pPageObj) { + m_PageObjectList.push_back(std::move(pPageObj)); +} + +bool CPDF_PageObjectHolder::RemovePageObject(CPDF_PageObject* pPageObj) { + pdfium::FakeUniquePtr p(pPageObj); + + auto it = + std::find(std::begin(m_PageObjectList), std::end(m_PageObjectList), p); + if (it == std::end(m_PageObjectList)) + return false; + + it->release(); + m_PageObjectList.erase(it); + return true; +} -- cgit v1.2.3