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/fsdk_mgr.cpp | |
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/fsdk_mgr.cpp')
-rw-r--r-- | fpdfsdk/src/fsdk_mgr.cpp | 32 |
1 files changed, 14 insertions, 18 deletions
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() |