diff options
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)); } } |