diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/fpdfapi/page/cpdf_page.cpp | 14 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_page.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp index ba93f4a7d3..0c8d63de71 100644 --- a/core/fpdfapi/page/cpdf_page.cpp +++ b/core/fpdfapi/page/cpdf_page.cpp @@ -180,6 +180,20 @@ int CPDF_Page::GetPageRotation() const { return (rotate < 0) ? (rotate + 4) : rotate; } +bool CPDF_Page::RemoveObject(CPDF_PageObject* pPageObj) { + pdfium::FakeUniquePtr<CPDF_PageObject> p(pPageObj); + + auto* pPageObjectList = GetPageObjectList(); + auto it = + std::find(std::begin(*pPageObjectList), std::end(*pPageObjectList), p); + if (it == std::end(*pPageObjectList)) + return false; + + it->release(); + pPageObjectList->erase(it); + return true; +} + bool GraphicsData::operator<(const GraphicsData& other) const { if (fillAlpha != other.fillAlpha) return fillAlpha < other.fillAlpha; diff --git a/core/fpdfapi/page/cpdf_page.h b/core/fpdfapi/page/cpdf_page.h index c7aa12e474..995d99cf4e 100644 --- a/core/fpdfapi/page/cpdf_page.h +++ b/core/fpdfapi/page/cpdf_page.h @@ -54,6 +54,7 @@ class CPDF_Page : public CPDF_PageObjectHolder { View* GetView() const { return m_pView; } void SetView(View* pView) { m_pView = pView; } + bool RemoveObject(CPDF_PageObject* pPageObj); private: void StartParse(); |