diff options
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/include/fsdk_mgr.h | 14 | ||||
-rw-r--r-- | fpdfsdk/src/fsdk_mgr.cpp | 47 |
2 files changed, 19 insertions, 42 deletions
diff --git a/fpdfsdk/include/fsdk_mgr.h b/fpdfsdk/include/fsdk_mgr.h index 85a04c6eec..bfbbd63ac0 100644 --- a/fpdfsdk/include/fsdk_mgr.h +++ b/fpdfsdk/include/fsdk_mgr.h @@ -451,7 +451,7 @@ class CPDFDoc_Environment final { CPDFSDK_Document* GetSDKDocument() const { return m_pSDKDoc; } CPDFXFA_Document* GetPDFXFADocument() const { return m_pXFADoc; } CFX_ByteString GetAppName() const { return ""; } - IFX_SystemHandler* GetSysHandler() const { return m_pSysHandler; } + IFX_SystemHandler* GetSysHandler() const { return m_pSysHandler.get(); } FPDF_FORMFILLINFO* GetFormFillInfo() const { return m_pInfo; } CFFL_IFormFiller* GetIFormFiller(); // Creates if not present. @@ -460,14 +460,14 @@ class CPDFDoc_Environment final { CPDFSDK_ActionHandler* GetActionHander(); // Creates if not present. private: - CPDFSDK_AnnotHandlerMgr* m_pAnnotHandlerMgr; - CPDFSDK_ActionHandler* m_pActionHandler; + nonstd::unique_ptr<CPDFSDK_AnnotHandlerMgr> m_pAnnotHandlerMgr; + nonstd::unique_ptr<CPDFSDK_ActionHandler> m_pActionHandler; nonstd::unique_ptr<IJS_Runtime> m_pJSRuntime; FPDF_FORMFILLINFO* const m_pInfo; CPDFSDK_Document* m_pSDKDoc; CPDFXFA_Document* const m_pXFADoc; - CFFL_IFormFiller* m_pIFormFiller; - IFX_SystemHandler* m_pSysHandler; + nonstd::unique_ptr<CFFL_IFormFiller> m_pIFormFiller; + nonstd::unique_ptr<IFX_SystemHandler> m_pSysHandler; }; class CPDFSDK_Document { @@ -523,10 +523,10 @@ class CPDFSDK_Document { private: std::map<CPDFXFA_Page*, CPDFSDK_PageView*> m_pageMap; CPDFXFA_Document* m_pDoc; - CPDFSDK_InterForm* m_pInterForm; + nonstd::unique_ptr<CPDFSDK_InterForm> m_pInterForm; CPDFSDK_Annot* m_pFocusAnnot; CPDFDoc_Environment* m_pEnv; - CPDF_OCContext* m_pOccontent; + nonstd::unique_ptr<CPDF_OCContext> m_pOccontent; FX_BOOL m_bChangeMask; FX_BOOL m_bBeingDestroyed; }; diff --git a/fpdfsdk/src/fsdk_mgr.cpp b/fpdfsdk/src/fsdk_mgr.cpp index 9bd403d8c3..d7c0e141ca 100644 --- a/fpdfsdk/src/fsdk_mgr.cpp +++ b/fpdfsdk/src/fsdk_mgr.cpp @@ -211,31 +211,16 @@ FX_SYSTEMTIME CFX_SystemHandler::GetLocalTime() { CPDFDoc_Environment::CPDFDoc_Environment(CPDFXFA_Document* pDoc, FPDF_FORMFILLINFO* pFFinfo) - : m_pAnnotHandlerMgr(NULL), - m_pActionHandler(NULL), - m_pInfo(pFFinfo), + : m_pInfo(pFFinfo), m_pSDKDoc(NULL), m_pXFADoc(pDoc), - m_pIFormFiller(NULL) { - m_pSysHandler = new CFX_SystemHandler(this); + m_pSysHandler(new CFX_SystemHandler(this)) { } CPDFDoc_Environment::~CPDFDoc_Environment() { - delete m_pIFormFiller; - m_pIFormFiller = NULL; - CPDFXFA_App* pProvider = CPDFXFA_App::GetInstance(); if (pProvider->m_pEnvList.GetSize() == 0) pProvider->SetJavaScriptInitialized(FALSE); - - delete m_pSysHandler; - m_pSysHandler = NULL; - - delete m_pAnnotHandlerMgr; - m_pAnnotHandlerMgr = NULL; - - delete m_pActionHandler; - m_pActionHandler = NULL; } int CPDFDoc_Environment::JS_appAlert(const FX_WCHAR* Msg, @@ -390,29 +375,27 @@ IJS_Runtime* CPDFDoc_Environment::GetJSRuntime() { CPDFSDK_AnnotHandlerMgr* CPDFDoc_Environment::GetAnnotHandlerMgr() { if (!m_pAnnotHandlerMgr) - m_pAnnotHandlerMgr = new CPDFSDK_AnnotHandlerMgr(this); - return m_pAnnotHandlerMgr; + m_pAnnotHandlerMgr.reset(new CPDFSDK_AnnotHandlerMgr(this)); + return m_pAnnotHandlerMgr.get(); } CPDFSDK_ActionHandler* CPDFDoc_Environment::GetActionHander() { if (!m_pActionHandler) - m_pActionHandler = new CPDFSDK_ActionHandler(); - return m_pActionHandler; + m_pActionHandler.reset(new CPDFSDK_ActionHandler()); + return m_pActionHandler.get(); } CFFL_IFormFiller* CPDFDoc_Environment::GetIFormFiller() { if (!m_pIFormFiller) - m_pIFormFiller = new CFFL_IFormFiller(this); - return m_pIFormFiller; + m_pIFormFiller.reset(new CFFL_IFormFiller(this)); + return m_pIFormFiller.get(); } CPDFSDK_Document::CPDFSDK_Document(CPDFXFA_Document* pDoc, CPDFDoc_Environment* pEnv) : m_pDoc(pDoc), - m_pInterForm(nullptr), m_pFocusAnnot(nullptr), m_pEnv(pEnv), - m_pOccontent(nullptr), m_bChangeMask(FALSE), m_bBeingDestroyed(FALSE) { } @@ -426,12 +409,6 @@ CPDFSDK_Document::~CPDFSDK_Document() { for (auto& it : m_pageMap) delete it.second; m_pageMap.clear(); - - delete m_pInterForm; - m_pInterForm = nullptr; - - delete m_pOccontent; - m_pOccontent = nullptr; } CPDFSDK_PageView* CPDFSDK_Document::GetPageView(CPDFXFA_Page* pPDFXFAPage, @@ -508,8 +485,8 @@ FX_BOOL CPDFSDK_Document::ProcOpenAction() { CPDF_OCContext* CPDFSDK_Document::GetOCContext() { if (!m_pOccontent) - m_pOccontent = new CPDF_OCContext(m_pDoc->GetPDFDoc()); - return m_pOccontent; + m_pOccontent.reset(new CPDF_OCContext(m_pDoc->GetPDFDoc())); + return m_pOccontent.get(); } void CPDFSDK_Document::ReMovePageView(CPDFXFA_Page* pPDFXFAPage) { @@ -535,8 +512,8 @@ CPDFXFA_Page* CPDFSDK_Document::GetPage(int nIndex) { CPDFSDK_InterForm* CPDFSDK_Document::GetInterForm() { if (!m_pInterForm) - m_pInterForm = new CPDFSDK_InterForm(this); - return m_pInterForm; + m_pInterForm.reset(new CPDFSDK_InterForm(this)); + return m_pInterForm.get(); } void CPDFSDK_Document::UpdateAllViews(CPDFSDK_PageView* pSender, |