summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/fpdfapi/page/cpdf_streamcontentparser.cpp15
-rw-r--r--core/fpdfapi/page/cpdf_streamcontentparser.h2
2 files changed, 11 insertions, 6 deletions
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 640b7f7109..ba7388cf15 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -236,6 +236,14 @@ void ReplaceAbbr(CPDF_Object* pObj) {
}
}
+CPDF_Dictionary* ChooseResourcesDict(CPDF_Dictionary* pResources,
+ CPDF_Dictionary* pParentResources,
+ CPDF_Dictionary* pPageResources) {
+ if (pResources)
+ return pResources;
+ return pParentResources ? pParentResources : pPageResources;
+}
+
} // namespace
CPDF_StreamContentParser::CPDF_StreamContentParser(
@@ -251,7 +259,8 @@ CPDF_StreamContentParser::CPDF_StreamContentParser(
: m_pDocument(pDocument),
m_pPageResources(pPageResources),
m_pParentResources(pParentResources),
- m_pResources(pResources),
+ m_pResources(
+ ChooseResourcesDict(pResources, pParentResources, pPageResources)),
m_pObjectHolder(pObjHolder),
m_ParsedSet(parsedSet),
m_BBox(rcBBox),
@@ -268,10 +277,6 @@ CPDF_StreamContentParser::CPDF_StreamContentParser(
m_bResourceMissing(false) {
if (pmtContentToUser)
m_mtContentToUser = *pmtContentToUser;
- if (!m_pResources)
- m_pResources = m_pParentResources;
- if (!m_pResources)
- m_pResources = m_pPageResources;
if (pStates) {
m_pCurStates->Copy(*pStates);
} else {
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.h b/core/fpdfapi/page/cpdf_streamcontentparser.h
index 238999b846..aac66e883b 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.h
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.h
@@ -211,7 +211,7 @@ class CPDF_StreamContentParser {
UnownedPtr<CPDF_Document> const m_pDocument;
UnownedPtr<CPDF_Dictionary> const m_pPageResources;
UnownedPtr<CPDF_Dictionary> const m_pParentResources;
- UnownedPtr<CPDF_Dictionary> m_pResources;
+ UnownedPtr<CPDF_Dictionary> const m_pResources;
UnownedPtr<CPDF_PageObjectHolder> const m_pObjectHolder;
UnownedPtr<std::set<const uint8_t*>> const m_ParsedSet;
CFX_Matrix m_mtContentToUser;