summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2022-08-12 09:33:10 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-08-12 21:31:34 +0200
commit02821cc81449b0807ab3478a2c91335c8471f481 (patch)
treebb349e7605cf4390d3b380a4a87162207625251a
parentda2bd0555f07b0d040b8220cd9e6560a70664735 (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.cxx20
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() )