diff options
author | Michael Stahl <mstahl@redhat.com> | 2018-02-14 14:37:16 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2018-02-15 15:57:48 +0100 |
commit | 21c3a446ccc6fa0f812531b072f5d18875b7aaca (patch) | |
tree | bbe760d2017a859d2cfd54e1f40633ee1c7e1441 | |
parent | 9a62dcf333b2e9b470d5aa1b5c2ddaae6732ad32 (diff) |
sw: replace DELETEZ with unique_ptr in SwUndoSplitNode
Change-Id: Iaac10057c7be6f49bc5930725dffa7884c35d814
-rw-r--r-- | sw/source/core/inc/UndoSplitMove.hxx | 2 | ||||
-rw-r--r-- | sw/source/core/undo/unspnd.cxx | 24 |
2 files changed, 15 insertions, 11 deletions
diff --git a/sw/source/core/inc/UndoSplitMove.hxx b/sw/source/core/inc/UndoSplitMove.hxx index 9119248bb5f5..d4a86dea4cbc 100644 --- a/sw/source/core/inc/UndoSplitMove.hxx +++ b/sw/source/core/inc/UndoSplitMove.hxx @@ -24,7 +24,7 @@ class SwUndoSplitNode: public SwUndo { - SwHistory* pHistory; + std::unique_ptr<SwHistory> m_pHistory; SwRedlineData* pRedlData; sal_uLong nNode; sal_Int32 nContent; diff --git a/sw/source/core/undo/unspnd.cxx b/sw/source/core/undo/unspnd.cxx index 0b388491ef86..2253c3df5124 100644 --- a/sw/source/core/undo/unspnd.cxx +++ b/sw/source/core/undo/unspnd.cxx @@ -37,7 +37,7 @@ SwUndoSplitNode::SwUndoSplitNode( SwDoc* pDoc, const SwPosition& rPos, bool bChkTable ) - : SwUndo( SwUndoId::SPLITNODE, pDoc ), pHistory( nullptr ), pRedlData( nullptr ), nNode( rPos.nNode.GetIndex() ), + : SwUndo( SwUndoId::SPLITNODE, pDoc ), pRedlData( nullptr ), nNode( rPos.nNode.GetIndex() ), nContent( rPos.nContent.GetIndex() ), bTableFlag( false ), bChkTableStt( bChkTable ) { @@ -45,11 +45,13 @@ SwUndoSplitNode::SwUndoSplitNode( SwDoc* pDoc, const SwPosition& rPos, OSL_ENSURE( pTextNd, "only for TextNode" ); if( pTextNd->GetpSwpHints() ) { - pHistory = new SwHistory; - pHistory->CopyAttr( pTextNd->GetpSwpHints(), nNode, 0, + m_pHistory.reset(new SwHistory); + m_pHistory->CopyAttr(pTextNd->GetpSwpHints(), nNode, 0, pTextNd->GetText().getLength(), false ); - if( !pHistory->Count() ) - DELETEZ( pHistory ); + if (!m_pHistory->Count()) + { + m_pHistory.reset(); + } } // consider Redline if( pDoc->getIDocumentRedlineAccess().IsRedlineOn() ) @@ -63,7 +65,7 @@ SwUndoSplitNode::SwUndoSplitNode( SwDoc* pDoc, const SwPosition& rPos, SwUndoSplitNode::~SwUndoSplitNode() { - delete pHistory; + m_pHistory.reset(); delete pRedlData; } @@ -126,14 +128,14 @@ void SwUndoSplitNode::UndoImpl(::sw::UndoRedoContext & rContext) RemoveIdxRel( nNode+1, *rPam.GetPoint() ); pTNd->JoinNext(); - if( pHistory ) + if (m_pHistory) { rPam.GetPoint()->nContent = 0; rPam.SetMark(); rPam.GetPoint()->nContent = pTNd->GetText().getLength(); pDoc->RstTextAttrs( rPam, true ); - pHistory->TmpRollback( pDoc, 0, false ); + m_pHistory->TmpRollback( pDoc, 0, false ); } pDoc->UpdateParRsid( pTNd, nParRsid ); @@ -159,8 +161,10 @@ void SwUndoSplitNode::RedoImpl(::sw::UndoRedoContext & rContext) SwDoc* pDoc = rPam.GetDoc(); pDoc->getIDocumentContentOperations().SplitNode( *rPam.GetPoint(), bChkTableStt ); - if( pHistory ) - pHistory->SetTmpEnd( pHistory->Count() ); + if (m_pHistory) + { + m_pHistory->SetTmpEnd(m_pHistory->Count()); + } if( ( pRedlData && IDocumentRedlineAccess::IsRedlineOn( GetRedlineFlags() )) || ( !( RedlineFlags::Ignore & GetRedlineFlags() ) && |