diff options
author | tsepez <tsepez@chromium.org> | 2017-01-05 19:21:39 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2017-01-05 19:21:39 -0800 |
commit | 469f6da247ffe77d0ae6089e5d93db0b0c0bb37e (patch) | |
tree | 54ead40b8fedc1629f41f4797c34190064181b6f /xfa/fxfa/parser/cxfa_layoutprocessor.cpp | |
parent | 4a551f5570b3d465bba5c77e499b33cf4a47501a (diff) | |
download | pdfium-469f6da247ffe77d0ae6089e5d93db0b0c0bb37e.tar.xz |
use unique_ptr in cxfa_layoutprocessor.h
Review-Url: https://codereview.chromium.org/2617483005
Diffstat (limited to 'xfa/fxfa/parser/cxfa_layoutprocessor.cpp')
-rw-r--r-- | xfa/fxfa/parser/cxfa_layoutprocessor.cpp | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp b/xfa/fxfa/parser/cxfa_layoutprocessor.cpp index ad1c2a936a..ea1064a4bc 100644 --- a/xfa/fxfa/parser/cxfa_layoutprocessor.cpp +++ b/xfa/fxfa/parser/cxfa_layoutprocessor.cpp @@ -6,6 +6,7 @@ #include "xfa/fxfa/parser/cxfa_layoutprocessor.h" +#include "third_party/base/ptr_util.h" #include "xfa/fxfa/parser/cxfa_contentlayoutitem.h" #include "xfa/fxfa/parser/cxfa_document.h" #include "xfa/fxfa/parser/cxfa_layoutpagemgr.h" @@ -30,14 +31,10 @@ CXFA_LayoutProcessor* CXFA_Document::GetDocLayout() { CXFA_LayoutProcessor::CXFA_LayoutProcessor(CXFA_Document* pDocument) : m_pDocument(pDocument), - m_pRootItemLayoutProcessor(nullptr), - m_pLayoutPageMgr(nullptr), m_nProgressCounter(0), m_bNeeLayout(true) {} -CXFA_LayoutProcessor::~CXFA_LayoutProcessor() { - ClearLayoutData(); -} +CXFA_LayoutProcessor::~CXFA_LayoutProcessor() {} CXFA_Document* CXFA_LayoutProcessor::GetDocument() const { return m_pDocument; @@ -47,8 +44,7 @@ int32_t CXFA_LayoutProcessor::StartLayout(bool bForceRestart) { if (!bForceRestart && !IsNeedLayout()) return 100; - delete m_pRootItemLayoutProcessor; - m_pRootItemLayoutProcessor = nullptr; + m_pRootItemLayoutProcessor.reset(); m_nProgressCounter = 0; CXFA_Node* pFormPacketNode = ToNode(m_pDocument->GetXFAObject(XFA_HASHCODE_Form)); @@ -59,14 +55,17 @@ int32_t CXFA_LayoutProcessor::StartLayout(bool bForceRestart) { pFormPacketNode->GetFirstChildByClass(XFA_Element::Subform); if (!pFormRoot) return -1; + if (!m_pLayoutPageMgr) - m_pLayoutPageMgr = new CXFA_LayoutPageMgr(this); + m_pLayoutPageMgr = pdfium::MakeUnique<CXFA_LayoutPageMgr>(this); if (!m_pLayoutPageMgr->InitLayoutPage(pFormRoot)) return -1; + if (!m_pLayoutPageMgr->PrepareFirstPage(pFormRoot)) return -1; - m_pRootItemLayoutProcessor = - new CXFA_ItemLayoutProcessor(pFormRoot, m_pLayoutPageMgr); + + m_pRootItemLayoutProcessor = pdfium::MakeUnique<CXFA_ItemLayoutProcessor>( + pFormRoot, m_pLayoutPageMgr.get()); m_nProgressCounter = 1; return 0; } @@ -150,14 +149,6 @@ CXFA_ContainerLayoutItem* CXFA_LayoutProcessor::GetRootLayoutItem() const { return m_pLayoutPageMgr ? m_pLayoutPageMgr->GetRootLayoutItem() : nullptr; } -void CXFA_LayoutProcessor::ClearLayoutData() { - delete m_pLayoutPageMgr; - m_pLayoutPageMgr = nullptr; - delete m_pRootItemLayoutProcessor; - m_pRootItemLayoutProcessor = nullptr; - m_nProgressCounter = 0; -} - bool CXFA_LayoutProcessor::IsNeedLayout() { return m_bNeeLayout || m_rgChangedContainers.GetSize() > 0; } |