summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdf_formfill.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/fpdf_formfill.cpp')
-rw-r--r--fpdfsdk/fpdf_formfill.cpp26
1 files changed, 16 insertions, 10 deletions
diff --git a/fpdfsdk/fpdf_formfill.cpp b/fpdfsdk/fpdf_formfill.cpp
index 280ef62edb..c92fc7b718 100644
--- a/fpdfsdk/fpdf_formfill.cpp
+++ b/fpdfsdk/fpdf_formfill.cpp
@@ -621,7 +621,11 @@ FPDF_EXPORT void FPDF_CALLCONV FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle,
if (!pDict)
return;
- CPDF_AAction aa(pDict->GetDictFor("AA"));
+ CPDF_Dictionary* pActionDict = pDict->GetDictFor("AA");
+ if (!pActionDict)
+ return;
+
+ CPDF_AAction aa(pActionDict);
auto type = static_cast<CPDF_AAction::AActionType>(aaType);
if (aa.ActionExist(type)) {
CPDF_Action action = aa.GetAction(type);
@@ -641,20 +645,22 @@ FPDF_EXPORT void FPDF_CALLCONV FORM_DoPageAAction(FPDF_PAGE page,
UnderlyingPageType* pPage = UnderlyingFromFPDFPage(page);
CPDF_Page* pPDFPage = CPDFPageFromFPDFPage(page);
- if (!pPDFPage)
- return;
-
- if (!pFormFillEnv->GetPageView(pPage, false))
+ if (!pPDFPage || !pFormFillEnv->GetPageView(pPage, false))
return;
CPDFSDK_ActionHandler* pActionHandler = pFormFillEnv->GetActionHandler();
CPDF_Dictionary* pPageDict = pPDFPage->m_pFormDict.Get();
- CPDF_AAction aa(pPageDict->GetDictFor("AA"));
+ if (!pPageDict)
+ return;
+
+ CPDF_Dictionary* pActionDict = pPageDict->GetDictFor("AA");
+ if (!pActionDict)
+ return;
+
+ CPDF_AAction aa(pActionDict);
CPDF_AAction::AActionType type = aaType == FPDFPAGE_AACTION_OPEN
? CPDF_AAction::OpenPage
: CPDF_AAction::ClosePage;
- if (aa.ActionExist(type)) {
- CPDF_Action action = aa.GetAction(type);
- pActionHandler->DoAction_Page(action, type, pFormFillEnv);
- }
+ if (aa.ActionExist(type))
+ pActionHandler->DoAction_Page(aa.GetAction(type), type, pFormFillEnv);
}