diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-07-11 20:55:02 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-11 20:55:02 +0000 |
commit | 10a7ddb596f0089ba12d0db29b5752a61919a208 (patch) | |
tree | 3a5470ac4240e50e12a22d40daf7aad866b62ac9 /core/fpdfapi/page/cpdf_streamcontentparser.cpp | |
parent | 75625a8a8a84fffcfe09a09b57d77c99b5261f7d (diff) | |
download | pdfium-10a7ddb596f0089ba12d0db29b5752a61919a208.tar.xz |
Store property name for marked content with an indirect dict.
The name of the property is now stored in the CPDF_ContentMarkItem,
which will be needed to properly write back these content marks
after a change in the stream.
Bug: pdfium:1118
Change-Id: I1296f488b35ee0684efa33d17400ed22a88383a2
Reviewed-on: https://pdfium-review.googlesource.com/37370
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fpdfapi/page/cpdf_streamcontentparser.cpp')
-rw-r--r-- | core/fpdfapi/page/cpdf_streamcontentparser.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp index ae55390eb2..860f6d6b3b 100644 --- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp +++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp @@ -608,18 +608,22 @@ void CPDF_StreamContentParser::Handle_BeginMarkedContent_Dictionary() { return; bool bIndirect = pProperty->IsName(); + ByteString property_name; if (bIndirect) { - pProperty = FindResourceObj("Properties", pProperty->GetString()); + property_name = pProperty->GetString(); + pProperty = FindResourceObj("Properties", property_name); if (!pProperty) return; } if (CPDF_Dictionary* pDict = pProperty->AsDictionary()) { std::unique_ptr<CPDF_ContentMark> new_marks = m_ContentMarksStack.top()->Clone(); - if (bIndirect) - new_marks->AddMarkWithPropertiesDict(std::move(tag), pDict); - else + if (bIndirect) { + new_marks->AddMarkWithPropertiesDict(std::move(tag), pDict, + property_name); + } else { new_marks->AddMarkWithDirectDict(std::move(tag), pDict); + } m_ContentMarksStack.push(std::move(new_marks)); } } |