diff options
Diffstat (limited to 'fpdfsdk/cpdfsdk_pageview.cpp')
-rw-r--r-- | fpdfsdk/cpdfsdk_pageview.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/fpdfsdk/cpdfsdk_pageview.cpp b/fpdfsdk/cpdfsdk_pageview.cpp index 5cb5f2ced2..06d197dfba 100644 --- a/fpdfsdk/cpdfsdk_pageview.cpp +++ b/fpdfsdk/cpdfsdk_pageview.cpp @@ -38,19 +38,18 @@ CPDFSDK_PageView::CPDFSDK_PageView(CPDFSDK_FormFillEnvironment* pFormFillEnv, CPDFSDK_InterForm* pInterForm = pFormFillEnv->GetInterForm(); CPDF_InterForm* pPDFInterForm = pInterForm->GetInterForm(); pPDFInterForm->FixPageFields(pPDFPage); -#ifndef PDF_ENABLE_XFA pPDFPage->SetView(this); -#endif // PDF_ENABLE_XFA } } CPDFSDK_PageView::~CPDFSDK_PageView() { -#ifndef PDF_ENABLE_XFA - // The call to |ReleaseAnnot| can cause the page pointed to by |m_page| to - // be freed, which will cause issues if we try to cleanup the pageview pointer - // in |m_page|. So, reset the pageview pointer before doing anything else. - m_page->AsPDFPage()->SetView(nullptr); -#endif // PDF_ENABLE_XFA + CPDF_Page* pPDFPage = ToPDFPage(m_page); + if (pPDFPage) { + // The call to |ReleaseAnnot| can cause the page pointed to by |m_page| to + // be freed, which will cause issues if we try to cleanup the pageview ptr + // in |m_page|. So, reset the pageview pointer before doing anything else. + pPDFPage->SetView(nullptr); + } CPDFSDK_AnnotHandlerMgr* pAnnotHandlerMgr = m_pFormFillEnv->GetAnnotHandlerMgr(); |