diff options
Diffstat (limited to 'fpdfsdk/fpdf_formfill.cpp')
-rw-r--r-- | fpdfsdk/fpdf_formfill.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fpdfsdk/fpdf_formfill.cpp b/fpdfsdk/fpdf_formfill.cpp index 3170627cd5..202835cb57 100644 --- a/fpdfsdk/fpdf_formfill.cpp +++ b/fpdfsdk/fpdf_formfill.cpp @@ -185,7 +185,8 @@ void FFLCommon(FPDF_FORMHANDLE hHandle, #else // PDF_ENABLE_XFA options.SetOCContext(pdfium::MakeRetain<CPDF_OCContext>( pPage->m_pDocument.Get(), CPDF_OCContext::View)); - if (CPDFSDK_PageView* pPageView = FormHandleToPageView(hHandle, pPage)) + if (CPDFSDK_PageView* pPageView = + FormHandleToPageView(hHandle, FPDFPageFromUnderlying(pPage))) pPageView->PageView_OnDraw(pDevice.get(), &matrix, &options); #endif // PDF_ENABLE_XFA } @@ -296,7 +297,7 @@ FPDFDOC_InitFormFillEnvironment(FPDF_DOCUMENT document, // this and can just return the old Env. Otherwise, we'll end up setting a new // environment into the XFADocument and, that could get weird. auto* pContext = static_cast<CPDFXFA_Context*>(pDocument->GetExtension()); - if (pContext->GetFormFillEnv()) + if (pContext && pContext->GetFormFillEnv()) return pContext->GetFormFillEnv(); #endif @@ -304,7 +305,8 @@ FPDFDOC_InitFormFillEnvironment(FPDF_DOCUMENT document, CPDFDocumentFromFPDFDocument(document), formInfo); #ifdef PDF_ENABLE_XFA - pContext->SetFormFillEnv(pFormFillEnv.get()); + if (pContext) + pContext->SetFormFillEnv(pFormFillEnv.get()); #endif // PDF_ENABLE_XFA return pFormFillEnv.release(); // Caller takes ownership. |