diff options
author | Tom Sepez <tsepez@chromium.org> | 2017-01-30 10:04:07 -0800 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-01-30 18:46:09 +0000 |
commit | f716f0bd85cabfa02cea1d092890a0dea67ef0e3 (patch) | |
tree | 78c46e5ce93774bdb8ef3de2e3475acd9ecb44bd /fpdfsdk | |
parent | 4ada364e183e05479bc45d2ce41700ae18b7f6a3 (diff) | |
download | pdfium-f716f0bd85cabfa02cea1d092890a0dea67ef0e3.tar.xz |
Refcount CPDF_OCContext.
Avoids explicit deletes through CPDF_RenderOptions holding pointers
to it which may have been copy constructed. Ick.
Change-Id: Ic044b66d13bd7c5eaa53de995373858081e115ec
Reviewed-on: https://pdfium-review.googlesource.com/2451
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Nicolás Peña <npm@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/fpdfformfill.cpp | 9 | ||||
-rw-r--r-- | fpdfsdk/fpdfview.cpp | 2 |
2 files changed, 5 insertions, 6 deletions
diff --git a/fpdfsdk/fpdfformfill.cpp b/fpdfsdk/fpdfformfill.cpp index 6b8cbaa59d..beebe65dbb 100644 --- a/fpdfsdk/fpdfformfill.cpp +++ b/fpdfsdk/fpdfformfill.cpp @@ -127,12 +127,13 @@ void FFLCommon(FPDF_FORMHANDLE hHandle, options.m_bDrawAnnots = flags & FPDF_ANNOT; #ifdef PDF_ENABLE_XFA - options.m_pOCContext = new CPDF_OCContext(pPDFDoc, CPDF_OCContext::View); + options.m_pOCContext = + pdfium::MakeRetain<CPDF_OCContext>(pPDFDoc, CPDF_OCContext::View); if (CPDFSDK_PageView* pPageView = pFormFillEnv->GetPageView(pPage, true)) pPageView->PageView_OnDraw(pDevice.get(), &matrix, &options, clip); #else // PDF_ENABLE_XFA - options.m_pOCContext = - new CPDF_OCContext(pPage->m_pDocument, CPDF_OCContext::View); + options.m_pOCContext = pdfium::MakeRetain<CPDF_OCContext>( + pPage->m_pDocument, CPDF_OCContext::View); if (CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, pPage)) pPageView->PageView_OnDraw(pDevice.get(), &matrix, &options); #endif // PDF_ENABLE_XFA @@ -142,8 +143,6 @@ void FFLCommon(FPDF_FORMHANDLE hHandle, pDevice->Flush(); CFXBitmapFromFPDFBitmap(bitmap)->UnPreMultiply(); #endif - delete options.m_pOCContext; - options.m_pOCContext = nullptr; } } // namespace diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp index ff4d46e357..c1dc0df73e 100644 --- a/fpdfsdk/fpdfview.cpp +++ b/fpdfsdk/fpdfview.cpp @@ -94,7 +94,7 @@ void RenderPageImpl(CPDF_PageRenderContext* pContext, (flags & FPDF_PRINTING) ? CPDF_OCContext::Print : CPDF_OCContext::View; pContext->m_pOptions->m_AddFlags = flags >> 8; pContext->m_pOptions->m_pOCContext = - new CPDF_OCContext(pPage->m_pDocument, usage); + pdfium::MakeRetain<CPDF_OCContext>(pPage->m_pDocument, usage); pContext->m_pDevice->SaveState(); pContext->m_pDevice->SetClip_Rect(clipping_rect); |