Move CPDF_ProgressiveRenderer::ToFPDFStatus() to fpdfsdk/. The code in core/fpdfapi/ should not need to know about fpdfsdk/ specifics. So move ToFPDFStatus() into an anonymous namespace in fpdfsdk/fpdf_progressive.cpp. Also rearrange one of the callers in fpdf_progressive.cpp to use early returns. Change-Id: Ie508a9d6ce6680e469e4eb3d267549bfe098635c Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/65593 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/render/cpdf_progressiverenderer.h b/core/fpdfapi/render/cpdf_progressiverenderer.h index 4a554c0..fd399f9 100644 --- a/core/fpdfapi/render/cpdf_progressiverenderer.h +++ b/core/fpdfapi/render/cpdf_progressiverenderer.h
@@ -31,8 +31,6 @@ kFailed // FPDF_RENDER_FAILED }; - static int ToFPDFStatus(Status status) { return static_cast<int>(status); } - CPDF_ProgressiveRenderer(CPDF_RenderContext* pContext, CFX_RenderDevice* pDevice, const CPDF_RenderOptions* pOptions);
diff --git a/fpdfsdk/fpdf_progressive.cpp b/fpdfsdk/fpdf_progressive.cpp index cb138c7..99a9230 100644 --- a/fpdfsdk/fpdf_progressive.cpp +++ b/fpdfsdk/fpdf_progressive.cpp
@@ -33,6 +33,14 @@ static_assert(CPDF_ProgressiveRenderer::kFailed == FPDF_RENDER_FAILED, "CPDF_ProgressiveRenderer::kFailed value mismatch"); +namespace { + +int ToFPDFStatus(CPDF_ProgressiveRenderer::Status status) { + return static_cast<int>(status); +} + +} // namespace + FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPageBitmap_Start(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, @@ -72,8 +80,7 @@ if (!pContext->m_pRenderer) return FPDF_RENDER_FAILED; - return CPDF_ProgressiveRenderer::ToFPDFStatus( - pContext->m_pRenderer->GetStatus()); + return ToFPDFStatus(pContext->m_pRenderer->GetStatus()); } FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPage_Continue(FPDF_PAGE page, @@ -87,18 +94,17 @@ auto* pContext = static_cast<CPDF_PageRenderContext*>(pPage->GetRenderContext()); - if (pContext && pContext->m_pRenderer) { - CPDFSDK_PauseAdapter pause_adapter(pause); - pContext->m_pRenderer->Continue(&pause_adapter); + if (!pContext || !pContext->m_pRenderer) + return FPDF_RENDER_FAILED; + + CPDFSDK_PauseAdapter pause_adapter(pause); + pContext->m_pRenderer->Continue(&pause_adapter); #ifdef _SKIA_SUPPORT_PATHS_ - CFX_RenderDevice* pDevice = pContext->m_pDevice.get(); - pDevice->Flush(false); - pDevice->GetBitmap()->UnPreMultiply(); + CFX_RenderDevice* pDevice = pContext->m_pDevice.get(); + pDevice->Flush(false); + pDevice->GetBitmap()->UnPreMultiply(); #endif - return CPDF_ProgressiveRenderer::ToFPDFStatus( - pContext->m_pRenderer->GetStatus()); - } - return FPDF_RENDER_FAILED; + return ToFPDFStatus(pContext->m_pRenderer->GetStatus()); } FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPage_Close(FPDF_PAGE page) {