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