[Libreoffice-commits] core.git: editeng/source include/svl include/svx sc/inc sc/qa sc/source svl/source svx/source

Stephan Bergmann sbergman at redhat.com
Tue Jun 13 08:46:42 UTC 2017


 editeng/source/items/textitem.cxx |    3 ++-
 include/svl/poolitem.hxx          |    2 +-
 include/svx/pageitem.hxx          |    6 +++++-
 include/svx/xflasit.hxx           |    6 +++++-
 include/svx/xlnasit.hxx           |    5 ++++-
 sc/inc/patattr.hxx                |    4 ++--
 sc/qa/unit/ucalc_formula.cxx      |    3 ++-
 sc/source/core/data/docpool.cxx   |   11 ++++++++---
 sc/source/core/data/document.cxx  |    3 ++-
 sc/source/core/data/patattr.cxx   |   18 ++++++++++--------
 sc/source/ui/docshell/docsh6.cxx  |   11 ++++++-----
 sc/source/ui/view/viewfunc.cxx    |    6 +++---
 svl/source/items/sitem.cxx        |   10 +++++++---
 svx/source/items/pageitem.cxx     |    8 ++++++--
 svx/source/xoutdev/xattr.cxx      |   25 +++++++++++++++----------
 svx/source/xoutdev/xexch.cxx      |    9 ++++++---
 svx/source/xoutdev/xpool.cxx      |   13 +++++++++----
 17 files changed, 93 insertions(+), 50 deletions(-)

New commits:
commit 5389b44827393c80df27e429ba446971a0d7a696
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Jun 13 10:46:16 2017 +0200

    Let SfxSetItem ctor take SfxItemSet by unique_ptr
    
    Change-Id: I219dd03477862169cd50eecc14822f6a023f879a

diff --git a/editeng/source/items/textitem.cxx b/editeng/source/items/textitem.cxx
index 72de8968f410..c6882ca85ca2 100644
--- a/editeng/source/items/textitem.cxx
+++ b/editeng/source/items/textitem.cxx
@@ -20,6 +20,7 @@
 #include <com/sun/star/style/CaseMap.hpp>
 #include <com/sun/star/awt/FontDescriptor.hpp>
 #include <com/sun/star/frame/status/FontHeight.hpp>
+#include <o3tl/make_unique.hxx>
 #include <vcl/bitmapex.hxx>
 #include <tools/stream.hxx>
 #include <math.h>
@@ -3258,7 +3259,7 @@ SfxPoolItem* SvxScriptTypeItem::Clone( SfxItemPool * ) const
 *************************************************************************/
 
 SvxScriptSetItem::SvxScriptSetItem( sal_uInt16 nSlotId, SfxItemPool& rPool )
-    : SfxSetItem( nSlotId, new SfxItemSet( rPool,
+    : SfxSetItem( nSlotId, o3tl::make_unique<SfxItemSet>( rPool,
                         SID_ATTR_CHAR_FONT, SID_ATTR_CHAR_FONT ))
 {
     sal_uInt16 nLatin, nAsian, nComplex;
diff --git a/include/svl/poolitem.hxx b/include/svl/poolitem.hxx
index 2eefbf1f66cf..b2a05b993f4a 100644
--- a/include/svl/poolitem.hxx
+++ b/include/svl/poolitem.hxx
@@ -272,7 +272,7 @@ class SVL_DLLPUBLIC SfxSetItem: public SfxPoolItem
     SfxSetItem & operator=( const SfxSetItem& ) = delete;
 
 public:
-                            SfxSetItem( sal_uInt16 nWhich, SfxItemSet *pSet );
+                            SfxSetItem( sal_uInt16 nWhich, std::unique_ptr<SfxItemSet> &&pSet );
                             SfxSetItem( sal_uInt16 nWhich, const SfxItemSet &rSet );
                             SfxSetItem( const SfxSetItem&, SfxItemPool *pPool = nullptr );
                             virtual ~SfxSetItem() override;
diff --git a/include/svx/pageitem.hxx b/include/svx/pageitem.hxx
index 0a322a6a08d0..80277b7d3d3f 100644
--- a/include/svx/pageitem.hxx
+++ b/include/svx/pageitem.hxx
@@ -19,6 +19,10 @@
 #ifndef INCLUDED_SVX_PAGEITEM_HXX
 #define INCLUDED_SVX_PAGEITEM_HXX
 
+#include <sal/config.h>
+
+#include <memory>
+
 #include <svl/poolitem.hxx>
 #include <svx/svxdllapi.h>
 #include <editeng/svxenum.hxx>
@@ -99,7 +103,7 @@ class SVX_DLLPUBLIC SvxSetItem: public SfxSetItem
 public:
     SvxSetItem( const sal_uInt16 nId, const SfxItemSet& rSet );
     SvxSetItem( const SvxSetItem& rItem );
-    SvxSetItem( const sal_uInt16 nId, SfxItemSet* pSet );
+    SvxSetItem( const sal_uInt16 nId, std::unique_ptr<SfxItemSet>&& pSet );
 
     virtual SfxPoolItem*    Clone( SfxItemPool *pPool = nullptr ) const override;
 
diff --git a/include/svx/xflasit.hxx b/include/svx/xflasit.hxx
index 73ceb0c3f1ab..62419e2cb462 100644
--- a/include/svx/xflasit.hxx
+++ b/include/svx/xflasit.hxx
@@ -20,6 +20,10 @@
 #ifndef INCLUDED_SVX_XFLASIT_HXX
 #define INCLUDED_SVX_XFLASIT_HXX
 
+#include <sal/config.h>
+
+#include <memory>
+
 #include <svl/poolitem.hxx>
 #include <svx/svxdllapi.h>
 
@@ -27,7 +31,7 @@
 class SVX_DLLPUBLIC XFillAttrSetItem : public SfxSetItem
 {
 public:
-                            XFillAttrSetItem(SfxItemSet* pItemSet );
+                            XFillAttrSetItem(std::unique_ptr<SfxItemSet>&& pItemSet );
                             XFillAttrSetItem(SfxItemPool* pItemPool);
                             XFillAttrSetItem(const XFillAttrSetItem& rAttr);
                             XFillAttrSetItem(const XFillAttrSetItem& rAttr,
diff --git a/include/svx/xlnasit.hxx b/include/svx/xlnasit.hxx
index 9b82ddef18e4..1643c223e23d 100644
--- a/include/svx/xlnasit.hxx
+++ b/include/svx/xlnasit.hxx
@@ -20,6 +20,9 @@
 #ifndef INCLUDED_SVX_XLNASIT_HXX
 #define INCLUDED_SVX_XLNASIT_HXX
 
+#include <sal/config.h>
+
+#include <memory>
 
 #include <svl/poolitem.hxx>
 #include <svx/svxdllapi.h>
@@ -28,7 +31,7 @@
 class SVX_DLLPUBLIC XLineAttrSetItem : public SfxSetItem
 {
 public:
-                            XLineAttrSetItem(SfxItemSet* pItemSet );
+                            XLineAttrSetItem(std::unique_ptr<SfxItemSet>&& pItemSet );
                             XLineAttrSetItem(SfxItemPool* pItemPool);
                             XLineAttrSetItem(const XLineAttrSetItem& rAttr);
                             XLineAttrSetItem(const XLineAttrSetItem& rAttr,
diff --git a/sc/inc/patattr.hxx b/sc/inc/patattr.hxx
index 05bfc926c6ac..964b4a4eeba4 100644
--- a/sc/inc/patattr.hxx
+++ b/sc/inc/patattr.hxx
@@ -56,8 +56,8 @@ class SC_DLLPUBLIC ScPatternAttr: public SfxSetItem
     ScStyleSheet*              pStyle;
     sal_uInt64                 mnKey;
 public:
-                            ScPatternAttr(SfxItemSet* pItemSet, const OUString& rStyleName);
-                            ScPatternAttr(SfxItemSet* pItemSet);
+                            ScPatternAttr(std::unique_ptr<SfxItemSet>&& pItemSet, const OUString& rStyleName);
+                            ScPatternAttr(std::unique_ptr<SfxItemSet>&& pItemSet);
                             ScPatternAttr(SfxItemPool* pItemPool);
                             ScPatternAttr(const ScPatternAttr& rPatternAttr);
 
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 93c500a1dbfa..a438eaeb77e8 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -33,6 +33,7 @@
 #include "docoptio.hxx"
 
 #include <formula/vectortoken.hxx>
+#include <o3tl/make_unique.hxx>
 #include <officecfg/Office/Common.hxx>
 #include <svl/broadcast.hxx>
 
@@ -3424,7 +3425,7 @@ void Test::testFormulaRefUpdateValidity()
     SfxUInt32Item aItem(ATTR_VALIDDATA, nIndex);
 
     ScPatternAttr aNewAttrs(
-        new SfxItemSet(*m_pDoc->GetPool(), ATTR_PATTERN_START, ATTR_PATTERN_END));
+        o3tl::make_unique<SfxItemSet>(*m_pDoc->GetPool(), ATTR_PATTERN_START, ATTR_PATTERN_END));
     aNewAttrs.GetItemSet().Put(aItem);
 
     m_pDoc->ApplyPattern(0, 1, 0, aNewAttrs);
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx
index 7c235d04124b..1e5511642fff 100644
--- a/sc/source/core/data/docpool.cxx
+++ b/sc/source/core/data/docpool.cxx
@@ -17,10 +17,15 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+
+#include <utility>
+
 #include "scitems.hxx"
 
 #include <comphelper/string.hxx>
 #include <i18nutil/unicode.hxx>
+#include <o3tl/make_unique.hxx>
 #include <vcl/outdev.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/settings.hxx>
@@ -204,7 +209,7 @@ ScDocumentPool::ScDocumentPool()
     GetDefaultFonts( aDummy, *pCjkFont, *pCtlFont );
 
     SvxBoxInfoItem* pGlobalBorderInnerAttr = new SvxBoxInfoItem( ATTR_BORDER_INNER );
-    SfxItemSet*     pSet = new SfxItemSet( *this, ATTR_PATTERN_START, ATTR_PATTERN_END );
+    auto pSet = o3tl::make_unique<SfxItemSet>( *this, ATTR_PATTERN_START, ATTR_PATTERN_END );
     SfxItemSet      aSetItemItemSet( *this,
                                      ATTR_BACKGROUND, ATTR_BACKGROUND,
                                      ATTR_BORDER,     ATTR_SHADOW,
@@ -286,9 +291,9 @@ ScDocumentPool::ScDocumentPool()
     // TODO: Write additional method ScGlobal::IsInit() or somesuch
     //       or detect whether this is the Secondary Pool for a MessagePool
     if ( ScGlobal::GetEmptyBrushItem() )
-        rPoolDefaults[ ATTR_PATTERN     - ATTR_STARTINDEX ] = new ScPatternAttr( pSet, ScGlobal::GetRscString(STR_STYLENAME_STANDARD) );
+        rPoolDefaults[ ATTR_PATTERN     - ATTR_STARTINDEX ] = new ScPatternAttr( std::move(pSet), ScGlobal::GetRscString(STR_STYLENAME_STANDARD) );
     else
-        rPoolDefaults[ ATTR_PATTERN     - ATTR_STARTINDEX ] = new ScPatternAttr( pSet, STRING_STANDARD ); // FIXME: without name?
+        rPoolDefaults[ ATTR_PATTERN     - ATTR_STARTINDEX ] = new ScPatternAttr( std::move(pSet), STRING_STANDARD ); // FIXME: without name?
 
     rPoolDefaults[ ATTR_LRSPACE         - ATTR_STARTINDEX ] = new SvxLRSpaceItem( ATTR_LRSPACE );
     rPoolDefaults[ ATTR_ULSPACE         - ATTR_STARTINDEX ] = new SvxULSpaceItem( ATTR_ULSPACE );
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 90e126d588bc..41545c80b41a 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -104,6 +104,7 @@
 #include <limits>
 #include <map>
 #include <memory>
+#include <utility>
 
 #include <comphelper/lok.hxx>
 #include <LibreOfficeKit/LibreOfficeKitEnums.h>
@@ -4983,7 +4984,7 @@ ScPatternAttr* ScDocument::CreateSelectionPattern( const ScMarkData& rMark, bool
     OSL_ENSURE( aState.pItemSet, "SelectionPattern Null" );
     if (aState.pItemSet)
     {
-        ScPatternAttr* pPattern = new ScPatternAttr( aState.pItemSet.release() );
+        ScPatternAttr* pPattern = new ScPatternAttr( std::move(aState.pItemSet) );
         if (aState.mbValidPatternId)
             pPattern->SetKey(aState.mnPatternId);
 
diff --git a/sc/source/core/data/patattr.cxx b/sc/source/core/data/patattr.cxx
index 811f986d6aef..0ab7a9c60c0c 100644
--- a/sc/source/core/data/patattr.cxx
+++ b/sc/source/core/data/patattr.cxx
@@ -18,8 +18,10 @@
  */
 
 #include <memory>
+#include <utility>
 #include "scitems.hxx"
 #include <editeng/adjustitem.hxx>
+#include <o3tl/make_unique.hxx>
 #include <svx/algitem.hxx>
 #include <editeng/boxitem.hxx>
 #include <editeng/lineitem.hxx>
@@ -66,16 +68,16 @@
 using sc::HMMToTwips;
 using sc::TwipsToHMM;
 
-ScPatternAttr::ScPatternAttr( SfxItemSet* pItemSet, const OUString& rStyleName )
-    :   SfxSetItem  ( ATTR_PATTERN, pItemSet ),
+ScPatternAttr::ScPatternAttr( std::unique_ptr<SfxItemSet>&& pItemSet, const OUString& rStyleName )
+    :   SfxSetItem  ( ATTR_PATTERN, std::move(pItemSet) ),
         pName       ( new OUString( rStyleName ) ),
         pStyle      ( nullptr ),
         mnKey(0)
 {
 }
 
-ScPatternAttr::ScPatternAttr( SfxItemSet* pItemSet )
-    :   SfxSetItem  ( ATTR_PATTERN, pItemSet ),
+ScPatternAttr::ScPatternAttr( std::unique_ptr<SfxItemSet>&& pItemSet )
+    :   SfxSetItem  ( ATTR_PATTERN, std::move(pItemSet) ),
         pName       ( nullptr ),
         pStyle      ( nullptr ),
         mnKey(0)
@@ -83,7 +85,7 @@ ScPatternAttr::ScPatternAttr( SfxItemSet* pItemSet )
 }
 
 ScPatternAttr::ScPatternAttr( SfxItemPool* pItemPool )
-    :   SfxSetItem  ( ATTR_PATTERN, new SfxItemSet( *pItemPool, ATTR_PATTERN_START, ATTR_PATTERN_END ) ),
+    :   SfxSetItem  ( ATTR_PATTERN, o3tl::make_unique<SfxItemSet>( *pItemPool, ATTR_PATTERN_START, ATTR_PATTERN_END ) ),
         pName       ( nullptr ),
         pStyle      ( nullptr ),
         mnKey(0)
@@ -105,7 +107,7 @@ ScPatternAttr::~ScPatternAttr()
 
 SfxPoolItem* ScPatternAttr::Clone( SfxItemPool *pPool ) const
 {
-    ScPatternAttr* pPattern = new ScPatternAttr( GetItemSet().Clone(true, pPool) );
+    ScPatternAttr* pPattern = new ScPatternAttr( std::unique_ptr<SfxItemSet>(GetItemSet().Clone(true, pPool)) );
 
     pPattern->pStyle = pStyle;
     pPattern->pName.reset( pName ? new OUString(*pName) : nullptr );
@@ -158,11 +160,11 @@ SfxPoolItem* ScPatternAttr::Create( SvStream& rStream, sal_uInt16 /* nVersion */
     else
         pStr = new OUString( ScGlobal::GetRscString(STR_STYLENAME_STANDARD) );
 
-    SfxItemSet *pNewSet = new SfxItemSet( *GetItemSet().GetPool(),
+    auto pNewSet = o3tl::make_unique<SfxItemSet>( *GetItemSet().GetPool(),
                                        ATTR_PATTERN_START, ATTR_PATTERN_END );
     pNewSet->Load( rStream );
 
-    ScPatternAttr* pPattern = new ScPatternAttr( pNewSet );
+    ScPatternAttr* pPattern = new ScPatternAttr( std::move(pNewSet) );
 
     pPattern->pName.reset( pStr );
 
diff --git a/sc/source/ui/docshell/docsh6.cxx b/sc/source/ui/docshell/docsh6.cxx
index fda2c606ad19..1f3acb3312b7 100644
--- a/sc/source/ui/docshell/docsh6.cxx
+++ b/sc/source/ui/docshell/docsh6.cxx
@@ -19,6 +19,7 @@
 
 #include "scitems.hxx"
 
+#include <o3tl/make_unique.hxx>
 #include <svx/pageitem.hxx>
 #include <sfx2/linkmgr.hxx>
 
@@ -39,7 +40,7 @@
 #include <vcl/msgbox.hxx>
 
 #include <memory>
-
+#include <utility>
 
 namespace {
 
@@ -209,16 +210,16 @@ static void lcl_AdjustPool( SfxStyleSheetBasePool* pStylePool )
         if (rStyleSet.GetItemState(ATTR_PAGE_HEADERSET,false,&pItem) == SfxItemState::SET)
         {
             const SfxItemSet& rSrcSet = static_cast<const SvxSetItem*>(pItem)->GetItemSet();
-            SfxItemSet* pDestSet = new SfxItemSet(*rStyleSet.GetPool(),rSrcSet.GetRanges());
+            auto pDestSet = o3tl::make_unique<SfxItemSet>(*rStyleSet.GetPool(),rSrcSet.GetRanges());
             pDestSet->Put(rSrcSet);
-            rStyleSet.Put(SvxSetItem(ATTR_PAGE_HEADERSET,pDestSet));
+            rStyleSet.Put(SvxSetItem(ATTR_PAGE_HEADERSET,std::move(pDestSet)));
         }
         if (rStyleSet.GetItemState(ATTR_PAGE_FOOTERSET,false,&pItem) == SfxItemState::SET)
         {
             const SfxItemSet& rSrcSet = static_cast<const SvxSetItem*>(pItem)->GetItemSet();
-            SfxItemSet* pDestSet = new SfxItemSet(*rStyleSet.GetPool(),rSrcSet.GetRanges());
+            auto pDestSet = o3tl::make_unique<SfxItemSet>(*rStyleSet.GetPool(),rSrcSet.GetRanges());
             pDestSet->Put(rSrcSet);
-            rStyleSet.Put(SvxSetItem(ATTR_PAGE_FOOTERSET,pDestSet));
+            rStyleSet.Put(SvxSetItem(ATTR_PAGE_FOOTERSET,std::move(pDestSet)));
         }
 
         pStyle = pStylePool->Next();
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index 2c7e7c885242..db6edf9d6112 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -871,8 +871,8 @@ void ScViewFunc::ApplyAttributes( const SfxItemSet* pDialogSet,
         return;
     }
 
-    ScPatternAttr aOldAttrs( new SfxItemSet(*pOldSet) );
-    ScPatternAttr aNewAttrs( new SfxItemSet(*pDialogSet) );
+    ScPatternAttr aOldAttrs( o3tl::make_unique<SfxItemSet>(*pOldSet) );
+    ScPatternAttr aNewAttrs( o3tl::make_unique<SfxItemSet>(*pDialogSet) );
     aNewAttrs.DeleteUnchanged( &aOldAttrs );
 
     if ( pDialogSet->GetItemState( ATTR_VALUE_FORMAT ) == SfxItemState::SET )
@@ -980,7 +980,7 @@ void ScViewFunc::ApplyAttr( const SfxPoolItem& rAttrItem )
         return;
     }
 
-    ScPatternAttr aNewAttrs( new SfxItemSet( *GetViewData().GetDocument()->GetPool(),
+    ScPatternAttr aNewAttrs( o3tl::make_unique<SfxItemSet>( *GetViewData().GetDocument()->GetPool(),
                                             ATTR_PATTERN_START, ATTR_PATTERN_END ) );
 
     aNewAttrs.GetItemSet().Put( rAttrItem );
diff --git a/svl/source/items/sitem.cxx b/svl/source/items/sitem.cxx
index 0ea270fc9980..fdfbe7870450 100644
--- a/svl/source/items/sitem.cxx
+++ b/svl/source/items/sitem.cxx
@@ -17,6 +17,10 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+
+#include <utility>
+
 #include <rtl/ustring.hxx>
 #include <svl/itemset.hxx>
 #include <svl/poolitem.hxx>
@@ -29,11 +33,11 @@ SfxSetItem::SfxSetItem( sal_uInt16 which, const SfxItemSet &rSet) :
 }
 
 
-SfxSetItem::SfxSetItem( sal_uInt16 which, SfxItemSet *pS) :
+SfxSetItem::SfxSetItem( sal_uInt16 which, std::unique_ptr<SfxItemSet> &&pS) :
     SfxPoolItem(which),
-    pSet(pS)
+    pSet(std::move(pS))
 {
-    DBG_ASSERT(pS, "SfxSetItem without set constructed" );
+    DBG_ASSERT(pSet, "SfxSetItem without set constructed" );
 }
 
 
diff --git a/svx/source/items/pageitem.cxx b/svx/source/items/pageitem.cxx
index 7d256e4db7a9..eb5d023a3fd3 100644
--- a/svx/source/items/pageitem.cxx
+++ b/svx/source/items/pageitem.cxx
@@ -17,6 +17,10 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+
+#include <utility>
+
 #include <tools/stream.hxx>
 
 
@@ -262,9 +266,9 @@ SvxSetItem::SvxSetItem( const SvxSetItem& rItem ) :
 {
 }
 
-SvxSetItem::SvxSetItem( const sal_uInt16 nId, SfxItemSet* _pSet ) :
+SvxSetItem::SvxSetItem( const sal_uInt16 nId, std::unique_ptr<SfxItemSet>&& _pSet ) :
 
-    SfxSetItem( nId, _pSet )
+    SfxSetItem( nId, std::move(_pSet) )
 {
 }
 
diff --git a/svx/source/xoutdev/xattr.cxx b/svx/source/xoutdev/xattr.cxx
index 9d34c7382900..a9441061442a 100644
--- a/svx/source/xoutdev/xattr.cxx
+++ b/svx/source/xoutdev/xattr.cxx
@@ -17,6 +17,10 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+
+#include <utility>
+
 #include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
 #include <com/sun/star/drawing/Hatch.hpp>
 #include <com/sun/star/drawing/LineStyle.hpp>
@@ -29,6 +33,7 @@
 #include <com/sun/star/uno/Sequence.hxx>
 #include <com/sun/star/beans/PropertyValue.hpp>
 #include <o3tl/any.hxx>
+#include <o3tl/make_unique.hxx>
 #include <svl/itempool.hxx>
 #include <editeng/memberids.hrc>
 #include <tools/stream.hxx>
@@ -3467,14 +3472,14 @@ SfxPoolItem* XFormTextHideFormItem::Create(SvStream& rIn, sal_uInt16 /*nVer*/) c
 
 
 /// a line attribute set item
-XLineAttrSetItem::XLineAttrSetItem( SfxItemSet* pItemSet ) :
-    SfxSetItem( XATTRSET_LINE, pItemSet)
+XLineAttrSetItem::XLineAttrSetItem( std::unique_ptr<SfxItemSet>&& pItemSet ) :
+    SfxSetItem( XATTRSET_LINE, std::move(pItemSet))
 {
 }
 
 XLineAttrSetItem::XLineAttrSetItem( SfxItemPool* pItemPool ) :
     SfxSetItem( XATTRSET_LINE,
-        new SfxItemSet( *pItemPool, XATTR_LINE_FIRST, XATTR_LINE_LAST))
+        o3tl::make_unique<SfxItemSet>( *pItemPool, XATTR_LINE_FIRST, XATTR_LINE_LAST))
 {
 }
 
@@ -3497,21 +3502,21 @@ SfxPoolItem* XLineAttrSetItem::Clone( SfxItemPool* pPool ) const
 /// create a set item out of a stream
 SfxPoolItem* XLineAttrSetItem::Create( SvStream& rStream, sal_uInt16 /*nVersion*/) const
 {
-    SfxItemSet *pSet2 = new SfxItemSet( *GetItemSet().GetPool(),
+    auto pSet2 = o3tl::make_unique<SfxItemSet>( *GetItemSet().GetPool(),
                                     XATTR_LINE_FIRST, XATTR_LINE_LAST);
     pSet2->Load( rStream );
-    return new XLineAttrSetItem( pSet2 );
+    return new XLineAttrSetItem( std::move(pSet2) );
 }
 
 /// fill attribute set item
-XFillAttrSetItem::XFillAttrSetItem( SfxItemSet* pItemSet ) :
-    SfxSetItem( XATTRSET_FILL, pItemSet)
+XFillAttrSetItem::XFillAttrSetItem( std::unique_ptr<SfxItemSet>&& pItemSet ) :
+    SfxSetItem( XATTRSET_FILL, std::move(pItemSet))
 {
 }
 
 XFillAttrSetItem::XFillAttrSetItem( SfxItemPool* pItemPool ) :
     SfxSetItem( XATTRSET_FILL,
-        new SfxItemSet( *pItemPool, XATTR_FILL_FIRST, XATTR_FILL_LAST))
+        o3tl::make_unique<SfxItemSet>( *pItemPool, XATTR_FILL_FIRST, XATTR_FILL_LAST))
 {
 }
 
@@ -3534,10 +3539,10 @@ SfxPoolItem* XFillAttrSetItem::Clone( SfxItemPool* pPool ) const
 /// create a set item out of a stream
 SfxPoolItem* XFillAttrSetItem::Create( SvStream& rStream, sal_uInt16 /*nVersion*/) const
 {
-    SfxItemSet *pSet2 = new SfxItemSet( *GetItemSet().GetPool(),
+    auto pSet2 = o3tl::make_unique<SfxItemSet>( *GetItemSet().GetPool(),
                                     XATTR_FILL_FIRST, XATTR_FILL_LAST);
     pSet2->Load( rStream );
-    return new XFillAttrSetItem( pSet2 );
+    return new XFillAttrSetItem( std::move(pSet2) );
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/xoutdev/xexch.cxx b/svx/source/xoutdev/xexch.cxx
index 382ad85183e3..156554223b99 100644
--- a/svx/source/xoutdev/xexch.cxx
+++ b/svx/source/xoutdev/xexch.cxx
@@ -17,6 +17,9 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+
+#include <o3tl/make_unique.hxx>
 #include <sot/formats.hxx>
 #include <tools/stream.hxx>
 #include <tools/vcompat.hxx>
@@ -28,7 +31,7 @@
 #include <svx/xdef.hxx>
 #include "svx/xexch.hxx"
 #include <memory>
-
+#include <utility>
 
 XFillExchangeData::XFillExchangeData( const XFillAttrSetItem& rXFillAttrSetItem ) :
     pXFillAttrSetItem( static_cast<XFillAttrSetItem*>( rXFillAttrSetItem.Clone( rXFillAttrSetItem.GetItemSet().GetPool() ) ) ),
@@ -83,7 +86,7 @@ SvStream& ReadXFillExchangeData( SvStream& rIStm, XFillExchangeData& rData )
 {
     DBG_ASSERT( rData.pPool, "XFillExchangeData has no pool" );
 
-    SfxItemSet*     pSet = new SfxItemSet ( *rData.pPool, XATTR_FILL_FIRST, XATTR_FILL_LAST );
+    auto pSet = o3tl::make_unique<SfxItemSet>( *rData.pPool, XATTR_FILL_FIRST, XATTR_FILL_LAST );
     sal_uInt32      nItemCount = 0;
     sal_uInt16          nWhich, nItemVersion;
 
@@ -109,7 +112,7 @@ SvStream& ReadXFillExchangeData( SvStream& rIStm, XFillExchangeData& rData )
         }
     }
 
-    rData.pXFillAttrSetItem.reset( new XFillAttrSetItem( pSet ) );
+    rData.pXFillAttrSetItem.reset( new XFillAttrSetItem( std::move(pSet) ) );
     rData.pPool = rData.pXFillAttrSetItem->GetItemSet().GetPool();
 
     return rIStm;
diff --git a/svx/source/xoutdev/xpool.cxx b/svx/source/xoutdev/xpool.cxx
index 317ca98bc834..591a57fc2575 100644
--- a/svx/source/xoutdev/xpool.cxx
+++ b/svx/source/xoutdev/xpool.cxx
@@ -17,6 +17,9 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+
+#include <o3tl/make_unique.hxx>
 #include <svx/xtable.hxx>
 #include <svx/xattr.hxx>
 #include <svx/xpool.hxx>
@@ -106,10 +109,12 @@ XOutdevItemPool::XOutdevItemPool(SfxItemPool* _pMaster, bool bLoadRefCounts)
     rPoolDefaults[XATTR_FORMTXTSHDWTRANSP  -XATTR_START] = new XFormTextShadowTranspItem;
 
     // create SetItems
-    SfxItemSet* pSet=new SfxItemSet(*_pMaster, XATTR_LINE_FIRST, XATTR_LINE_LAST);
-    rPoolDefaults[XATTRSET_LINE - XATTR_START] = new XLineAttrSetItem(pSet);
-    pSet=new SfxItemSet(*_pMaster, XATTR_FILL_FIRST, XATTR_FILL_LAST);
-    rPoolDefaults[XATTRSET_FILL - XATTR_START] = new XFillAttrSetItem(pSet);
+    rPoolDefaults[XATTRSET_LINE - XATTR_START] = new XLineAttrSetItem(
+        o3tl::make_unique<SfxItemSet>(
+            *_pMaster, XATTR_LINE_FIRST, XATTR_LINE_LAST));
+    rPoolDefaults[XATTRSET_FILL - XATTR_START] = new XFillAttrSetItem(
+        o3tl::make_unique<SfxItemSet>(
+            *_pMaster, XATTR_FILL_FIRST, XATTR_FILL_LAST));
 
     // create ItemInfos
     for(sal_uInt16 i(GetFirstWhich()); i <= GetLastWhich(); i++)


More information about the Libreoffice-commits mailing list