Remove |CPDF_DIB::m_pMaskStream|.

Instead, make it a local variable in CPDF_DIB::StartLoadMask().
StartLoadMask() can pass it directly to StartLoadDIBBase().

Change-Id: I829eadf05366408b6e8aef20b93694347de0c2b7
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/65832
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_dib.cpp b/core/fpdfapi/page/cpdf_dib.cpp
index 9bb2fb5..4dbb815 100644
--- a/core/fpdfapi/page/cpdf_dib.cpp
+++ b/core/fpdfapi/page/cpdf_dib.cpp
@@ -703,13 +703,13 @@
 
 CPDF_DIB::LoadState CPDF_DIB::StartLoadMask() {
   m_MatteColor = 0XFFFFFFFF;
-  m_pMaskStream.Reset(m_pDict->GetStreamFor("SMask"));
-  if (!m_pMaskStream) {
-    m_pMaskStream.Reset(ToStream(m_pDict->GetDirectObjectFor("Mask")));
-    return m_pMaskStream ? StartLoadMaskDIB() : LoadState::kSuccess;
+  RetainPtr<const CPDF_Stream> mask(m_pDict->GetStreamFor("SMask"));
+  if (!mask) {
+    mask.Reset(ToStream(m_pDict->GetDirectObjectFor("Mask")));
+    return mask ? StartLoadMaskDIB(std::move(mask)) : LoadState::kSuccess;
   }
 
-  const CPDF_Array* pMatte = m_pMaskStream->GetDict()->GetArrayFor("Matte");
+  const CPDF_Array* pMatte = mask->GetDict()->GetArrayFor("Matte");
   if (pMatte && m_pColorSpace && m_Family != PDFCS_PATTERN &&
       pMatte->size() == m_nComponents &&
       m_pColorSpace->CountComponents() <= m_nComponents) {
@@ -723,7 +723,7 @@
     m_MatteColor = ArgbEncode(0, FXSYS_roundf(R * 255), FXSYS_roundf(G * 255),
                               FXSYS_roundf(B * 255));
   }
-  return StartLoadMaskDIB();
+  return StartLoadMaskDIB(std::move(mask));
 }
 
 CPDF_DIB::LoadState CPDF_DIB::ContinueLoadMaskDIB(PauseIndicatorIface* pPause) {
@@ -752,11 +752,11 @@
   return m_pStreamAcc->GetImageDecoder() == "JBIG2Decode";
 }
 
-CPDF_DIB::LoadState CPDF_DIB::StartLoadMaskDIB() {
+CPDF_DIB::LoadState CPDF_DIB::StartLoadMaskDIB(
+    RetainPtr<const CPDF_Stream> mask) {
   m_pMask = pdfium::MakeRetain<CPDF_DIB>();
-  LoadState ret =
-      m_pMask->StartLoadDIBBase(m_pDocument.Get(), m_pMaskStream.Get(), false,
-                                nullptr, nullptr, true, 0, false);
+  LoadState ret = m_pMask->StartLoadDIBBase(
+      m_pDocument.Get(), mask.Get(), false, nullptr, nullptr, true, 0, false);
   if (ret == LoadState::kContinue) {
     if (m_Status == LoadState::kFail)
       m_Status = LoadState::kContinue;
diff --git a/core/fpdfapi/page/cpdf_dib.h b/core/fpdfapi/page/cpdf_dib.h
index 3a19883..6960cea 100644
--- a/core/fpdfapi/page/cpdf_dib.h
+++ b/core/fpdfapi/page/cpdf_dib.h
@@ -80,7 +80,7 @@
   ~CPDF_DIB() override;
 
   LoadState StartLoadMask();
-  LoadState StartLoadMaskDIB();
+  LoadState StartLoadMaskDIB(RetainPtr<const CPDF_Stream> mask);
   bool ContinueToLoadMask();
   LoadState ContinueLoadMaskDIB(PauseIndicatorIface* pPause);
   bool LoadColorInfo(const CPDF_Dictionary* pFormResources,
@@ -156,8 +156,6 @@
 
   // Must come after |m_pCachedBitmap|.
   std::unique_ptr<fxcodec::Jbig2Context> m_pJbig2Context;
-
-  RetainPtr<const CPDF_Stream> m_pMaskStream;
 };
 
 #endif  // CORE_FPDFAPI_PAGE_CPDF_DIB_H_