Pass retained arguments to CPDF_ImageRenderer::Start()

In turn, do the same for CalculateDrawImage().

Bug: pdfium:1843
Change-Id: Ib776e97fba8b8dabf75579b5e0cf5466defe6ec0
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/95572
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.cpp b/core/fpdfapi/render/cpdf_imagerenderer.cpp
index 5cc1a4d..11f7c56 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.cpp
+++ b/core/fpdfapi/render/cpdf_imagerenderer.cpp
@@ -10,6 +10,7 @@
 
 #include <algorithm>
 #include <memory>
+#include <utility>
 
 #include "core/fpdfapi/page/cpdf_dib.h"
 #include "core/fpdfapi/page/cpdf_docpagedata.h"
@@ -182,12 +183,12 @@
   return StartRenderDIBBase();
 }
 
-bool CPDF_ImageRenderer::Start(const RetainPtr<CFX_DIBBase>& pDIBBase,
+bool CPDF_ImageRenderer::Start(RetainPtr<CFX_DIBBase> pDIBBase,
                                FX_ARGB bitmap_argb,
                                const CFX_Matrix& mtImage2Device,
                                const FXDIB_ResampleOptions& options,
                                bool bStdCS) {
-  m_pDIBBase = pDIBBase;
+  m_pDIBBase = std::move(pDIBBase);
   m_FillArgb = bitmap_argb;
   m_BitmapAlpha = 255;
   m_ImageMatrix = mtImage2Device;
@@ -218,7 +219,7 @@
 void CPDF_ImageRenderer::CalculateDrawImage(
     CFX_DefaultRenderDevice* pBitmapDevice1,
     CFX_DefaultRenderDevice* pBitmapDevice2,
-    const RetainPtr<CFX_DIBBase>& pDIBBase,
+    RetainPtr<CFX_DIBBase> pDIBBase,
     const CFX_Matrix& mtNewMatrix,
     const FX_RECT& rect) const {
   CPDF_RenderStatus bitmap_render(m_pRenderStatus->GetContext(),
@@ -228,8 +229,8 @@
   bitmap_render.Initialize(nullptr, nullptr);
 
   CPDF_ImageRenderer image_render(&bitmap_render);
-  if (image_render.Start(pDIBBase, 0xffffffff, mtNewMatrix, m_ResampleOptions,
-                         true)) {
+  if (image_render.Start(std::move(pDIBBase), 0xffffffff, mtNewMatrix,
+                         m_ResampleOptions, true)) {
     image_render.Continue(nullptr);
   }
   if (m_Loader.MatteColor() == 0xffffffff)
diff --git a/core/fpdfapi/render/cpdf_imagerenderer.h b/core/fpdfapi/render/cpdf_imagerenderer.h
index 084bed7..67e3310 100644
--- a/core/fpdfapi/render/cpdf_imagerenderer.h
+++ b/core/fpdfapi/render/cpdf_imagerenderer.h
@@ -35,7 +35,7 @@
              bool bStdCS,
              BlendMode blendType);
 
-  bool Start(const RetainPtr<CFX_DIBBase>& pDIBBase,
+  bool Start(RetainPtr<CFX_DIBBase> pDIBBase,
              FX_ARGB bitmap_argb,
              const CFX_Matrix& mtImage2Device,
              const FXDIB_ResampleOptions& options,
@@ -66,7 +66,7 @@
   CFX_Matrix GetDrawMatrix(const FX_RECT& rect) const;
   void CalculateDrawImage(CFX_DefaultRenderDevice* pBitmapDevice1,
                           CFX_DefaultRenderDevice* pBitmapDevice2,
-                          const RetainPtr<CFX_DIBBase>& pDIBBase,
+                          RetainPtr<CFX_DIBBase> pDIBBase,
                           const CFX_Matrix& mtNewMatrix,
                           const FX_RECT& rect) const;
   const CPDF_RenderOptions& GetRenderOptions() const;