diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-08-12 09:33:10 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-08-12 21:31:34 +0200 |
commit | 02821cc81449b0807ab3478a2c91335c8471f481 (patch) | |
tree | bb349e7605cf4390d3b380a4a87162207625251a | |
parent | da2bd0555f07b0d040b8220cd9e6560a70664735 (diff) |
can store this SwAttrSet on the stack
Change-Id: I9e091c0fbbf75b899962db9d71138dc306c4b90a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138175
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | sw/source/core/txtnode/ndtxt.cxx | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx index bab4ace59de8..2433ef710fde 100644 --- a/sw/source/core/txtnode/ndtxt.cxx +++ b/sw/source/core/txtnode/ndtxt.cxx @@ -2941,29 +2941,29 @@ SwTextNode* SwTextNode::MakeNewTextNode( const SwNodeIndex& rPos, bool bNext, bool bChgFollow ) { // ignore hard PageBreak/PageDesc/ColumnBreak from Auto-Set - std::unique_ptr<SwAttrSet> pNewAttrSet; + std::optional<SwAttrSet> oNewAttrSet; // #i75353# bool bClearHardSetNumRuleWhenFormatCollChanges( false ); if( HasSwAttrSet() ) { - pNewAttrSet.reset(new SwAttrSet( *GetpSwAttrSet() )); + oNewAttrSet.emplace( *GetpSwAttrSet() ); const SfxItemSet* pTmpSet = GetpSwAttrSet(); if (bNext) // successor doesn't inherit breaks! - pTmpSet = pNewAttrSet.get(); + pTmpSet = &*oNewAttrSet; // !bNext: remove PageBreaks/PageDesc/ColBreak from this bool bRemoveFromCache = false; std::vector<sal_uInt16> aClearWhichIds; if ( bNext ) - bRemoveFromCache = ( 0 != pNewAttrSet->ClearItem( RES_PAGEDESC ) ); + bRemoveFromCache = ( 0 != oNewAttrSet->ClearItem( RES_PAGEDESC ) ); else aClearWhichIds.push_back( RES_PAGEDESC ); if( SfxItemState::SET == pTmpSet->GetItemState( RES_BREAK, false ) ) { if ( bNext ) - pNewAttrSet->ClearItem( RES_BREAK ); + oNewAttrSet->ClearItem( RES_BREAK ); else aClearWhichIds.push_back( RES_BREAK ); bRemoveFromCache = true; @@ -2971,7 +2971,7 @@ SwTextNode* SwTextNode::MakeNewTextNode( const SwNodeIndex& rPos, bool bNext, if( SfxItemState::SET == pTmpSet->GetItemState( RES_KEEP, false ) ) { if ( bNext ) - pNewAttrSet->ClearItem( RES_KEEP ); + oNewAttrSet->ClearItem( RES_KEEP ); else aClearWhichIds.push_back( RES_KEEP ); bRemoveFromCache = true; @@ -2979,7 +2979,7 @@ SwTextNode* SwTextNode::MakeNewTextNode( const SwNodeIndex& rPos, bool bNext, if( SfxItemState::SET == pTmpSet->GetItemState( RES_PARATR_SPLIT, false ) ) { if ( bNext ) - pNewAttrSet->ClearItem( RES_PARATR_SPLIT ); + oNewAttrSet->ClearItem( RES_PARATR_SPLIT ); else aClearWhichIds.push_back( RES_PARATR_SPLIT ); bRemoveFromCache = true; @@ -2991,7 +2991,7 @@ SwTextNode* SwTextNode::MakeNewTextNode( const SwNodeIndex& rPos, bool bNext, if (pRule && IsOutline()) { if ( bNext ) - pNewAttrSet->ClearItem(RES_PARATR_NUMRULE); + oNewAttrSet->ClearItem(RES_PARATR_NUMRULE); else { // #i75353# @@ -3015,9 +3015,9 @@ SwTextNode* SwTextNode::MakeNewTextNode( const SwNodeIndex& rPos, bool bNext, SwTextFormatColl* pColl = GetTextColl(); - SwTextNode *pNode = new SwTextNode( rPos, pColl, pNewAttrSet.get() ); + SwTextNode *pNode = new SwTextNode( rPos, pColl, oNewAttrSet ? &*oNewAttrSet : nullptr ); - pNewAttrSet.reset(); + oNewAttrSet.reset(); const SwNumRule* pRule = GetNumRule(); if( pRule && pRule == pNode->GetNumRule() && rNds.IsDocNodes() ) |