Index: fpdfsdk/fpdf_progressive.cpp |
diff --git a/fpdfsdk/fpdf_progressive.cpp b/fpdfsdk/fpdf_progressive.cpp |
index c66807cc9167c7f3e1dffbbd841bca69b839992f..efde1eb029fa918f308e6adc2af60f1819e157a4 100644 |
--- a/fpdfsdk/fpdf_progressive.cpp |
+++ b/fpdfsdk/fpdf_progressive.cpp |
@@ -42,13 +42,10 @@ DLLEXPORT int STDCALL FPDF_RenderPageBitmap_Start(FPDF_BITMAP bitmap, |
CRenderContext* pContext = new CRenderContext; |
pPage->SetRenderContext(std::unique_ptr<CFX_Deletable>(pContext)); |
- pContext->m_pDevice = new CFX_FxgeDevice; |
- if (flags & FPDF_REVERSE_BYTE_ORDER) { |
- ((CFX_FxgeDevice*)pContext->m_pDevice) |
- ->Attach((CFX_DIBitmap*)bitmap, 0, TRUE); |
- } else { |
- ((CFX_FxgeDevice*)pContext->m_pDevice)->Attach((CFX_DIBitmap*)bitmap); |
- } |
+ CFX_FxgeDevice* pDevice = new CFX_FxgeDevice; |
+ pContext->m_pDevice = pDevice; |
+ CFX_DIBitmap* pBitmap = CFXBitmapFromFPDFBitmap(bitmap); |
+ pDevice->Attach(pBitmap, !!(flags & FPDF_REVERSE_BYTE_ORDER), nullptr, false); |
IFSDK_PAUSE_Adapter IPauseAdapter(pause); |
FPDF_RenderPage_Retail(pContext, page, start_x, start_y, size_x, size_y, |