summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_streamcontentparser.cpp
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-07-11 20:55:02 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-07-11 20:55:02 +0000
commit10a7ddb596f0089ba12d0db29b5752a61919a208 (patch)
tree3a5470ac4240e50e12a22d40daf7aad866b62ac9 /core/fpdfapi/page/cpdf_streamcontentparser.cpp
parent75625a8a8a84fffcfe09a09b57d77c99b5261f7d (diff)
downloadpdfium-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.cpp12
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));
}
}