| Index: core/src/fpdfdoc/doc_form.cpp
|
| diff --git a/core/src/fpdfdoc/doc_form.cpp b/core/src/fpdfdoc/doc_form.cpp
|
| index 970b4b9f40fa4780979e230ec7529950093b2c7c..17f180844426253861f91a9316c2641fe7c3b0b0 100644
|
| --- a/core/src/fpdfdoc/doc_form.cpp
|
| +++ b/core/src/fpdfdoc/doc_form.cpp
|
| @@ -233,21 +233,25 @@ CFieldTree::_Node* CFieldTree::FindNode(const CFX_WideString& full_name) {
|
| return pNode;
|
| }
|
| CPDF_InterForm::CPDF_InterForm(CPDF_Document* pDocument, FX_BOOL bGenerateAP)
|
| - : CFX_PrivateData() {
|
| - m_pDocument = pDocument;
|
| - m_bGenerateAP = bGenerateAP;
|
| - m_pFormNotify = NULL;
|
| - m_bUpdated = FALSE;
|
| - m_pFieldTree = new CFieldTree;
|
| + : CFX_PrivateData(),
|
| + m_pDocument(pDocument),
|
| + m_bGenerateAP(bGenerateAP),
|
| + m_pFormDict(nullptr),
|
| + m_pFieldTree(new CFieldTree),
|
| + m_pFormNotify(nullptr),
|
| + m_bUpdated(FALSE) {
|
| CPDF_Dictionary* pRoot = m_pDocument->GetRoot();
|
| + if (!pRoot)
|
| + return;
|
| +
|
| m_pFormDict = pRoot->GetDict("AcroForm");
|
| - if (m_pFormDict == NULL) {
|
| + if (!m_pFormDict)
|
| return;
|
| - }
|
| +
|
| CPDF_Array* pFields = m_pFormDict->GetArray("Fields");
|
| - if (pFields == NULL) {
|
| + if (!pFields)
|
| return;
|
| - }
|
| +
|
| int count = pFields->GetCount();
|
| for (int i = 0; i < count; i++) {
|
| LoadField(pFields->GetDict(i));
|
| @@ -257,12 +261,10 @@ CPDF_InterForm::CPDF_InterForm(CPDF_Document* pDocument, FX_BOOL bGenerateAP)
|
| CPDF_InterForm::~CPDF_InterForm() {
|
| for (auto it : m_ControlMap)
|
| delete it.second;
|
| - if (m_pFieldTree) {
|
| - int nCount = m_pFieldTree->m_Root.CountFields();
|
| - for (int i = 0; i < nCount; ++i) {
|
| - delete m_pFieldTree->m_Root.GetField(i);
|
| - }
|
| - delete m_pFieldTree;
|
| +
|
| + int nCount = m_pFieldTree->m_Root.CountFields();
|
| + for (int i = 0; i < nCount; ++i) {
|
| + delete m_pFieldTree->m_Root.GetField(i);
|
| }
|
| }
|
|
|
|
|