diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-07-13 19:47:22 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-13 19:47:22 +0000 |
commit | fed4adb003db228ac7fbc0510a21c25b50ae0cab (patch) | |
tree | f9a73333d86d5abb1cf890e320f0800a2dd875c9 /core | |
parent | a34067721d6630975c356a621a12753bbdab1cdb (diff) | |
download | pdfium-fed4adb003db228ac7fbc0510a21c25b50ae0cab.tar.xz |
Create API to remove a content mark from a page object.
- FPDFPageObj_RemoveMark()
Bug: pdfium:1037
Change-Id: I7ff320261d64e3ead45375ccc72301e7c64dd6e3
Reviewed-on: https://pdfium-review.googlesource.com/37710
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'core')
-rw-r--r-- | core/fpdfapi/page/cpdf_contentmark.cpp | 14 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_contentmark.h | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/core/fpdfapi/page/cpdf_contentmark.cpp b/core/fpdfapi/page/cpdf_contentmark.cpp index 4932ee6231..615d31f3eb 100644 --- a/core/fpdfapi/page/cpdf_contentmark.cpp +++ b/core/fpdfapi/page/cpdf_contentmark.cpp @@ -73,6 +73,10 @@ void CPDF_ContentMark::AddMarkWithPropertiesDict( m_pMarkData->AddMarkWithPropertiesDict(std::move(name), pDict, property_name); } +bool CPDF_ContentMark::RemoveMark(CPDF_ContentMarkItem* pMarkItem) { + return m_pMarkData && m_pMarkData->RemoveMark(pMarkItem); +} + void CPDF_ContentMark::EnsureMarkDataExists() { if (!m_pMarkData) m_pMarkData = pdfium::MakeRetain<MarkData>(); @@ -160,6 +164,16 @@ void CPDF_ContentMark::MarkData::AddMarkWithPropertiesDict( m_Marks.push_back(pItem); } +bool CPDF_ContentMark::MarkData::RemoveMark(CPDF_ContentMarkItem* pMarkItem) { + for (auto it = m_Marks.begin(); it != m_Marks.end(); ++it) { + if (it->Get() == pMarkItem) { + m_Marks.erase(it); + return true; + } + } + return false; +} + void CPDF_ContentMark::MarkData::DeleteLastMark() { if (!m_Marks.empty()) m_Marks.pop_back(); diff --git a/core/fpdfapi/page/cpdf_contentmark.h b/core/fpdfapi/page/cpdf_contentmark.h index 8dc98370e6..4f678aff8e 100644 --- a/core/fpdfapi/page/cpdf_contentmark.h +++ b/core/fpdfapi/page/cpdf_contentmark.h @@ -35,6 +35,7 @@ class CPDF_ContentMark { void AddMarkWithPropertiesDict(ByteString name, CPDF_Dictionary* pDict, const ByteString& property_name); + bool RemoveMark(CPDF_ContentMarkItem* pMarkItem); void DeleteLastMark(); size_t FindFirstDifference(const CPDF_ContentMark* other) const; @@ -56,6 +57,7 @@ class CPDF_ContentMark { void AddMarkWithPropertiesDict(ByteString name, CPDF_Dictionary* pDict, const ByteString& property_name); + bool RemoveMark(CPDF_ContentMarkItem* pMarkItem); void DeleteLastMark(); private: |