summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_contentmark.cpp
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-07-11 18:58:42 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-07-11 18:58:42 +0000
commit8ac090c4a57bc27044adc7abe8143ce45388b021 (patch)
tree1e7edcced6de44e83e11b63578bc1f8b00399f34 /core/fpdfapi/page/cpdf_contentmark.cpp
parentb165ffb64e59998ec6d5f76c82bd2fe53734b3cd (diff)
downloadpdfium-8ac090c4a57bc27044adc7abe8143ce45388b021.tar.xz
Split CPDF_ContentMark::AddMark() into three versions.
One version is for a mark without a dictionary. The second is for a mark with a direct dictionary. The third is for a mark with indirect properties. Bug: pdfium:1118 Change-Id: Ice0ff11d5ba4eaf2ccdf57be49b9140ba5c9b159 Reviewed-on: https://pdfium-review.googlesource.com/37550 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_contentmark.cpp')
-rw-r--r--core/fpdfapi/page/cpdf_contentmark.cpp50
1 files changed, 36 insertions, 14 deletions
diff --git a/core/fpdfapi/page/cpdf_contentmark.cpp b/core/fpdfapi/page/cpdf_contentmark.cpp
index 912cc0ea03..08b38f20c2 100644
--- a/core/fpdfapi/page/cpdf_contentmark.cpp
+++ b/core/fpdfapi/page/cpdf_contentmark.cpp
@@ -46,13 +46,26 @@ int CPDF_ContentMark::GetMarkedContentID() const {
return m_pMarkData->GetMarkedContentID();
}
-void CPDF_ContentMark::AddMark(ByteString name,
- CPDF_Dictionary* pDict,
- bool bDirect) {
+void CPDF_ContentMark::AddMark(ByteString name) {
+ EnsureMarkDataExists();
+ m_pMarkData->AddMark(std::move(name));
+}
+
+void CPDF_ContentMark::AddMarkWithDirectDict(ByteString name,
+ CPDF_Dictionary* pDict) {
+ EnsureMarkDataExists();
+ m_pMarkData->AddMarkWithDirectDict(std::move(name), pDict);
+}
+
+void CPDF_ContentMark::AddMarkWithPropertiesDict(ByteString name,
+ CPDF_Dictionary* pDict) {
+ EnsureMarkDataExists();
+ m_pMarkData->AddMarkWithPropertiesDict(std::move(name), pDict);
+}
+
+void CPDF_ContentMark::EnsureMarkDataExists() {
if (!m_pMarkData)
m_pMarkData.Reset(new MarkData());
-
- m_pMarkData->AddMark(std::move(name), pDict, bDirect);
}
void CPDF_ContentMark::DeleteLastMark() {
@@ -93,17 +106,26 @@ int CPDF_ContentMark::MarkData::GetMarkedContentID() const {
return -1;
}
-void CPDF_ContentMark::MarkData::AddMark(ByteString name,
- CPDF_Dictionary* pDict,
- bool bDirect) {
+void CPDF_ContentMark::MarkData::AddMark(ByteString name) {
auto pItem = pdfium::MakeRetain<CPDF_ContentMarkItem>();
pItem->SetName(std::move(name));
- if (pDict) {
- if (bDirect)
- pItem->SetDirectDict(ToDictionary(pDict->Clone()));
- else
- pItem->SetPropertiesDict(pDict);
- }
+ m_Marks.push_back(pItem);
+}
+
+void CPDF_ContentMark::MarkData::AddMarkWithDirectDict(ByteString name,
+ CPDF_Dictionary* pDict) {
+ auto pItem = pdfium::MakeRetain<CPDF_ContentMarkItem>();
+ pItem->SetName(std::move(name));
+ pItem->SetDirectDict(ToDictionary(pDict->Clone()));
+ m_Marks.push_back(pItem);
+}
+
+void CPDF_ContentMark::MarkData::AddMarkWithPropertiesDict(
+ ByteString name,
+ CPDF_Dictionary* pDict) {
+ auto pItem = pdfium::MakeRetain<CPDF_ContentMarkItem>();
+ pItem->SetName(std::move(name));
+ pItem->SetPropertiesDict(pDict);
m_Marks.push_back(pItem);
}