diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-06-17 16:38:51 -0700 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-06-17 16:38:51 -0700 |
commit | ff8347a4b16f000be628c5e10d03a1e1c17537eb (patch) | |
tree | 1d46e77a1ef6b28def6af3ffdd576017a6cfe229 /fpdfsdk/src | |
parent | c4d9f6ad2dc922b574862cd2f6f0a899d7e169e3 (diff) | |
download | pdfium-ff8347a4b16f000be628c5e10d03a1e1c17537eb.tar.xz |
Replace some Release() calls with virtual destructors.
A virtual method that does |delete this| is an anti-pattern.
Some classes can be de-virtualized instead.
Throw in some unique_ptrs and delete dead code for good measure.
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1192013002.
Diffstat (limited to 'fpdfsdk/src')
-rw-r--r-- | fpdfsdk/src/fpdfview.cpp | 20 | ||||
-rw-r--r-- | fpdfsdk/src/fsdk_actionhandler.cpp | 29 | ||||
-rw-r--r-- | fpdfsdk/src/fsdk_baseform.cpp | 16 | ||||
-rw-r--r-- | fpdfsdk/src/fsdk_mgr.cpp | 32 |
4 files changed, 23 insertions, 74 deletions
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp index 48c6516d22..54731193dd 100644 --- a/fpdfsdk/src/fpdfview.cpp +++ b/fpdfsdk/src/fpdfview.cpp @@ -77,13 +77,7 @@ FPDF_BOOL FSDK_IsSandBoxPolicyEnabled(FPDF_DWORD policy) #define _T(x) x #endif -#ifdef API5 - CPDF_ModuleMgr* g_pModuleMgr = NULL; -#else - CCodec_ModuleMgr* g_pCodecModule = NULL; -#endif - -//extern CPDFSDK_FormFillApp* g_pFormFillApp; +CCodec_ModuleMgr* g_pCodecModule = nullptr; #if _FX_OS_ == _FX_LINUX_EMBEDDED_ class CFontMapper : public IPDF_FontMapper @@ -111,7 +105,7 @@ CFontMapper* g_pFontMapper = NULL; DLLEXPORT void STDCALL FPDF_InitLibrary() { - g_pCodecModule = CCodec_ModuleMgr::Create(); + g_pCodecModule = new CCodec_ModuleMgr(); CFX_GEModule::Create(); CFX_GEModule::Get()->SetCodecModule(g_pCodecModule); @@ -135,15 +129,13 @@ DLLEXPORT void STDCALL FPDF_DestroyLibrary() { #if _FX_OS_ == _FX_LINUX_EMBEDDED_ - if (g_pFontMapper) delete g_pFontMapper; + delete g_pFontMapper; + g_pFontMapper = nullptr; #endif -#ifdef API5 - g_pModuleMgr->Destroy(); -#else CPDF_ModuleMgr::Destroy(); CFX_GEModule::Destroy(); - g_pCodecModule->Destroy(); -#endif + delete g_pCodecModule; + g_pCodecModule = nullptr; } #ifndef _WIN32 diff --git a/fpdfsdk/src/fsdk_actionhandler.cpp b/fpdfsdk/src/fsdk_actionhandler.cpp index b790585a6a..145559e057 100644 --- a/fpdfsdk/src/fsdk_actionhandler.cpp +++ b/fpdfsdk/src/fsdk_actionhandler.cpp @@ -11,27 +11,9 @@ /* -------------------------- CBA_ActionHandler -------------------------- */ -CPDFSDK_ActionHandler::CPDFSDK_ActionHandler(CPDFDoc_Environment* pEvi) : - m_pFormActionHandler(NULL), - m_pMediaActionHandler(NULL) -{ - m_pFormActionHandler = new CPDFSDK_FormActionHandler; -} - -CPDFSDK_ActionHandler::~CPDFSDK_ActionHandler() -{ - if(m_pFormActionHandler) - { - delete m_pFormActionHandler; - m_pFormActionHandler = NULL; - } -} - -void CPDFSDK_ActionHandler::SetFormActionHandler(CPDFSDK_FormActionHandler* pHandler) -{ - ASSERT(pHandler != NULL); - ASSERT(m_pFormActionHandler == NULL); - m_pFormActionHandler = pHandler; +CPDFSDK_ActionHandler::CPDFSDK_ActionHandler(CPDFDoc_Environment* pEvi) + : m_pFormActionHandler(new CPDFSDK_FormActionHandler), + m_pMediaActionHandler(NULL) { } void CPDFSDK_ActionHandler::SetMediaActionHandler(CPDFSDK_MediaActionHandler* pHandler) @@ -41,11 +23,6 @@ void CPDFSDK_ActionHandler::SetMediaActionHandler(CPDFSDK_MediaActionHandler* pH m_pMediaActionHandler = pHandler; } -void CPDFSDK_ActionHandler::Destroy() -{ - delete this; -} - //document open FX_BOOL CPDFSDK_ActionHandler::DoAction_DocOpen(const CPDF_Action& action, CPDFSDK_Document* pDocument) { diff --git a/fpdfsdk/src/fsdk_baseform.cpp b/fpdfsdk/src/fsdk_baseform.cpp index f58bfd84f2..312d323581 100644 --- a/fpdfsdk/src/fsdk_baseform.cpp +++ b/fpdfsdk/src/fsdk_baseform.cpp @@ -1666,28 +1666,12 @@ CPDFSDK_InterForm::CPDFSDK_InterForm(CPDFSDK_Document* pDocument) CPDFSDK_InterForm::~CPDFSDK_InterForm() { - ASSERT(m_pInterForm != NULL); delete m_pInterForm; m_pInterForm = NULL; m_Map.RemoveAll(); } -void CPDFSDK_InterForm::Destroy() -{ - delete this; -} - -CPDF_InterForm* CPDFSDK_InterForm::GetInterForm() -{ - return m_pInterForm; -} - -CPDFSDK_Document* CPDFSDK_InterForm::GetDocument() -{ - return m_pDocument; -} - FX_BOOL CPDFSDK_InterForm::HighlightWidgets() { return FALSE; diff --git a/fpdfsdk/src/fsdk_mgr.cpp b/fpdfsdk/src/fsdk_mgr.cpp index 1e57dc7b4e..b8028aad73 100644 --- a/fpdfsdk/src/fsdk_mgr.cpp +++ b/fpdfsdk/src/fsdk_mgr.cpp @@ -332,24 +332,20 @@ CPDFSDK_Document::CPDFSDK_Document(CPDF_Document* pDoc,CPDFDoc_Environment* pEnv CPDFSDK_Document::~CPDFSDK_Document() { - FX_POSITION pos = m_pageMap.GetStartPosition(); - while (pos) { - CPDF_Page* pPage = NULL; - CPDFSDK_PageView* pPageView = NULL; - m_pageMap.GetNextAssoc(pos, pPage, pPageView); - delete pPageView; - } - m_pageMap.RemoveAll(); - if(m_pInterForm) - { - m_pInterForm->Destroy(); - m_pInterForm = NULL; - } - if(m_pOccontent) - { - delete m_pOccontent; - m_pOccontent = NULL; - } + FX_POSITION pos = m_pageMap.GetStartPosition(); + while (pos) { + CPDF_Page* pPage = NULL; + CPDFSDK_PageView* pPageView = NULL; + m_pageMap.GetNextAssoc(pos, pPage, pPageView); + delete pPageView; + } + m_pageMap.RemoveAll(); + + delete m_pInterForm; + m_pInterForm = nullptr; + + delete m_pOccontent; + m_pOccontent = nullptr; } void CPDFSDK_Document::InitPageView() |