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;