Make CPDF_StreamContentParser::m_pResources a const pointer.

Move the code to select what it points at to a separate function, so the
CPDF_StreamContentParser constructor only sets it once.

Change-Id: I60013e77c8f37246282f94227a4aeb17270ee23c
Reviewed-on: https://pdfium-review.googlesource.com/37450
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 640b7f7..ba7388c 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -236,6 +236,14 @@
   }
 }
 
+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 @@
     : 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 @@
       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 238999b..aac66e8 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.h
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.h
@@ -211,7 +211,7 @@
   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;