Remove some CPDF_ImageLoader::Start() parameters.

The |pRenderStatus| parameter can retrieve all the removed ones. Also do
the same removal for CPDF_ImageCacheEntry::StartGetCachedBitmap() and
CPDF_PageRenderCache::StartGetCachedBitmap().

Change-Id: I5157b8565a77ae3b691f55ac0aa72088c0b117a7
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/65841
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.cpp b/core/fpdfapi/render/cpdf_imagecacheentry.cpp
index 3805b2d..fa25896 100644
--- a/core/fpdfapi/render/cpdf_imagecacheentry.cpp
+++ b/core/fpdfapi/render/cpdf_imagecacheentry.cpp
@@ -54,14 +54,9 @@
 }
 
 CPDF_DIB::LoadState CPDF_ImageCacheEntry::StartGetCachedBitmap(
-    const CPDF_Dictionary* pFormResources,
     CPDF_Dictionary* pPageResources,
-    bool bStdCS,
-    uint32_t GroupFamily,
-    bool bLoadMask,
-    CPDF_RenderStatus* pRenderStatus) {
-  ASSERT(pRenderStatus);
-
+    const CPDF_RenderStatus* pRenderStatus,
+    bool bStdCS) {
   if (m_pCachedBitmap) {
     m_pCurBitmap = m_pCachedBitmap;
     m_pCurMask = m_pCachedMask;
@@ -70,8 +65,9 @@
 
   m_pCurBitmap = pdfium::MakeRetain<CPDF_DIB>();
   CPDF_DIB::LoadState ret = m_pCurBitmap.As<CPDF_DIB>()->StartLoadDIBBase(
-      m_pDocument.Get(), m_pImage->GetStream(), true, pFormResources,
-      pPageResources, bStdCS, GroupFamily, bLoadMask);
+      m_pDocument.Get(), m_pImage->GetStream(), true,
+      pRenderStatus->GetFormResource(), pPageResources, bStdCS,
+      pRenderStatus->GetGroupFamily(), pRenderStatus->GetLoadMask());
   if (ret == CPDF_DIB::LoadState::kContinue)
     return CPDF_DIB::LoadState::kContinue;
 
@@ -97,7 +93,7 @@
 }
 
 void CPDF_ImageCacheEntry::ContinueGetCachedBitmap(
-    CPDF_RenderStatus* pRenderStatus) {
+    const CPDF_RenderStatus* pRenderStatus) {
   m_MatteColor = m_pCurBitmap.As<CPDF_DIB>()->GetMatteColor();
   m_pCurMask = m_pCurBitmap.As<CPDF_DIB>()->DetachMask();
   CPDF_RenderContext* pContext = pRenderStatus->GetContext();
diff --git a/core/fpdfapi/render/cpdf_imagecacheentry.h b/core/fpdfapi/render/cpdf_imagecacheentry.h
index c3f373e..46e3f89 100644
--- a/core/fpdfapi/render/cpdf_imagecacheentry.h
+++ b/core/fpdfapi/render/cpdf_imagecacheentry.h
@@ -30,12 +30,9 @@
   CPDF_Image* GetImage() const { return m_pImage.Get(); }
 
   CPDF_DIB::LoadState StartGetCachedBitmap(
-      const CPDF_Dictionary* pFormResources,
       CPDF_Dictionary* pPageResources,
-      bool bStdCS,
-      uint32_t GroupFamily,
-      bool bLoadMask,
-      CPDF_RenderStatus* pRenderStatus);
+      const CPDF_RenderStatus* pRenderStatus,
+      bool bStdCS);
 
   // Returns whether to Continue() or not.
   bool Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus);
@@ -47,7 +44,7 @@
   uint32_t m_MatteColor = 0;
 
  private:
-  void ContinueGetCachedBitmap(CPDF_RenderStatus* pRenderStatus);
+  void ContinueGetCachedBitmap(const CPDF_RenderStatus* pRenderStatus);
   void CalcSize();
 
   UnownedPtr<CPDF_Document> const m_pDocument;
diff --git a/core/fpdfapi/render/cpdf_imageloader.cpp b/core/fpdfapi/render/cpdf_imageloader.cpp
index fac4799..0276180 100644
--- a/core/fpdfapi/render/cpdf_imageloader.cpp
+++ b/core/fpdfapi/render/cpdf_imageloader.cpp
@@ -12,6 +12,7 @@
 #include "core/fpdfapi/page/cpdf_transferfunc.h"
 #include "core/fpdfapi/render/cpdf_imagecacheentry.h"
 #include "core/fpdfapi/render/cpdf_pagerendercache.h"
+#include "core/fpdfapi/render/cpdf_rendercontext.h"
 #include "core/fpdfapi/render/cpdf_renderstatus.h"
 #include "core/fxge/dib/cfx_dibitmap.h"
 
@@ -20,21 +21,18 @@
 CPDF_ImageLoader::~CPDF_ImageLoader() = default;
 
 bool CPDF_ImageLoader::Start(CPDF_ImageObject* pImage,
-                             CPDF_PageRenderCache* pCache,
-                             bool bStdCS,
-                             uint32_t GroupFamily,
-                             bool bLoadMask,
-                             CPDF_RenderStatus* pRenderStatus) {
-  m_pCache = pCache;
+                             const CPDF_RenderStatus* pRenderStatus,
+                             bool bStdCS) {
+  m_pCache = pRenderStatus->GetContext()->GetPageCache();
   m_pImageObject = pImage;
   bool ret;
-  if (pCache) {
-    ret = pCache->StartGetCachedBitmap(m_pImageObject->GetImage(), bStdCS,
-                                       GroupFamily, bLoadMask, pRenderStatus);
+  if (m_pCache) {
+    ret = m_pCache->StartGetCachedBitmap(m_pImageObject->GetImage(),
+                                         pRenderStatus, bStdCS);
   } else {
     ret = m_pImageObject->GetImage()->StartLoadDIBBase(
         pRenderStatus->GetFormResource(), pRenderStatus->GetPageResource(),
-        bStdCS, GroupFamily, bLoadMask);
+        bStdCS, pRenderStatus->GetGroupFamily(), pRenderStatus->GetLoadMask());
   }
   if (!ret)
     HandleFailure();
diff --git a/core/fpdfapi/render/cpdf_imageloader.h b/core/fpdfapi/render/cpdf_imageloader.h
index 7e12c01..d3de6c3 100644
--- a/core/fpdfapi/render/cpdf_imageloader.h
+++ b/core/fpdfapi/render/cpdf_imageloader.h
@@ -23,11 +23,8 @@
   ~CPDF_ImageLoader();
 
   bool Start(CPDF_ImageObject* pImage,
-             CPDF_PageRenderCache* pCache,
-             bool bStdCS,
-             uint32_t GroupFamily,
-             bool bLoadMask,
-             CPDF_RenderStatus* pRenderStatus);
+             const CPDF_RenderStatus* pRenderStatus,
+             bool bStdCS);
   bool Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus);
 
   RetainPtr<CFX_DIBBase> TranslateImage(
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp
index 2d3ec4c..b752e44 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.cpp
+++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -62,14 +62,11 @@
   if (!GetUnitRect().has_value())
     return false;
 
-  if (m_Loader.Start(m_pImageObject.Get(),
-                     m_pRenderStatus->GetContext()->GetPageCache(), m_bStdCS,
-                     m_pRenderStatus->GetGroupFamily(),
-                     m_pRenderStatus->GetLoadMask(), m_pRenderStatus.Get())) {
-    m_Mode = Mode::kDefault;
-    return true;
-  }
-  return false;
+  if (!m_Loader.Start(m_pImageObject.Get(), m_pRenderStatus.Get(), m_bStdCS))
+    return false;
+
+  m_Mode = Mode::kDefault;
+  return true;
 }
 
 bool CPDF_ImageRenderer::StartRenderDIBBase() {
diff --git a/core/fpdfapi/render/cpdf_pagerendercache.cpp b/core/fpdfapi/render/cpdf_pagerendercache.cpp
index ca4f8ee..7e4734a 100644
--- a/core/fpdfapi/render/cpdf_pagerendercache.cpp
+++ b/core/fpdfapi/render/cpdf_pagerendercache.cpp
@@ -74,10 +74,8 @@
 
 bool CPDF_PageRenderCache::StartGetCachedBitmap(
     const RetainPtr<CPDF_Image>& pImage,
-    bool bStdCS,
-    uint32_t GroupFamily,
-    bool bLoadMask,
-    CPDF_RenderStatus* pRenderStatus) {
+    const CPDF_RenderStatus* pRenderStatus,
+    bool bStdCS) {
   CPDF_Stream* pStream = pImage->GetStream();
   const auto it = m_ImageCache.find(pStream);
   m_bCurFindCache = it != m_ImageCache.end();
@@ -88,8 +86,7 @@
         m_pPage->GetDocument(), pImage);
   }
   CPDF_DIB::LoadState ret = m_pCurImageCacheEntry->StartGetCachedBitmap(
-      pRenderStatus->GetFormResource(), m_pPage->m_pPageResources.Get(), bStdCS,
-      GroupFamily, bLoadMask, pRenderStatus);
+      m_pPage->m_pPageResources.Get(), pRenderStatus, bStdCS);
   if (ret == CPDF_DIB::LoadState::kContinue)
     return true;
 
diff --git a/core/fpdfapi/render/cpdf_pagerendercache.h b/core/fpdfapi/render/cpdf_pagerendercache.h
index 1fb2a61..efc245b 100644
--- a/core/fpdfapi/render/cpdf_pagerendercache.h
+++ b/core/fpdfapi/render/cpdf_pagerendercache.h
@@ -39,10 +39,8 @@
   }
 
   bool StartGetCachedBitmap(const RetainPtr<CPDF_Image>& pImage,
-                            bool bStdCS,
-                            uint32_t GroupFamily,
-                            bool bLoadMask,
-                            CPDF_RenderStatus* pRenderStatus);
+                            const CPDF_RenderStatus* pRenderStatus,
+                            bool bStdCS);
 
   bool Continue(PauseIndicatorIface* pPause, CPDF_RenderStatus* pRenderStatus);