diff options
-rw-r--r-- | core/fpdfapi/page/cpdf_streamcontentparser.cpp | 15 | ||||
-rw-r--r-- | core/fpdfapi/page/cpdf_streamcontentparser.h | 2 |
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; |