diff options
58 files changed, 163 insertions, 217 deletions
diff --git a/chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx b/chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx index e709a0f397af..fa253a6830e3 100644 --- a/chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx +++ b/chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx @@ -295,7 +295,7 @@ void GraphicPropertyItemConverter::FillSpecialItem( std::unique_ptr<XLineDashItem> pItemToPut = aItem.checkForUniqueItem( & m_rDrawModel ); if(pItemToPut) - rOutItemSet.Put( *pItemToPut ); + rOutItemSet.Put( std::move(pItemToPut) ); else rOutItemSet.Put(aItem); } @@ -321,7 +321,7 @@ void GraphicPropertyItemConverter::FillSpecialItem( std::unique_ptr<XFillGradientItem> pItemToPut = aItem.checkForUniqueItem( & m_rDrawModel ); if(pItemToPut) - rOutItemSet.Put( *pItemToPut ); + rOutItemSet.Put(std::move(pItemToPut) ); else rOutItemSet.Put(aItem); } @@ -347,7 +347,7 @@ void GraphicPropertyItemConverter::FillSpecialItem( std::unique_ptr<XFillHatchItem> pItemToPut = aItem.checkForUniqueItem( & m_rDrawModel ); if(pItemToPut) - rOutItemSet.Put( *pItemToPut ); + rOutItemSet.Put( std::move(pItemToPut) ); else rOutItemSet.Put(aItem); } @@ -368,7 +368,7 @@ void GraphicPropertyItemConverter::FillSpecialItem( std::unique_ptr<XFillBitmapItem> pItemToPut = aItem.checkForUniqueItem( & m_rDrawModel ); if(pItemToPut) - rOutItemSet.Put( *pItemToPut ); + rOutItemSet.Put( std::move(pItemToPut) ); else rOutItemSet.Put(aItem); } diff --git a/chart2/source/controller/itemsetwrapper/ItemConverter.cxx b/chart2/source/controller/itemsetwrapper/ItemConverter.cxx index 6fd5ac749a1f..c0f7f0da3276 100644 --- a/chart2/source/controller/itemsetwrapper/ItemConverter.cxx +++ b/chart2/source/controller/itemsetwrapper/ItemConverter.cxx @@ -107,7 +107,7 @@ void ItemConverter::FillItemSet( SfxItemSet & rOutItemSet ) const )) { pItem->SetWhich(nWhich); - rOutItemSet.Put( *pItem ); + rOutItemSet.Put( std::move(pItem) ); } } catch( const beans::UnknownPropertyException &ex ) diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx index 79ebf3644b14..6b8dac450be5 100644 --- a/cui/source/options/treeopt.cxx +++ b/cui/source/options/treeopt.cxx @@ -1191,8 +1191,7 @@ std::unique_ptr<SfxItemSet> OfaTreeOptionsDialog::CreateItemSet( sal_uInt16 nId pRet->Put(aHyphen); if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_AUTOSPELL_CHECK, pItem)) { - std::unique_ptr<SfxPoolItem> pClone(pItem->Clone()); - pRet->Put(*pClone); + pRet->Put(std::unique_ptr<SfxPoolItem>(pItem->Clone())); } else { diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx index 208d50f0cf55..a0449ef7379c 100644 --- a/cui/source/tabpages/border.cxx +++ b/cui/source/tabpages/border.cxx @@ -900,7 +900,7 @@ bool SvxBorderTabPage::FillItemSet( SfxItemSet* rCoreAttrs ) { std::unique_ptr<SfxBoolItem> xNewItem(static_cast<SfxBoolItem*>(rCoreAttrs->Get(nMergeAdjacentBordersId).Clone())); xNewItem->SetValue(static_cast<bool>(nState)); - rCoreAttrs->Put(*xNewItem); + rCoreAttrs->Put(std::move(xNewItem)); } bAttrsChanged = true; } @@ -915,7 +915,7 @@ bool SvxBorderTabPage::FillItemSet( SfxItemSet* rCoreAttrs ) { std::unique_ptr<SfxBoolItem> xNewItem(static_cast<SfxBoolItem*>(rCoreAttrs->Get(nMergeWithNextId).Clone())); xNewItem->SetValue(static_cast<bool>(nState)); - rCoreAttrs->Put(*xNewItem); + rCoreAttrs->Put(std::move(xNewItem)); } bAttrsChanged = true; } diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx index e3c3b704efd9..a5e7269c224c 100644 --- a/cui/source/tabpages/page.cxx +++ b/cui/source/tabpages/page.cxx @@ -765,7 +765,7 @@ bool SvxPageDescPage::FillItemSet( SfxItemSet* rSet ) std::unique_ptr<SfxBoolItem> pRegItem(static_cast<SfxBoolItem*>(rRegItem.Clone())); bool bCheck = m_xRegisterCB->get_active(); pRegItem->SetValue(bCheck); - rSet->Put(*pRegItem); + rSet->Put(std::move(pRegItem)); bModified = true; if(bCheck) { diff --git a/cui/source/tabpages/paragrph.cxx b/cui/source/tabpages/paragrph.cxx index 6c8cf7293f26..9c9bca1963c8 100644 --- a/cui/source/tabpages/paragrph.cxx +++ b/cui/source/tabpages/paragrph.cxx @@ -2238,7 +2238,7 @@ bool SvxAsianTabPage::FillItemSet( SfxItemSet* rSet ) std::unique_ptr<SfxBoolItem> pNewItem(static_cast<SfxBoolItem*>(rSet->Get( pPool->GetWhich(SID_ATTR_PARA_SCRIPTSPACE)).Clone())); pNewItem->SetValue(m_xScriptSpaceCB->get_active()); - rSet->Put(*pNewItem); + rSet->Put(std::move(pNewItem)); bRet = true; } if (m_xHangingPunctCB->get_sensitive() && m_xHangingPunctCB->get_state_changed_from_saved()) @@ -2246,7 +2246,7 @@ bool SvxAsianTabPage::FillItemSet( SfxItemSet* rSet ) std::unique_ptr<SfxBoolItem> pNewItem(static_cast<SfxBoolItem*>(rSet->Get( pPool->GetWhich(SID_ATTR_PARA_HANGPUNCTUATION)).Clone())); pNewItem->SetValue(m_xHangingPunctCB->get_active()); - rSet->Put(*pNewItem); + rSet->Put(std::move(pNewItem)); bRet = true; } if (m_xForbiddenRulesCB->get_sensitive() && m_xForbiddenRulesCB->get_state_changed_from_saved()) @@ -2254,7 +2254,7 @@ bool SvxAsianTabPage::FillItemSet( SfxItemSet* rSet ) std::unique_ptr<SfxBoolItem> pNewItem(static_cast<SfxBoolItem*>(rSet->Get( pPool->GetWhich(SID_ATTR_PARA_FORBIDDEN_RULES)).Clone())); pNewItem->SetValue(m_xForbiddenRulesCB->get_active()); - rSet->Put(*pNewItem); + rSet->Put(std::move(pNewItem)); bRet = true; } return bRet; diff --git a/dbaccess/source/ui/misc/propertystorage.cxx b/dbaccess/source/ui/misc/propertystorage.cxx index 31204469db17..c3c504994236 100644 --- a/dbaccess/source/ui/misc/propertystorage.cxx +++ b/dbaccess/source/ui/misc/propertystorage.cxx @@ -60,7 +60,7 @@ namespace dbaui std::unique_ptr< ITEMTYPE > pClone( pCloneItem); assert(pClone.get()); pClone->SetValue( aValue ); - _rSet.Put( *pClone ); + _rSet.Put( std::move(pClone) ); return true; } diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx index ef5964c822f5..c416f61125c9 100644 --- a/editeng/source/editeng/editdoc.cxx +++ b/editeng/source/editeng/editdoc.cxx @@ -901,12 +901,11 @@ void ConvertAndPutItems( SfxItemSet& rDest, const SfxItemSet& rSource, const Map std::unique_ptr<SfxPoolItem> pItem(rSource.Get( nSourceWhich ).Clone()); ConvertItem( pItem, eSourceUnit, eDestUnit ); pItem->SetWhich(nWhich); - rDest.Put( *pItem ); + rDest.Put( std::move(pItem) ); } else { - std::unique_ptr<SfxPoolItem> pNewItem(rSource.Get( nSourceWhich ).CloneSetWhich(nWhich)); - rDest.Put( *pNewItem ); + rDest.Put( rSource.Get( nSourceWhich ).CloneSetWhich(nWhich) ); } } } diff --git a/editeng/source/editeng/editview.cxx b/editeng/source/editeng/editview.cxx index 0e2dcfd55751..75624ea527d5 100644 --- a/editeng/source/editeng/editview.cxx +++ b/editeng/source/editeng/editview.cxx @@ -1378,8 +1378,7 @@ bool EditView::ChangeFontSize( bool bGrow, SfxItemSet& rSet, const FontList* pFo if( nHeight != static_cast<long>(aFontHeightItem.GetHeight()) ) { aFontHeightItem.SetHeight( nHeight ); - std::unique_ptr<SfxPoolItem> pNewItem(aFontHeightItem.CloneSetWhich(*pWhich)); - rSet.Put( *pNewItem ); + rSet.Put( aFontHeightItem.CloneSetWhich(*pWhich) ); bRet = true; } } diff --git a/forms/source/richtext/richtextimplcontrol.cxx b/forms/source/richtext/richtextimplcontrol.cxx index 50f240aeae93..fb63c82bfc39 100644 --- a/forms/source/richtext/richtextimplcontrol.cxx +++ b/forms/source/richtext/richtextimplcontrol.cxx @@ -228,9 +228,7 @@ namespace frm WhichId nNormalizedWhichId = _rScriptSetItem.GetItemSet().GetPool()->GetWhich( _rScriptSetItem.Which() ); if ( pNormalizedItem ) { - std::unique_ptr<SfxPoolItem> pProperWhich(pNormalizedItem->Clone()); - pProperWhich->SetWhich( nNormalizedWhichId ); - _rScriptSetItem.GetItemSet().Put( *pProperWhich ); + _rScriptSetItem.GetItemSet().Put( pNormalizedItem->CloneSetWhich(nNormalizedWhichId) ); } else _rScriptSetItem.GetItemSet().InvalidateItem( nNormalizedWhichId ); diff --git a/forms/source/richtext/rtattributehandler.cxx b/forms/source/richtext/rtattributehandler.cxx index 7c2845e9b34f..1f17b32c3396 100644 --- a/forms/source/richtext/rtattributehandler.cxx +++ b/forms/source/richtext/rtattributehandler.cxx @@ -291,13 +291,12 @@ namespace frm { if ( _pAdditionalArg ) { - std::unique_ptr<SfxPoolItem> pCorrectWich(_pAdditionalArg->Clone()); - pCorrectWich->SetWhich( getWhich() ); + std::unique_ptr<SfxPoolItem> pCorrectWich(_pAdditionalArg->CloneSetWhich(getWhich())); if ( m_bScriptDependent ) putItemForScript( _rNewAttribs, *pCorrectWich, _nForScriptType ); else - _rNewAttribs.Put( *pCorrectWich ); + _rNewAttribs.Put( std::move(pCorrectWich) ); } else OSL_FAIL( "SlotHandler::executeAttribute: need attributes to do something!" ); @@ -433,9 +432,7 @@ namespace frm OSL_ENSURE( dynamic_cast<const SfxBoolItem*>( _pAdditionalArg) != nullptr, "BooleanHandler::executeAttribute: invalid argument!" ); if ( _pAdditionalArg ) { - std::unique_ptr<SfxPoolItem> pCorrectWich(_pAdditionalArg->Clone()); - pCorrectWich->SetWhich( getWhich() ); - _rNewAttribs.Put( *pCorrectWich ); + _rNewAttribs.Put( _pAdditionalArg->CloneSetWhich(getWhich()) ); } } diff --git a/include/svl/itempool.hxx b/include/svl/itempool.hxx index 3a2ff084d723..4c9052df0a13 100644 --- a/include/svl/itempool.hxx +++ b/include/svl/itempool.hxx @@ -57,6 +57,8 @@ protected: class SVL_DLLPUBLIC SfxItemPool { friend struct SfxItemPool_Impl; + friend class SfxItemSet; + friend class SfxAllItemSet; const SfxItemInfo* pItemInfos; std::unique_ptr<SfxItemPool_Impl> pImpl; diff --git a/include/svl/itemset.hxx b/include/svl/itemset.hxx index 88aecf5b6e06..9892855657d1 100644 --- a/include/svl/itemset.hxx +++ b/include/svl/itemset.hxx @@ -106,6 +106,8 @@ protected: void PutDirect(const SfxPoolItem &rItem); + virtual const SfxPoolItem* PutImpl( const SfxPoolItem&, sal_uInt16 nWhich, bool bPassingOwnership ); + public: struct Pair { sal_uInt16 wid1, wid2; }; @@ -191,9 +193,14 @@ public: // add, delete items, work on items public: - virtual const SfxPoolItem* Put( const SfxPoolItem&, sal_uInt16 nWhich ); + const SfxPoolItem* Put( const SfxPoolItem& rItem, sal_uInt16 nWhich ) + { return PutImpl(rItem, nWhich, /*bPassingOwnership*/false); } + const SfxPoolItem* Put( std::unique_ptr<SfxPoolItem> xItem, sal_uInt16 nWhich ) + { return PutImpl(*xItem.release(), nWhich, /*bPassingOwnership*/true); } const SfxPoolItem* Put( const SfxPoolItem& rItem ) { return Put(rItem, rItem.Which()); } + const SfxPoolItem* Put( std::unique_ptr<SfxPoolItem> xItem ) + { auto nWhich = xItem->Which(); return Put(std::move(xItem), nWhich); } bool Put( const SfxItemSet&, bool bInvalidAsDefault = true ); void PutExtended( const SfxItemSet&, @@ -249,8 +256,8 @@ public: SfxAllItemSet( const SfxAllItemSet & ); virtual std::unique_ptr<SfxItemSet> Clone( bool bItems = true, SfxItemPool *pToPool = nullptr ) const override; - virtual const SfxPoolItem* Put( const SfxPoolItem&, sal_uInt16 nWhich ) override; - using SfxItemSet::Put; +protected: + virtual const SfxPoolItem* PutImpl( const SfxPoolItem&, sal_uInt16 nWhich, bool bPassingOwnership ) override; }; #endif // INCLUDED_SVL_ITEMSET_HXX diff --git a/reportdesign/source/ui/misc/UITools.cxx b/reportdesign/source/ui/misc/UITools.cxx index 395cb6c32452..220e913b2d09 100644 --- a/reportdesign/source/ui/misc/UITools.cxx +++ b/reportdesign/source/ui/misc/UITools.cxx @@ -272,10 +272,9 @@ namespace const SfxPoolItem* pItem = _rItemSet.GetItem(rProp.nWID); if ( pItem ) { - ::std::unique_ptr<SfxPoolItem> pClone(pItem->Clone()); + ::std::unique_ptr<SfxPoolItem> pClone(pItem->CloneSetWhich(rProp.nWID)); pClone->PutValue(_xShape->getPropertyValue(rProp.sName), rProp.nMemberId); - pClone->SetWhich(rProp.nWID); - _rItemSet.Put(*pClone); + _rItemSet.Put(std::move(pClone)); } } } diff --git a/sc/source/filter/excel/xlroot.cxx b/sc/source/filter/excel/xlroot.cxx index c1044e216115..977f848061d6 100644 --- a/sc/source/filter/excel/xlroot.cxx +++ b/sc/source/filter/excel/xlroot.cxx @@ -388,12 +388,9 @@ ScHeaderEditEngine& XclRoot::GetHFEditEngine() const SfxItemSet aItemSet( *GetDoc().GetPool(), svl::Items<ATTR_PATTERN_START, ATTR_PATTERN_END>{} ); ScPatternAttr::FillToEditItemSet( *pEditSet, aItemSet ); // FillToEditItemSet() adjusts font height to 1/100th mm, we need twips - std::unique_ptr<SfxPoolItem> pNewItem( aItemSet.Get( ATTR_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT)); - pEditSet->Put( *pNewItem ); - pNewItem = aItemSet.Get( ATTR_CJK_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK); - pEditSet->Put( *pNewItem ); - pNewItem = aItemSet.Get( ATTR_CTL_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL); - pEditSet->Put( *pNewItem ); + pEditSet->Put( aItemSet.Get( ATTR_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT) ); + pEditSet->Put( aItemSet.Get( ATTR_CJK_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK) ); + pEditSet->Put( aItemSet.Get( ATTR_CTL_FONT_HEIGHT ).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL) ); rEE.SetDefaults( pEditSet ); // takes ownership } return *mrData.mxHFEditEngine; diff --git a/sc/source/filter/ftools/ftools.cxx b/sc/source/filter/ftools/ftools.cxx index 8f9eaed44279..c34c446ea482 100644 --- a/sc/source/filter/ftools/ftools.cxx +++ b/sc/source/filter/ftools/ftools.cxx @@ -211,8 +211,7 @@ void ScfTools::PutItem( SfxItemSet& rItemSet, const SfxPoolItem& rItem, sal_uInt { if( !bSkipPoolDef || (rItem != rItemSet.GetPool()->GetDefaultItem( nWhichId )) ) { - std::unique_ptr<SfxPoolItem> pNewItem(rItem.CloneSetWhich(nWhichId)); - rItemSet.Put( *pNewItem ); + rItemSet.Put( rItem.CloneSetWhich(nWhichId) ); } } diff --git a/sc/source/filter/rtf/eeimpars.cxx b/sc/source/filter/rtf/eeimpars.cxx index 3f3710326292..f6f27d1b061c 100644 --- a/sc/source/filter/rtf/eeimpars.cxx +++ b/sc/source/filter/rtf/eeimpars.cxx @@ -271,27 +271,23 @@ void ScEEImport::WriteToDocument( bool bSizeColsRows, double nOutputFactor, SvNu { if ( pFont ) { - std::unique_ptr<SfxPoolItem> pNewItem(pFont->CloneSetWhich( - ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT ))); - pAttrItemSet->Put( *pNewItem ); + pAttrItemSet->Put( pFont->CloneSetWhich( + ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT )) ); } if ( pHeight ) { - std::unique_ptr<SfxPoolItem> pNewItem(pHeight->CloneSetWhich( - ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_HEIGHT ))); - pAttrItemSet->Put( *pNewItem ); + pAttrItemSet->Put( pHeight->CloneSetWhich( + ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_HEIGHT )) ); } if ( pWeight ) { - std::unique_ptr<SfxPoolItem> pNewItem(pWeight->CloneSetWhich( - ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_WEIGHT ))); - pAttrItemSet->Put( *pNewItem ); + pAttrItemSet->Put( pWeight->CloneSetWhich( + ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_WEIGHT )) ); } if ( pPosture ) { - std::unique_ptr<SfxPoolItem> pNewItem(pPosture->CloneSetWhich( - ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_POSTURE ))); - pAttrItemSet->Put( *pNewItem ); + pAttrItemSet->Put( pPosture->CloneSetWhich( + ScGlobal::GetScriptedWhichID(nScript, ATTR_FONT_POSTURE )) ); } } } diff --git a/sc/source/ui/Accessibility/AccessibleText.cxx b/sc/source/ui/Accessibility/AccessibleText.cxx index 0e6d2dfb8320..acacc91ba421 100644 --- a/sc/source/ui/Accessibility/AccessibleText.cxx +++ b/sc/source/ui/Accessibility/AccessibleText.cxx @@ -1132,12 +1132,9 @@ SvxTextForwarder* ScAccessibleHeaderTextData::GetTextForwarder() rPattern.FillEditItemSet( &aDefaults ); // FillEditItemSet adjusts font height to 1/100th mm, // but for header/footer twips is needed, as in the PatternAttr: - std::unique_ptr<SfxPoolItem> pNewItem(rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT)); - aDefaults.Put( *pNewItem ); - pNewItem = rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK); - aDefaults.Put( *pNewItem ); - pNewItem = rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL); - aDefaults.Put( *pNewItem ); + aDefaults.Put( rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT) ); + aDefaults.Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK) ); + aDefaults.Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL) ); aDefaults.Put( SvxAdjustItem( meAdjust, EE_PARA_JUST ) ); pHdrEngine->SetDefaults( aDefaults ); diff --git a/sc/source/ui/pagedlg/tphfedit.cxx b/sc/source/ui/pagedlg/tphfedit.cxx index 583394658f74..8f647e26e579 100644 --- a/sc/source/ui/pagedlg/tphfedit.cxx +++ b/sc/source/ui/pagedlg/tphfedit.cxx @@ -182,12 +182,9 @@ void ScEditWindow::SetFont( const ScPatternAttr& rPattern ) rPattern.FillEditItemSet( pSet ); // FillEditItemSet adjusts font height to 1/100th mm, // but for header/footer twips is needed, as in the PatternAttr: - std::unique_ptr<SfxPoolItem> pNewItem(rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT)); - pSet->Put( *pNewItem ); - pNewItem = rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK); - pSet->Put( *pNewItem ); - pNewItem = rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL); - pSet->Put( *pNewItem ); + pSet->Put( rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT) ); + pSet->Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK) ); + pSet->Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL) ); if (mbRTL) pSet->Put( SvxAdjustItem( SvxAdjust::Right, EE_PARA_JUST ) ); pEdEngine->SetDefaults( pSet ); diff --git a/sc/source/ui/unoobj/textuno.cxx b/sc/source/ui/unoobj/textuno.cxx index f034e1a8f915..5fad23d0df1a 100644 --- a/sc/source/ui/unoobj/textuno.cxx +++ b/sc/source/ui/unoobj/textuno.cxx @@ -219,12 +219,9 @@ SvxTextForwarder* ScHeaderFooterTextData::GetTextForwarder() rPattern.FillEditItemSet( &aDefaults ); // FillEditItemSet adjusts font height to 1/100th mm, // but for header/footer twips is needed, as in the PatternAttr: - std::unique_ptr<SfxPoolItem> pNewItem( rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT) ); - aDefaults.Put( *pNewItem ); - pNewItem = rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK); - aDefaults.Put( *pNewItem ); - pNewItem = rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL); - aDefaults.Put( *pNewItem ); + aDefaults.Put( rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT) ); + aDefaults.Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK) ) ; + aDefaults.Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL) ); pHdrEngine->SetDefaults( aDefaults ); ScHeaderFieldData aData; diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx index 0f085f50e913..03fb29f44555 100644 --- a/sc/source/ui/view/formatsh.cxx +++ b/sc/source/ui/view/formatsh.cxx @@ -2210,8 +2210,7 @@ void ScFormatShell::GetAttrState( SfxItemSet& rSet ) break; case SID_ATTR_BRUSH: { - std::unique_ptr<SfxPoolItem> pNewItem(rBrushItem.CloneSetWhich(GetPool().GetWhich(nWhich))); - rSet.Put( *pNewItem ); + rSet.Put( rBrushItem.CloneSetWhich(GetPool().GetWhich(nWhich)) ); } break; case SID_SCATTR_CELLPROTECTION: diff --git a/sc/source/ui/view/printfun.cxx b/sc/source/ui/view/printfun.cxx index ca7b8a8e919a..25e9f7e10d73 100644 --- a/sc/source/ui/view/printfun.cxx +++ b/sc/source/ui/view/printfun.cxx @@ -1729,12 +1729,9 @@ void ScPrintFunc::MakeEditEngine() rPattern.FillEditItemSet( pEditDefaults.get() ); // FillEditItemSet adjusts font height to 1/100th mm, // but for header/footer twips is needed, as in the PatternAttr: - std::unique_ptr<SfxPoolItem> pNewItem(rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT)); - pEditDefaults->Put( *pNewItem ); - pNewItem = rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK); - pEditDefaults->Put( *pNewItem ); - pNewItem = rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL); - pEditDefaults->Put( *pNewItem ); + pEditDefaults->Put( rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT) ); + pEditDefaults->Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK) ); + pEditDefaults->Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL) ); // don't use font color, because background color is not used //! there's no way to set the background for note pages pEditDefaults->ClearItem( EE_CHAR_COLOR ); diff --git a/sc/source/ui/view/viewutil.cxx b/sc/source/ui/view/viewutil.cxx index 1cfa805b985c..9eb5ea31ee44 100644 --- a/sc/source/ui/view/viewutil.cxx +++ b/sc/source/ui/view/viewutil.cxx @@ -64,8 +64,7 @@ void ScViewUtil::PutItemScript( SfxItemSet& rShellSet, const SfxItemSet& rCoreSe const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScript ); if (pI) { - std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhichId)); - rShellSet.Put( *pNewItem ); + rShellSet.Put( pI->CloneSetWhich(nWhichId) ); } else rShellSet.InvalidateItem( nWhichId ); diff --git a/sd/source/ui/dlg/dlgolbul.cxx b/sd/source/ui/dlg/dlgolbul.cxx index 1d71948dcc4d..a019f5da544f 100644 --- a/sd/source/ui/dlg/dlgolbul.cxx +++ b/sd/source/ui/dlg/dlgolbul.cxx @@ -96,8 +96,7 @@ OutlineBulletDlg::OutlineBulletDlg(weld::Window* pParent, const SfxItemSet* pAtt DBG_ASSERT( pItem, "No EE_PARA_NUMBULLET in Pool! [CL]" ); - std::unique_ptr<SfxPoolItem> pNewItem(pItem->CloneSetWhich(EE_PARA_NUMBULLET)); - m_aInputSet.Put(*pNewItem); + m_aInputSet.Put(pItem->CloneSetWhich(EE_PARA_NUMBULLET)); } if (m_bTitle && m_aInputSet.GetItemState(EE_PARA_NUMBULLET) == SfxItemState::SET ) diff --git a/sd/source/ui/func/fuolbull.cxx b/sd/source/ui/func/fuolbull.cxx index 72262c7235f7..6680ebfc4761 100644 --- a/sd/source/ui/func/fuolbull.cxx +++ b/sd/source/ui/func/fuolbull.cxx @@ -335,8 +335,7 @@ const SfxPoolItem* FuOutlineBullet::GetNumBulletItem(SfxItemSet& aNewAttr, sal_u //DBG_ASSERT( pItem, "No EE_PARA_NUMBULLET in the Pool!" ); - std::unique_ptr<SfxPoolItem> pNewItem(pItem->CloneSetWhich(EE_PARA_NUMBULLET)); - aNewAttr.Put(*pNewItem); + aNewAttr.Put(pItem->CloneSetWhich(EE_PARA_NUMBULLET)); if(bTitle && aNewAttr.GetItemState(EE_PARA_NUMBULLET) == SfxItemState::SET ) { diff --git a/sd/source/ui/func/futempl.cxx b/sd/source/ui/func/futempl.cxx index b30f17008e41..5d918ddbd193 100644 --- a/sd/source/ui/func/futempl.cxx +++ b/sd/source/ui/func/futempl.cxx @@ -436,7 +436,7 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) std::unique_ptr<SfxPoolItem> pNewItem = static_cast<const XFillBitmapItem*>(pOldItem)->checkForUniqueItem( mpDoc ); if( pNewItem ) { - rAttr.Put( *pNewItem ); + rAttr.Put( std::move(pNewItem) ); } } if( rAttr.GetItemState( XATTR_LINEDASH ) == SfxItemState::SET ) @@ -445,7 +445,7 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) std::unique_ptr<SfxPoolItem> pNewItem = static_cast<const XLineDashItem*>(pOldItem)->checkForUniqueItem( mpDoc ); if( pNewItem ) { - rAttr.Put( *pNewItem ); + rAttr.Put( std::move(pNewItem) ); } } if( rAttr.GetItemState( XATTR_LINESTART ) == SfxItemState::SET ) @@ -454,7 +454,7 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) std::unique_ptr<SfxPoolItem> pNewItem = static_cast<const XLineStartItem*>(pOldItem)->checkForUniqueItem( mpDoc ); if( pNewItem ) { - rAttr.Put( *pNewItem ); + rAttr.Put( std::move(pNewItem) ); } } if( rAttr.GetItemState( XATTR_LINEEND ) == SfxItemState::SET ) @@ -463,7 +463,7 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) std::unique_ptr<SfxPoolItem> pNewItem = static_cast<const XLineEndItem*>(pOldItem)->checkForUniqueItem( mpDoc ); if( pNewItem ) { - rAttr.Put( *pNewItem ); + rAttr.Put( std::move(pNewItem) ); } } if( rAttr.GetItemState( XATTR_FILLGRADIENT ) == SfxItemState::SET ) @@ -472,7 +472,7 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) std::unique_ptr<SfxPoolItem> pNewItem = static_cast<const XFillGradientItem*>(pOldItem)->checkForUniqueItem( mpDoc ); if( pNewItem ) { - rAttr.Put( *pNewItem ); + rAttr.Put( std::move(pNewItem) ); } } if( rAttr.GetItemState( XATTR_FILLFLOATTRANSPARENCE ) == SfxItemState::SET ) @@ -481,7 +481,7 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) std::unique_ptr<SfxPoolItem> pNewItem = static_cast<const XFillFloatTransparenceItem*>(pOldItem)->checkForUniqueItem( mpDoc ); if( pNewItem ) { - rAttr.Put( *pNewItem ); + rAttr.Put( std::move(pNewItem) ); } } if( rAttr.GetItemState( XATTR_FILLHATCH ) == SfxItemState::SET ) @@ -490,7 +490,7 @@ void FuTemplate::DoExecute( SfxRequest& rReq ) std::unique_ptr<SfxPoolItem> pNewItem = static_cast<const XFillHatchItem*>(pOldItem)->checkForUniqueItem( mpDoc ); if( pNewItem ) { - rAttr.Put( *pNewItem ); + rAttr.Put( std::move(pNewItem) ); } } diff --git a/sd/source/ui/view/drtxtob.cxx b/sd/source/ui/view/drtxtob.cxx index a5694b2c5af3..bf4deae1094a 100644 --- a/sd/source/ui/view/drtxtob.cxx +++ b/sd/source/ui/view/drtxtob.cxx @@ -224,8 +224,7 @@ void TextObjectBar::GetAttrState( SfxItemSet& rSet ) } else { - std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhich)); - aAttrSet.Put( *pNewItem ); + aAttrSet.Put( pI->CloneSetWhich(nWhich) ); } } else diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx index 7f6e58798ac3..85ab5688c609 100644 --- a/sd/source/ui/view/outlnvsh.cxx +++ b/sd/source/ui/view/outlnvsh.cxx @@ -1268,7 +1268,7 @@ void OutlineViewShell::GetStatusBarState(SfxItemSet& rSet) nZoomValues &= ~SvxZoomEnableFlags::PAGEWIDTH; pZoomItem->SetValueSet( nZoomValues ); - rSet.Put( *pZoomItem ); + rSet.Put( std::move(pZoomItem) ); } if( SfxItemState::DEFAULT == rSet.GetItemState( SID_ATTR_ZOOMSLIDER ) ) diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx index 75fcbc469c32..09b321866f2e 100644 --- a/sd/source/ui/view/viewshel.cxx +++ b/sd/source/ui/view/viewshel.cxx @@ -893,8 +893,7 @@ const SfxPoolItem* ViewShell::GetNumBulletItem(SfxItemSet& aNewAttr, sal_uInt16& if( pItem == nullptr ) pItem = aNewAttr.GetPool()->GetSecondaryPool()->GetPoolDefaultItem(EE_PARA_NUMBULLET); - std::unique_ptr<SfxPoolItem> pNewItem(pItem->CloneSetWhich(EE_PARA_NUMBULLET)); - aNewAttr.Put(*pNewItem); + aNewAttr.Put(pItem->CloneSetWhich(EE_PARA_NUMBULLET)); if(bTitle && aNewAttr.GetItemState(EE_PARA_NUMBULLET) == SfxItemState::SET ) { diff --git a/svl/source/items/itemset.cxx b/svl/source/items/itemset.cxx index c18e0405667f..bed2259d40ea 100644 --- a/svl/source/items/itemset.cxx +++ b/svl/source/items/itemset.cxx @@ -443,10 +443,13 @@ bool SfxItemSet::HasItem(sal_uInt16 nWhich, const SfxPoolItem** ppItem) const return bRet; } -const SfxPoolItem* SfxItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich ) +const SfxPoolItem* SfxItemSet::PutImpl( const SfxPoolItem& rItem, sal_uInt16 nWhich, bool bPassingOwnership ) { if ( !nWhich ) + { + assert(!bPassingOwnership); return nullptr; //FIXME: Only because of Outliner bug + } SfxPoolItem const** ppFnd = m_pItems.get(); const sal_uInt16* pPtr = m_pWhichRanges; @@ -460,13 +463,16 @@ const SfxPoolItem* SfxItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich { // Same Item already present? if ( *ppFnd == &rItem ) + { + assert(!bPassingOwnership); return nullptr; + } // Will 'dontcare' or 'disabled' be overwritten with some real value? if ( rItem.Which() && ( IsInvalidItem(*ppFnd) || !(*ppFnd)->Which() ) ) { auto const old = *ppFnd; - *ppFnd = &m_pPool->Put( rItem, nWhich ); + *ppFnd = &m_pPool->PutImpl( rItem, nWhich, bPassingOwnership ); if (!IsInvalidItem(old)) { assert(old->Which() == 0); delete old; @@ -480,16 +486,22 @@ const SfxPoolItem* SfxItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich if (IsInvalidItem(*ppFnd) || (*ppFnd)->Which() != 0) { *ppFnd = rItem.Clone(m_pPool); } + if (bPassingOwnership) + delete &rItem; return nullptr; } else { // Same value already present? if ( rItem == **ppFnd ) + { + if (bPassingOwnership) + delete &rItem; return nullptr; + } // Add the new one, remove the old one - const SfxPoolItem& rNew = m_pPool->Put( rItem, nWhich ); + const SfxPoolItem& rNew = m_pPool->PutImpl( rItem, nWhich, bPassingOwnership ); const SfxPoolItem* pOld = *ppFnd; *ppFnd = &rNew; if (SfxItemPool::IsWhich(nWhich)) @@ -501,9 +513,14 @@ const SfxPoolItem* SfxItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich { ++m_nCount; if( !rItem.Which() ) + { *ppFnd = rItem.Clone(m_pPool); - else { - const SfxPoolItem& rNew = m_pPool->Put( rItem, nWhich ); + if (bPassingOwnership) + delete &rItem; + } + else + { + const SfxPoolItem& rNew = m_pPool->PutImpl( rItem, nWhich, bPassingOwnership ); *ppFnd = &rNew; if (SfxItemPool::IsWhich(nWhich)) { @@ -514,7 +531,7 @@ const SfxPoolItem* SfxItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich } } } - SAL_WARN_IF(m_pPool->IsItemPoolable(nWhich) && + SAL_WARN_IF(!bPassingOwnership && m_pPool->IsItemPoolable(nWhich) && dynamic_cast<const SfxSetItem*>( &rItem ) == nullptr && **ppFnd != rItem, "svl.items", "putted Item unequal, with ID/pos " << nWhich ); @@ -523,6 +540,8 @@ const SfxPoolItem* SfxItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich ppFnd += *(pPtr+1) - *pPtr + 1; pPtr += 2; } + if (bPassingOwnership) + delete &rItem; return nullptr; } @@ -1582,7 +1601,7 @@ static void AddItem_Impl(std::unique_ptr<SfxPoolItem const*[]> & rpItems, sal_uI /** * Putting with automatic extension of the WhichId with the ID of the Item. */ -const SfxPoolItem* SfxAllItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich ) +const SfxPoolItem* SfxAllItemSet::PutImpl( const SfxPoolItem& rItem, sal_uInt16 nWhich, bool bPassingOwnership ) { sal_uInt16 nPos = 0; // Position for 'rItem' in 'm_pItems' const sal_uInt16 nItemCount = TotalCount(); @@ -1668,7 +1687,7 @@ const SfxPoolItem* SfxAllItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhi } // Add new Item to Pool - const SfxPoolItem& rNew = m_pPool->Put( rItem, nWhich ); + const SfxPoolItem& rNew = m_pPool->PutImpl( rItem, nWhich, bPassingOwnership ); // Remember old Item bool bIncrementCount = false; diff --git a/svl/source/items/poolcach.cxx b/svl/source/items/poolcach.cxx index 01f238caa3fb..05401669216c 100644 --- a/svl/source/items/poolcach.cxx +++ b/svl/source/items/poolcach.cxx @@ -88,9 +88,7 @@ const SfxSetItem& SfxItemPoolCache::ApplyTo( const SfxSetItem &rOrigItem ) } else pNewItem->GetItemSet().Put( *pSetToPut ); - const SfxSetItem* pNewPoolItem = &pPool->Put( *pNewItem ); - DBG_ASSERT( pNewPoolItem != pNewItem.get(), "Pool: same in and out?" ); - pNewItem.reset(); + const SfxSetItem* pNewPoolItem = &pPool->Put( std::move(pNewItem) ); // Adapt refcount; one each for the cache pNewPoolItem->AddRef( pNewPoolItem != &rOrigItem ? 2 : 1 ); diff --git a/svx/source/dialog/hdft.cxx b/svx/source/dialog/hdft.cxx index 099db34674bc..5f5081c9be39 100644 --- a/svx/source/dialog/hdft.cxx +++ b/svx/source/dialog/hdft.cxx @@ -249,7 +249,7 @@ bool SvxHFPage::FillItemSet( SfxItemSet* rSet ) { std::unique_ptr<SfxBoolItem> pBoolItem(static_cast<SfxBoolItem*>(pPool->GetDefaultItem(nWDynSpacing).Clone())); pBoolItem->SetValue(m_xDynSpacingCB->get_active()); - aSet.Put(*pBoolItem); + aSet.Put(std::move(pBoolItem)); } // Size diff --git a/svx/source/sdr/properties/itemsettools.cxx b/svx/source/sdr/properties/itemsettools.cxx index 63b0ca75acda..a47e22dcd091 100644 --- a/svx/source/sdr/properties/itemsettools.cxx +++ b/svx/source/sdr/properties/itemsettools.cxx @@ -84,7 +84,7 @@ namespace sdr { std::unique_ptr<SfxPoolItem> pNewItem(pItem->Clone()); pNewItem->ScaleMetrics(nMul, nDiv); - rSet.Put(*pNewItem); + rSet.Put(std::move(pNewItem)); } } nWhich = aIter.NextWhich(); diff --git a/sw/source/core/doc/DocumentStylePoolManager.cxx b/sw/source/core/doc/DocumentStylePoolManager.cxx index a7a0a68850f5..8b4c1ba85393 100644 --- a/sw/source/core/doc/DocumentStylePoolManager.cxx +++ b/sw/source/core/doc/DocumentStylePoolManager.cxx @@ -1317,9 +1317,9 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId, aLR.SetLeft( GetMetricVal( CM_1 )); aLR.SetRight( GetMetricVal( CM_1 )); aSet.Put( aLR ); - std::shared_ptr<SvxULSpaceItem> aUL(static_cast<SvxULSpaceItem*>(pNewColl->GetULSpace().Clone())); + std::unique_ptr<SvxULSpaceItem> aUL(static_cast<SvxULSpaceItem*>(pNewColl->GetULSpace().Clone())); aUL->SetLower( HTML_PARSPACE ); - aSet.Put(*aUL); + aSet.Put(std::move(aUL)); } break; @@ -1332,9 +1332,9 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId, // The lower paragraph distance is set explicitly (makes // assigning hard attributes easier) - std::shared_ptr<SvxULSpaceItem> aULSpaceItem(static_cast<SvxULSpaceItem*>(pNewColl->GetULSpace().Clone())); + std::unique_ptr<SvxULSpaceItem> aULSpaceItem(static_cast<SvxULSpaceItem*>(pNewColl->GetULSpace().Clone())); aULSpaceItem->SetLower( 0 ); - aSet.Put(*aULSpaceItem); + aSet.Put(std::move(aULSpaceItem)); } break; @@ -1349,13 +1349,13 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId, aSet.Put( SwParaConnectBorderItem( false ) ); SetAllScriptItem( aSet, SvxFontHeightItem(120, 100, RES_CHRATR_FONTSIZE) ); - std::shared_ptr<SvxULSpaceItem> aUL; + std::unique_ptr<SvxULSpaceItem> aUL; { pNewColl->SetNextTextFormatColl( *GetTextCollFromPool( RES_POOLCOLL_TEXT )); aUL.reset(static_cast<SvxULSpaceItem*>(pNewColl->GetULSpace().Clone())); } aUL->SetLower( HTML_PARSPACE ); - aSet.Put(*aUL); + aSet.Put(std::move(aUL)); SwFormatLineNumber aLN; aLN.SetCountLines( false ); aSet.Put( aLN ); @@ -1364,22 +1364,22 @@ SwTextFormatColl* DocumentStylePoolManager::GetTextCollFromPool( sal_uInt16 nId, case RES_POOLCOLL_HTML_DD: { - std::shared_ptr<SvxLRSpaceItem> aLR(static_cast<SvxLRSpaceItem*>(pNewColl->GetLRSpace().Clone())); + std::unique_ptr<SvxLRSpaceItem> aLR(static_cast<SvxLRSpaceItem*>(pNewColl->GetLRSpace().Clone())); // We indent by 1 cm. The IDs are always 2 away from each other! aLR->SetLeft( GetMetricVal( CM_1 )); - aSet.Put(*aLR); + aSet.Put(std::move(aLR)); } break; case RES_POOLCOLL_HTML_DT: { - std::shared_ptr<SvxLRSpaceItem> aLR; + std::unique_ptr<SvxLRSpaceItem> aLR; { pNewColl->SetNextTextFormatColl( *GetTextCollFromPool( RES_POOLCOLL_HTML_DD )); aLR.reset(static_cast<SvxLRSpaceItem*>(pNewColl->GetLRSpace().Clone())); } // We indent by 0 cm. The IDs are always 2 away from each other! aLR->SetLeft( 0 ); - aSet.Put( *aLR ); + aSet.Put( std::move(aLR) ); } break; } diff --git a/sw/source/core/doc/doclay.cxx b/sw/source/core/doc/doclay.cxx index cad5209f32a2..4d8775fa3514 100644 --- a/sw/source/core/doc/doclay.cxx +++ b/sw/source/core/doc/doclay.cxx @@ -785,9 +785,9 @@ lcl_InsertLabel(SwDoc & rDoc, SwTextFormatColls *const pTextFormatCollTable, pNewSet->Put( pOldFormat->GetAnchor() ); // The new one should be changeable in its height. - std::shared_ptr<SwFormatFrameSize> aFrameSize(static_cast<SwFormatFrameSize*>(pOldFormat->GetFrameSize().Clone())); + std::unique_ptr<SwFormatFrameSize> aFrameSize(static_cast<SwFormatFrameSize*>(pOldFormat->GetFrameSize().Clone())); aFrameSize->SetHeightSizeType( ATT_MIN_SIZE ); - pNewSet->Put( *aFrameSize ); + pNewSet->Put( std::move(aFrameSize) ); SwStartNode* pSttNd = rDoc.GetNodes().MakeTextSection( SwNodeIndex( rDoc.GetNodes().GetEndOfAutotext() ), @@ -849,7 +849,7 @@ lcl_InsertLabel(SwDoc & rDoc, SwTextFormatColls *const pTextFormatCollTable, } aFrameSize->SetWidthPercent(isMath ? 0 : 100); aFrameSize->SetHeightPercent(SwFormatFrameSize::SYNCED); - pNewSet->Put( *aFrameSize ); + pNewSet->Put( std::move(aFrameSize) ); // Hard-set the attributes, because they could come from the Template // and then size calculations could not be correct anymore. diff --git a/sw/source/core/doc/poolfmt.cxx b/sw/source/core/doc/poolfmt.cxx index 0db28109528b..2f1f20d89175 100644 --- a/sw/source/core/doc/poolfmt.cxx +++ b/sw/source/core/doc/poolfmt.cxx @@ -103,15 +103,9 @@ void SetAllScriptItem( SfxItemSet& rSet, const SfxPoolItem& rItem ) } if( nWhCJK ) - { - std::unique_ptr<SfxPoolItem> pNewItem(rItem.CloneSetWhich(nWhCJK)); - rSet.Put( *pNewItem ); - } + rSet.Put( rItem.CloneSetWhich(nWhCJK) ); if( nWhCTL ) - { - std::unique_ptr<SfxPoolItem> pNewItem(rItem.CloneSetWhich(nWhCTL)); - rSet.Put( *pNewItem ); - } + rSet.Put( rItem.CloneSetWhich(nWhCTL) ); } /// Return the AutoCollection by its Id. If it doesn't diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx index 430b32422382..e9331971edc0 100644 --- a/sw/source/core/doc/tblafmt.cxx +++ b/sw/source/core/doc/tblafmt.cxx @@ -548,12 +548,9 @@ void SwTableAutoFormat::UpdateToSet(sal_uInt8 nPos, SfxItemSet& rSet, } else { - std::unique_ptr<SfxPoolItem> pNewItem(rChg.GetHeight().CloneSetWhich(RES_CHRATR_CJK_FONTSIZE)); - rSet.Put( *pNewItem); - pNewItem = rChg.GetWeight().CloneSetWhich(RES_CHRATR_CJK_WEIGHT); - rSet.Put( *pNewItem); - pNewItem = rChg.GetPosture().CloneSetWhich(RES_CHRATR_CJK_POSTURE); - rSet.Put( *pNewItem); + rSet.Put( rChg.GetHeight().CloneSetWhich(RES_CHRATR_CJK_FONTSIZE) ); + rSet.Put( rChg.GetWeight().CloneSetWhich(RES_CHRATR_CJK_WEIGHT) ); + rSet.Put( rChg.GetPosture().CloneSetWhich(RES_CHRATR_CJK_POSTURE) ); } // do not insert empty CTL font const SvxFontItem& rCTLFont = rChg.GetCTLFont(); @@ -566,12 +563,9 @@ void SwTableAutoFormat::UpdateToSet(sal_uInt8 nPos, SfxItemSet& rSet, } else { - std::unique_ptr<SfxPoolItem> pNewItem(rChg.GetHeight().CloneSetWhich(RES_CHRATR_CTL_FONTSIZE)); - rSet.Put( *pNewItem); - pNewItem = rChg.GetWeight().CloneSetWhich(RES_CHRATR_CTL_WEIGHT); - rSet.Put( *pNewItem); - pNewItem = rChg.GetPosture().CloneSetWhich(RES_CHRATR_CTL_POSTURE); - rSet.Put( *pNewItem); + rSet.Put( rChg.GetHeight().CloneSetWhich(RES_CHRATR_CTL_FONTSIZE) ); + rSet.Put( rChg.GetWeight().CloneSetWhich(RES_CHRATR_CTL_WEIGHT) ); + rSet.Put( rChg.GetPosture().CloneSetWhich(RES_CHRATR_CTL_POSTURE) ); } rSet.Put( rChg.GetUnderline() ); rSet.Put( rChg.GetOverline() ); diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index 61749c7d77e9..b86b2f52d9f2 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -4187,7 +4187,7 @@ void SwDoc::ClearLineNumAttrs( SwPosition const & rPos ) pUndo->AddNode( *pTextNode ); std::unique_ptr<SfxStringItem> pNewItem(static_cast<SfxStringItem*>(pFormatItem->Clone())); pNewItem->SetValue(OUString()); - rSet.Put( *pNewItem ); + rSet.Put( std::move(pNewItem) ); pTextNode->SetAttr( rSet ); } } diff --git a/sw/source/core/tox/ToxTextGenerator.cxx b/sw/source/core/tox/ToxTextGenerator.cxx index 7c29f0e7c979..ee51d5b9a219 100644 --- a/sw/source/core/tox/ToxTextGenerator.cxx +++ b/sw/source/core/tox/ToxTextGenerator.cxx @@ -291,9 +291,9 @@ ToxTextGenerator::CollectAttributesForTox(const SwTextAttr& hint, SwAttrPool& po if (pItem->Which() == RES_CHRATR_ESCAPEMENT || pItem->Which() == RES_CHRATR_POSTURE || pItem->Which() == RES_CHRATR_CJK_POSTURE || - pItem->Which() == RES_CHRATR_CTL_POSTURE) { - std::unique_ptr<SfxPoolItem> clonedItem(pItem->Clone()); - retval->Put(*clonedItem); + pItem->Which() == RES_CHRATR_CTL_POSTURE) + { + retval->Put(std::unique_ptr<SfxPoolItem>(pItem->Clone())); } if (aIter.IsAtEnd()) { break; diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index 99358c62f5ab..25e1edcf37d5 100644 --- a/sw/source/core/unocore/unoframe.cxx +++ b/sw/source/core/unocore/unoframe.cxx @@ -1118,7 +1118,7 @@ bool SwGraphicProperties_Impl::AnyToItemSet( { std::unique_ptr<SfxPoolItem> pItem(::GetDfltAttr( nIDs[nIndex] )->Clone()); bRet &= pItem->PutValue(*pAny, nMId ); - rGrSet.Put(*pItem); + rGrSet.Put(std::move(pItem)); } } diff --git a/sw/source/core/unocore/unostyle.cxx b/sw/source/core/unocore/unostyle.cxx index 56f991b53364..f73337bbd2f4 100644 --- a/sw/source/core/unocore/unostyle.cxx +++ b/sw/source/core/unocore/unostyle.cxx @@ -3004,10 +3004,10 @@ void SwXPageStyle::SetPropertyValues_Impl(const uno::Sequence<OUString>& rProper case FN_PARAM_FTN_INFO: { const SfxPoolItem& rItem = aBaseImpl.GetItemSet().Get(FN_PARAM_FTN_INFO); - const std::unique_ptr<SfxPoolItem> pNewFootnoteItem(rItem.Clone()); + std::unique_ptr<SfxPoolItem> pNewFootnoteItem(rItem.Clone()); if(!pNewFootnoteItem->PutValue(rValues[nProp], pEntry->nMemberId)) throw lang::IllegalArgumentException(); - aBaseImpl.GetItemSet().Put(*pNewFootnoteItem); + aBaseImpl.GetItemSet().Put(std::move(pNewFootnoteItem)); break; } default: diff --git a/sw/source/filter/basflt/fltini.cxx b/sw/source/filter/basflt/fltini.cxx index 3b6ce6e54469..847930fc84a1 100644 --- a/sw/source/filter/basflt/fltini.cxx +++ b/sw/source/filter/basflt/fltini.cxx @@ -404,9 +404,9 @@ void CalculateFlySize(SfxItemSet& rFlySet, const SwNodeIndex& rAnchor, } else if( MINFLY > static_cast<const SwFormatFrameSize*>(pItem)->GetHeight() ) { - std::shared_ptr<SwFormatFrameSize> aSz(static_cast<SwFormatFrameSize*>(pItem->Clone())); + std::unique_ptr<SwFormatFrameSize> aSz(static_cast<SwFormatFrameSize*>(pItem->Clone())); aSz->SetHeight( MINFLY ); - rFlySet.Put( *aSz ); + rFlySet.Put( std::move(aSz) ); } } diff --git a/sw/source/filter/html/htmldrawreader.cxx b/sw/source/filter/html/htmldrawreader.cxx index cfaa9ece5011..7dbabfafd73e 100644 --- a/sw/source/filter/html/htmldrawreader.cxx +++ b/sw/source/filter/html/htmldrawreader.cxx @@ -238,11 +238,7 @@ static void PutEEPoolItem( SfxItemSet &rEEItemSet, } if( nEEWhich ) - { - std::unique_ptr<SfxPoolItem> pEEItem(rSwItem.Clone()); - pEEItem->SetWhich( nEEWhich ); - rEEItemSet.Put( *pEEItem ); - } + rEEItemSet.Put( rSwItem.CloneSetWhich(nEEWhich) ); } void SwHTMLParser::NewMarquee( HTMLTable *pCurTable ) diff --git a/sw/source/filter/html/htmldrawwriter.cxx b/sw/source/filter/html/htmldrawwriter.cxx index 15615ad29698..7666f9f2ca17 100644 --- a/sw/source/filter/html/htmldrawwriter.cxx +++ b/sw/source/filter/html/htmldrawwriter.cxx @@ -114,9 +114,7 @@ void SwHTMLWriter::GetEEAttrsFromDrwObj( SfxItemSet& rItemSet, pEEItem = &rObjItemSet.GetPool()->GetDefaultItem(nEEWhich); // now we clone the item with the which id of the writer - std::unique_ptr<SfxPoolItem> pSwItem(pEEItem->Clone()); - pSwItem->SetWhich( nSwWhich ); - rItemSet.Put( *pSwItem ); + rItemSet.Put( pEEItem->CloneSetWhich(nSwWhich) ); } nEEWhich = aIter.NextWhich(); diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index d08796457530..5ea8e4a5a7db 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -468,8 +468,7 @@ void SwWW8AttrIter::OutAttr( sal_Int32 nSwPos, bool bWriteCombChars) { if (const SfxGrabBagItem *pCharFmtGrabBag = aExportSet.GetItem<SfxGrabBagItem>(RES_CHRATR_GRABBAG, false)) { - std::unique_ptr<SfxPoolItem> pNewItem(pCharFmtGrabBag->Clone()); - SfxGrabBagItem* pNewCharFmtGrabBag = dynamic_cast<SfxGrabBagItem*>(pNewItem.get()); + std::unique_ptr<SfxGrabBagItem> pNewCharFmtGrabBag(static_cast<SfxGrabBagItem*>(pCharFmtGrabBag->Clone())); assert(pNewCharFmtGrabBag); auto & rNewFmtMap = pNewCharFmtGrabBag->GetGrabBag(); for (auto const & item : pAutoFmtGrabBag->GetGrabBag()) @@ -477,7 +476,7 @@ void SwWW8AttrIter::OutAttr( sal_Int32 nSwPos, bool bWriteCombChars) if (item.second.hasValue()) rNewFmtMap.erase(item.first); } - aExportSet.Put(*pNewCharFmtGrabBag); + aExportSet.Put(std::move(pNewCharFmtGrabBag)); } } diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx index 551376439e05..f798db5f25cd 100644 --- a/sw/source/filter/ww8/ww8graf.cxx +++ b/sw/source/filter/ww8/ww8graf.cxx @@ -521,9 +521,7 @@ void SwWW8ImplReader::InsertTxbxStyAttrs( SfxItemSet& rS, sal_uInt16 nColl ) ( SfxItemState::SET != rS.GetItemState(nWhich, false) ) ) { - std::unique_ptr<SfxPoolItem> pCopy(pItem->Clone()); - pCopy->SetWhich( nWhich ); - rS.Put( *pCopy ); + rS.Put( pItem->CloneSetWhich(nWhich) ); } } } @@ -735,9 +733,7 @@ void SwWW8ImplReader::InsertAttrsAsDrawingAttrs(WW8_CP nStartCp, WW8_CP nEndCp, nWhich != nSlotId ) { - std::unique_ptr<SfxPoolItem> pCopy(pItem->Clone()); - pCopy->SetWhich( nWhich ); - pS->Put( *pCopy ); + pS->Put( pItem->CloneSetWhich(nWhich) ); } } } diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx index bcb276246418..e98fc1b5b4b6 100644 --- a/sw/source/filter/ww8/ww8par6.cxx +++ b/sw/source/filter/ww8/ww8par6.cxx @@ -3617,7 +3617,7 @@ void SwWW8ImplReader::Read_UnderlineColor(sal_uInt16, const sal_uInt8* pData, sh { std::unique_ptr<SvxUnderlineItem> pUnderline(static_cast<SvxUnderlineItem*>(m_xCurrentItemSet->Get(RES_CHRATR_UNDERLINE, false).Clone())); pUnderline->SetColor( msfilter::util::BGRToRGB(SVBT32ToUInt32(pData)) ); - m_xCurrentItemSet->Put( *pUnderline ); + m_xCurrentItemSet->Put( std::move(pUnderline) ); } } } diff --git a/sw/source/filter/xml/xmlitemi.cxx b/sw/source/filter/xml/xmlitemi.cxx index 68e7ca2f47d7..b14f28bc7534 100644 --- a/sw/source/filter/xml/xmlitemi.cxx +++ b/sw/source/filter/xml/xmlitemi.cxx @@ -220,7 +220,7 @@ void SwXMLImportTableItemMapper_Impl::finished( *pNewItem, m_FoMarginValue, Ids[i][1], rUnitConverter); if (bPut) { - rSet.Put(*pNewItem); + rSet.Put(std::move(pNewItem)); } } else diff --git a/sw/source/ui/chrdlg/numpara.cxx b/sw/source/ui/chrdlg/numpara.cxx index 65209b1a1658..09a5e3c3f5a9 100644 --- a/sw/source/ui/chrdlg/numpara.cxx +++ b/sw/source/ui/chrdlg/numpara.cxx @@ -113,7 +113,7 @@ bool SwParagraphNumTabPage::FillItemSet( SfxItemSet* rSet ) { std::unique_ptr<SfxUInt16Item> pOutlineLv(static_cast<SfxUInt16Item*>(pOldOutlineLv->Clone())); pOutlineLv->SetValue( aOutlineLv ); - rSet->Put(*pOutlineLv); + rSet->Put(std::move(pOutlineLv)); bModified = true; } } @@ -128,7 +128,7 @@ bool SwParagraphNumTabPage::FillItemSet( SfxItemSet* rSet ) { std::unique_ptr<SfxStringItem> pRule(static_cast<SfxStringItem*>(pOldRule->Clone())); pRule->SetValue(aStyle); - rSet->Put(*pRule); + rSet->Put(std::move(pRule)); bModified = true; } } diff --git a/sw/source/uibase/app/appopt.cxx b/sw/source/uibase/app/appopt.cxx index 9a0b995679a7..3e9613639f44 100644 --- a/sw/source/uibase/app/appopt.cxx +++ b/sw/source/uibase/app/appopt.cxx @@ -133,15 +133,9 @@ std::unique_ptr<SfxItemSet> SwModule::CreateItemSet( sal_uInt16 nId ) pRet->Put(SwPtrItem(FN_PARAM_PRINTER, pPrt)); pRet->Put(SwPtrItem(FN_PARAM_WRTSHELL, &rWrtShell)); - std::unique_ptr<SfxPoolItem> pNewItem( - rWrtShell.GetDefault(RES_CHRATR_LANGUAGE).CloneSetWhich(SID_ATTR_LANGUAGE) ); - pRet->Put(*pNewItem); - - pNewItem = rWrtShell.GetDefault(RES_CHRATR_CJK_LANGUAGE).CloneSetWhich(SID_ATTR_CHAR_CJK_LANGUAGE); - pRet->Put(*pNewItem); - - pNewItem = rWrtShell.GetDefault(RES_CHRATR_CTL_LANGUAGE).CloneSetWhich(SID_ATTR_CHAR_CTL_LANGUAGE); - pRet->Put(*pNewItem); + pRet->Put(rWrtShell.GetDefault(RES_CHRATR_LANGUAGE).CloneSetWhich(SID_ATTR_LANGUAGE)); + pRet->Put(rWrtShell.GetDefault(RES_CHRATR_CJK_LANGUAGE).CloneSetWhich(SID_ATTR_CHAR_CJK_LANGUAGE)); + pRet->Put(rWrtShell.GetDefault(RES_CHRATR_CTL_LANGUAGE).CloneSetWhich(SID_ATTR_CHAR_CTL_LANGUAGE)); } else { diff --git a/sw/source/uibase/shells/annotsh.cxx b/sw/source/uibase/shells/annotsh.cxx index b1d0054dec3d..f8bf88323182 100644 --- a/sw/source/uibase/shells/annotsh.cxx +++ b/sw/source/uibase/shells/annotsh.cxx @@ -598,8 +598,7 @@ void SwAnnotationShell::Exec( SfxRequest &rReq ) if(nEEWhich && pNewAttrs) { - std::unique_ptr<SfxPoolItem> pNewItem(pNewAttrs->Get(nWhich).CloneSetWhich(nEEWhich)); - aNewAttr.Put(*pNewItem); + aNewAttr.Put(pNewAttrs->Get(nWhich).CloneSetWhich(nEEWhich)); } tools::Rectangle aOutRect = pOLV->GetOutputArea(); @@ -709,8 +708,7 @@ void SwAnnotationShell::GetState(SfxItemSet& rSet) const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScriptType ); if( pI ) { - std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhich)); - rSet.Put( *pNewItem ); + rSet.Put(pI->CloneSetWhich(nWhich)); } else rSet.InvalidateItem( nWhich ); @@ -860,8 +858,7 @@ void SwAnnotationShell::GetState(SfxItemSet& rSet) if(nEEWhich) { - std::unique_ptr<SfxPoolItem> pNewItem(aEditAttr.Get(nEEWhich).CloneSetWhich(nWhich)); - rSet.Put(*pNewItem); + rSet.Put(aEditAttr.Get(nEEWhich).CloneSetWhich(nWhich)); if(nEEWhich == EE_CHAR_KERNING) { SfxItemState eState = aEditAttr.GetItemState( EE_CHAR_KERNING ); diff --git a/sw/source/uibase/shells/basesh.cxx b/sw/source/uibase/shells/basesh.cxx index 0a3a735fdd02..96e4c0145703 100644 --- a/sw/source/uibase/shells/basesh.cxx +++ b/sw/source/uibase/shells/basesh.cxx @@ -2158,8 +2158,7 @@ void SwBaseShell::GetTextFontCtrlState( SfxItemSet& rSet ) const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScriptType ); if( pI ) { - std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhich)); - rSet.Put( *pNewItem ); + rSet.Put( pI->CloneSetWhich(nWhich) ); } else rSet.InvalidateItem( nWhich ); diff --git a/sw/source/uibase/shells/drwtxtex.cxx b/sw/source/uibase/shells/drwtxtex.cxx index 6043349c54b9..82950e37743e 100644 --- a/sw/source/uibase/shells/drwtxtex.cxx +++ b/sw/source/uibase/shells/drwtxtex.cxx @@ -568,8 +568,7 @@ void SwDrawTextShell::Execute( SfxRequest &rReq ) } if(nEEWhich && pNewAttrs) { - std::unique_ptr<SfxPoolItem> pNewItem(pNewAttrs->Get(nWhich).CloneSetWhich(nEEWhich)); - aNewAttr.Put(*pNewItem); + aNewAttr.Put(pNewAttrs->Get(nWhich).CloneSetWhich(nEEWhich)); } SetAttrToMarked(aNewAttr); @@ -911,8 +910,7 @@ void SwDrawTextShell::GetDrawTextCtrlState(SfxItemSet& rSet) const SfxPoolItem* pI = aSetItem.GetItemOfScript( nScriptType ); if( pI ) { - std::unique_ptr<SfxPoolItem> pNewItem(pI->CloneSetWhich(nWhich)); - rSet.Put( *pNewItem ); + rSet.Put(pI->CloneSetWhich(nWhich)); } else rSet.InvalidateItem( nWhich ); @@ -964,8 +962,7 @@ void SwDrawTextShell::GetDrawTextCtrlState(SfxItemSet& rSet) } if(nEEWhich) { - std::unique_ptr<SfxPoolItem> pNewItem(aEditAttr.Get(nEEWhich).CloneSetWhich(nWhich)); - rSet.Put(*pNewItem); + rSet.Put(aEditAttr.Get(nEEWhich).CloneSetWhich(nWhich)); } nWhich = aIter.NextWhich(); diff --git a/sw/source/uibase/shells/tabsh.cxx b/sw/source/uibase/shells/tabsh.cxx index ef892924fc27..b9a424e0d2af 100644 --- a/sw/source/uibase/shells/tabsh.cxx +++ b/sw/source/uibase/shells/tabsh.cxx @@ -206,10 +206,7 @@ static SwTableRep* lcl_TableParamToItemSet( SfxItemSet& rSet, SwWrtShell &rSh ) //row split std::unique_ptr<SwFormatRowSplit> pSplit = rSh.GetRowSplit(); if(pSplit) - { - rSet.Put(*pSplit); - pSplit.reset(); - } + rSet.Put(std::move(pSplit)); if(!bTableSel) { @@ -1372,7 +1369,7 @@ void SwTableShell::GetState(SfxItemSet &rSet) { std::unique_ptr<SwFormatRowSplit> pSplit = rSh.GetRowSplit(); if(pSplit) - rSet.Put(*pSplit); + rSet.Put(std::move(pSplit)); else rSet.InvalidateItem( nSlot ); } diff --git a/sw/source/uibase/shells/textsh1.cxx b/sw/source/uibase/shells/textsh1.cxx index 8cc0036bf338..657bf72df900 100644 --- a/sw/source/uibase/shells/textsh1.cxx +++ b/sw/source/uibase/shells/textsh1.cxx @@ -1589,8 +1589,7 @@ void SwTextShell::GetState( SfxItemSet &rSet ) SfxItemSet aSet( GetPool() ); rSh.GetCurAttr( aSet ); const SvxColorItem& aColorItem = aSet.Get(RES_CHRATR_COLOR); - std::unique_ptr<SfxPoolItem> pNewItem(aColorItem.CloneSetWhich(SID_ATTR_CHAR_COLOR2)); - rSet.Put( *pNewItem ); + rSet.Put( aColorItem.CloneSetWhich(SID_ATTR_CHAR_COLOR2) ); } break; case SID_ATTR_CHAR_COLOR_BACKGROUND: diff --git a/sw/source/uibase/uiview/formatclipboard.cxx b/sw/source/uibase/uiview/formatclipboard.cxx index f8f95205dbf6..9fab132e6c1d 100644 --- a/sw/source/uibase/uiview/formatclipboard.cxx +++ b/sw/source/uibase/uiview/formatclipboard.cxx @@ -140,7 +140,7 @@ void lcl_getTableAttributes( SfxItemSet& rSet, SwWrtShell &rSh ) std::unique_ptr<SwFormatRowSplit> pSplit = rSh.GetRowSplit(); if(pSplit) - rSet.Put(*pSplit); + rSet.Put(std::move(pSplit)); } void lcl_setTableAttributes( const SfxItemSet& rSet, SwWrtShell &rSh ) diff --git a/sw/source/uibase/uiview/viewstat.cxx b/sw/source/uibase/uiview/viewstat.cxx index bc771162bea2..fe6c882e9db7 100644 --- a/sw/source/uibase/uiview/viewstat.cxx +++ b/sw/source/uibase/uiview/viewstat.cxx @@ -255,23 +255,19 @@ void SwView::GetState(SfxItemSet &rSet) break; case SID_ATTR_LANGUAGE: { - std::unique_ptr<SfxPoolItem> pNewItem( - m_pWrtShell->GetDefault(RES_CHRATR_LANGUAGE).CloneSetWhich(SID_ATTR_LANGUAGE)); - rSet.Put(*pNewItem); + rSet.Put(m_pWrtShell->GetDefault(RES_CHRATR_LANGUAGE).CloneSetWhich(SID_ATTR_LANGUAGE)); } break; case RES_CHRATR_CJK_LANGUAGE: { - std::unique_ptr<SfxPoolItem> pNewItem( - m_pWrtShell->GetDefault(RES_CHRATR_CJK_LANGUAGE).CloneSetWhich(RES_CHRATR_CJK_LANGUAGE)); - rSet.Put(*pNewItem); + rSet.Put(m_pWrtShell->GetDefault(RES_CHRATR_CJK_LANGUAGE) + .CloneSetWhich(RES_CHRATR_CJK_LANGUAGE)); } break; case RES_CHRATR_CTL_LANGUAGE: { - std::unique_ptr<SfxPoolItem> pNewItem( - m_pWrtShell->GetDefault(RES_CHRATR_CTL_LANGUAGE).CloneSetWhich(RES_CHRATR_CTL_LANGUAGE)); - rSet.Put(*pNewItem); + rSet.Put(m_pWrtShell->GetDefault(RES_CHRATR_CTL_LANGUAGE) + .CloneSetWhich(RES_CHRATR_CTL_LANGUAGE)); } break; case FN_REDLINE_ON: @@ -479,8 +475,7 @@ void SwView::GetState(SfxItemSet &rSet) { if (!(m_nSelectionType & SelectionType::DrawObject)) { - std::unique_ptr<SfxPoolItem> pNewItem(pState->CloneSetWhich(nWhich)); - rSet.Put(*pNewItem); + rSet.Put(pState->CloneSetWhich(nWhich)); } } else diff --git a/sw/source/uibase/utlui/uitool.cxx b/sw/source/uibase/utlui/uitool.cxx index c44434b25961..17e1a92eac34 100644 --- a/sw/source/uibase/utlui/uitool.cxx +++ b/sw/source/uibase/utlui/uitool.cxx @@ -149,7 +149,7 @@ void ConvertAttrCharToGen(SfxItemSet& rSet) else pGrabBag.reset(new SfxGrabBagItem(RES_CHRATR_GRABBAG)); pGrabBag->GetGrabBag()["DialogUseCharAttr"] <<= true; - rSet.Put(*pGrabBag); + rSet.Put(std::move(pGrabBag)); } void ConvertAttrGenToChar(SfxItemSet& rSet, const SfxItemSet& rOrigSet) |