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_; };