diff options
author | dsinclair <dsinclair@chromium.org> | 2016-10-13 12:14:34 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-10-13 12:14:35 -0700 |
commit | a282c7380f3964de41ea93c9980b12c4513d3473 (patch) | |
tree | 5202284e527cd2bdcd7bcd22495018c9fbff1fd5 /fpdfsdk/fpdfxfa/cpdfxfa_document.h | |
parent | f3736bca5f874b0889c5906ffbd74a405089f671 (diff) | |
download | pdfium-a282c7380f3964de41ea93c9980b12c4513d3473.tar.xz |
Revert of Reland: Make the CPDFXFA_App non-global (patchset #2 id:20001 of https://codereview.chromium.org/2418653003/ )
Reason for revert:
https://build.chromium.org/p/client.pdfium/builders/linux_xfa_asan_lsan/builds/117/steps/corpus%20tests/logs/stdio
Original issue's description:
> Reland: Make the CPDFXFA_App non-global
>
> This reverts commit b685e6471075bebd26711bc183de3128f54932e3.
>
> This CL changes CPDFXFA_App from a global object to a child of the CPDFXFA_Document objects.
>
> BUG=pdfium:623
>
> Committed: https://pdfium.googlesource.com/pdfium/+/f3736bca5f874b0889c5906ffbd74a405089f671
TBR=tsepez@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=pdfium:623
Review-Url: https://codereview.chromium.org/2414883006
Diffstat (limited to 'fpdfsdk/fpdfxfa/cpdfxfa_document.h')
-rw-r--r-- | fpdfsdk/fpdfxfa/cpdfxfa_document.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_document.h b/fpdfsdk/fpdfxfa/cpdfxfa_document.h index 88c0e60f2d..de997c16f3 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_document.h +++ b/fpdfsdk/fpdfxfa/cpdfxfa_document.h @@ -9,11 +9,11 @@ #include <memory> -#include "fpdfsdk/fpdfxfa/cpdfxfa_app.h" #include "fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.h" #include "xfa/fxfa/xfa_ffdoc.h" class CPDFSDK_FormFillEnvironment; +class CPDFXFA_App; class CPDFXFA_Page; class CXFA_FFDocHandler; class IJS_Runtime; @@ -29,7 +29,8 @@ enum LoadStatus { class CPDFXFA_Document { public: - CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc); + CPDFXFA_Document(std::unique_ptr<CPDF_Document> pPDFDoc, + CPDFXFA_App* pProvider); ~CPDFXFA_Document(); FX_BOOL LoadXFADoc(); @@ -37,11 +38,9 @@ class CPDFXFA_Document { CXFA_FFDoc* GetXFADoc() { return m_pXFADoc.get(); } CXFA_FFDocView* GetXFADocView() { return m_pXFADocView; } int GetDocType() const { return m_iDocType; } - CPDFXFA_App* GetApp(); // Creates if needed. CPDFSDK_FormFillEnvironment* GetFormFillEnv() const { return m_pFormFillEnv; } void SetFormFillEnv(CPDFSDK_FormFillEnvironment* pFormFillEnv) { - GetApp()->SetFormFillEnv(pFormFillEnv); m_pFormFillEnv = pFormFillEnv; } @@ -69,7 +68,13 @@ class CPDFXFA_Document { CFX_ArrayTemplate<CPDFXFA_Page*>* GetXFAPageList() { return &m_XFAPageList; } private: - void CloseXFADoc(CXFA_FFDocHandler* pDoc); + void CloseXFADoc(CXFA_FFDocHandler* pDoc) { + if (pDoc) { + m_pXFADoc->CloseDoc(); + m_pXFADoc.reset(); + m_pXFADocView = nullptr; + } + } int m_iDocType; @@ -77,7 +82,7 @@ class CPDFXFA_Document { std::unique_ptr<CXFA_FFDoc> m_pXFADoc; CPDFSDK_FormFillEnvironment* m_pFormFillEnv; // not owned. CXFA_FFDocView* m_pXFADocView; // not owned. - std::unique_ptr<CPDFXFA_App> m_pApp; + CPDFXFA_App* const m_pApp; CFX_ArrayTemplate<CPDFXFA_Page*> m_XFAPageList; LoadStatus m_nLoadStatus; int m_nPageCount; |