From 35841fa4e3dbf8f9146f78def048c4a287894a8a Mon Sep 17 00:00:00 2001 From: Henrique Nakashima Date: Thu, 15 Mar 2018 15:25:16 +0000 Subject: Create FPDFPage_RemoveObject(). This call removes a page object from a page. We currently offer an API to insert these objects, but not to remove. Bug: pdfium:1037 Change-Id: I35ff596f9e7c87a39051f0cb1de40a5bec40fee5 Reviewed-on: https://pdfium-review.googlesource.com/28492 Reviewed-by: dsinclair Commit-Queue: Henrique Nakashima --- core/fpdfapi/page/cpdf_page.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'core/fpdfapi/page/cpdf_page.cpp') 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 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; -- cgit v1.2.3