Move some arguments from CPDF_ScaledRenderBuffer::Initialize() to ctor

Then the corresponding member variables in CPDF_ScaledRenderBuffer can
be marked as const.

Change-Id: I0122c8150dc20a5e8c5db58d81476e50c4f4f308
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/123212
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Tom Sepez <tsepez@google.com>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/render/cpdf_renderstatus.cpp b/core/fpdfapi/render/cpdf_renderstatus.cpp
index d2e7cfb..ee09437 100644
--- a/core/fpdfapi/render/cpdf_renderstatus.cpp
+++ b/core/fpdfapi/render/cpdf_renderstatus.cpp
@@ -335,8 +335,8 @@
     return;
 
   int res = (pObj->IsImage() && IsPrint()) ? 0 : 300;
-  CPDF_ScaledRenderBuffer buffer;
-  if (!buffer.Initialize(m_pContext, m_pDevice, rect, pObj, &m_Options, res)) {
+  CPDF_ScaledRenderBuffer buffer(m_pDevice, rect);
+  if (!buffer.Initialize(m_pContext, pObj, m_Options, res)) {
     return;
   }
   RetainPtr<const CPDF_Dictionary> pFormResource;
diff --git a/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp b/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
index 5582163..b8c10fb 100644
--- a/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
+++ b/core/fpdfapi/render/cpdf_scaledrenderbuffer.cpp
@@ -18,23 +18,21 @@
 
 }  // namespace
 
-CPDF_ScaledRenderBuffer::CPDF_ScaledRenderBuffer() = default;
+CPDF_ScaledRenderBuffer::CPDF_ScaledRenderBuffer(CFX_RenderDevice* device,
+                                                 const FX_RECT& rect)
+    : device_(device), rect_(rect) {}
 
 CPDF_ScaledRenderBuffer::~CPDF_ScaledRenderBuffer() = default;
 
 bool CPDF_ScaledRenderBuffer::Initialize(CPDF_RenderContext* pContext,
-                                         CFX_RenderDevice* pDevice,
-                                         const FX_RECT& rect,
                                          const CPDF_PageObject* pObj,
-                                         const CPDF_RenderOptions* pOptions,
+                                         const CPDF_RenderOptions& options,
                                          int max_dpi) {
-  device_ = pDevice;
   if (device_->GetDeviceCaps(FXDC_RENDER_CAPS) & FXRC_GET_BITS) {
     return true;
   }
 
-  rect_ = rect;
-  matrix_ = CPDF_DeviceBuffer::CalculateMatrix(pDevice, rect, max_dpi,
+  matrix_ = CPDF_DeviceBuffer::CalculateMatrix(device_, rect_, max_dpi,
                                                /*scale=*/true);
   bitmap_device_ = std::make_unique<CFX_DefaultRenderDevice>();
   bool bIsAlpha =
@@ -42,7 +40,7 @@
   FXDIB_Format dibFormat = bIsAlpha ? FXDIB_Format::kArgb : FXDIB_Format::kRgb;
   while (true) {
     FX_RECT bitmap_rect =
-        matrix_.TransformRect(CFX_FloatRect(rect)).GetOuterRect();
+        matrix_.TransformRect(CFX_FloatRect(rect_)).GetOuterRect();
     int32_t width = bitmap_rect.Width();
     int32_t height = bitmap_rect.Height();
     // Set to 0 to make CalculatePitchAndSize() calculate it.
@@ -58,7 +56,7 @@
     }
     matrix_.Scale(0.5f, 0.5f);
   }
-  pContext->GetBackgroundToDevice(bitmap_device_.get(), pObj, pOptions,
+  pContext->GetBackgroundToDevice(bitmap_device_.get(), pObj, &options,
                                   matrix_);
   return true;
 }
diff --git a/core/fpdfapi/render/cpdf_scaledrenderbuffer.h b/core/fpdfapi/render/cpdf_scaledrenderbuffer.h
index 0188343..16eb4f4 100644
--- a/core/fpdfapi/render/cpdf_scaledrenderbuffer.h
+++ b/core/fpdfapi/render/cpdf_scaledrenderbuffer.h
@@ -20,14 +20,12 @@
 
 class CPDF_ScaledRenderBuffer {
  public:
-  CPDF_ScaledRenderBuffer();
+  CPDF_ScaledRenderBuffer(CFX_RenderDevice* device, const FX_RECT& rect);
   ~CPDF_ScaledRenderBuffer();
 
   bool Initialize(CPDF_RenderContext* pContext,
-                  CFX_RenderDevice* pDevice,
-                  const FX_RECT& rect,
                   const CPDF_PageObject* pObj,
-                  const CPDF_RenderOptions* pOptions,
+                  const CPDF_RenderOptions& options,
                   int max_dpi);
 
   CFX_RenderDevice* GetDevice() const;
@@ -35,9 +33,9 @@
   void OutputToDevice();
 
  private:
-  UnownedPtr<CFX_RenderDevice> device_;
+  UnownedPtr<CFX_RenderDevice> const device_;
   std::unique_ptr<CFX_DefaultRenderDevice> bitmap_device_;
-  FX_RECT rect_;
+  const FX_RECT rect_;
   CFX_Matrix matrix_;
 };