[Libreoffice-commits] core.git: svx/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Dec 20 09:56:27 UTC 2018


 svx/source/form/datanavi.cxx                         |   16 ++----
 svx/source/gallery2/galbrws2.cxx                     |   12 ++---
 svx/source/inc/datanavi.hxx                          |    2 
 svx/source/sdr/primitive2d/sdrdecompositiontools.cxx |   45 +++++++++----------
 svx/source/sdr/properties/textproperties.cxx         |    6 --
 svx/source/svdraw/svdpagv.cxx                        |   13 +----
 6 files changed, 41 insertions(+), 53 deletions(-)

New commits:
commit 1b7bcaa714f0af45c6a9660d1f0940cb7931ba0f
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Wed Dec 19 16:30:34 2018 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Thu Dec 20 10:56:01 2018 +0100

    use unique_ptr in svx
    
    Change-Id: Ib0dd1edf05470783da41f08767020a9009f356ad
    Reviewed-on: https://gerrit.libreoffice.org/65444
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/svx/source/form/datanavi.cxx b/svx/source/form/datanavi.cxx
index 3e7eaeb30ec0..85a4a70eb0cf 100644
--- a/svx/source/form/datanavi.cxx
+++ b/svx/source/form/datanavi.cxx
@@ -512,7 +512,7 @@ namespace svxform
             {
                 DataItemType eType = DITElement;
                 SvTreeListEntry* pEntry = m_pItemList->FirstSelected();
-                ItemNode* pNode = nullptr;
+                std::unique_ptr<ItemNode> pNode;
                 Reference< css::xml::dom::XNode > xParentNode;
                 Reference< XPropertySet > xNewBinding;
                 const char* pResId = nullptr;
@@ -597,7 +597,7 @@ namespace svxform
                     {
                         SAL_WARN( "svx.form", "XFormsPage::DoToolBoxAction(): exception while get binding for node" );
                     }
-                    pNode = new ItemNode( xNewNode );
+                    pNode.reset(new ItemNode( xNewNode ));
                 }
                 else
                 {
@@ -607,7 +607,7 @@ namespace svxform
                         xNewBinding = xModel->createBinding();
                         Reference< XSet > xBindings( xModel->getBindings(), UNO_QUERY );
                         xBindings->insert( makeAny( xNewBinding ) );
-                        pNode = new ItemNode( xNewBinding );
+                        pNode.reset(new ItemNode( xNewBinding ));
                         eType = DITBinding;
                     }
                     catch ( Exception& )
@@ -616,7 +616,7 @@ namespace svxform
                     }
                 }
 
-                ScopedVclPtrInstance< AddDataItemDialog > aDlg( this, pNode, m_xUIHelper );
+                ScopedVclPtrInstance< AddDataItemDialog > aDlg( this, pNode.get(), m_xUIHelper );
                 aDlg->SetText( SvxResId( pResId ) );
                 aDlg->InitText( eType );
                 short nReturn = aDlg->Execute();
@@ -624,7 +624,7 @@ namespace svxform
                 {
                     if ( RET_OK == nReturn )
                     {
-                        SvTreeListEntry* pNewEntry = AddEntry( pNode, bIsElement );
+                        SvTreeListEntry* pNewEntry = AddEntry( std::move(pNode), bIsElement );
                         m_pItemList->MakeVisible( pNewEntry );
                         m_pItemList->Select( pNewEntry );
                         bIsDocModified = true;
@@ -639,7 +639,6 @@ namespace svxform
                             if ( xNode.is() )
                                 xPNode = xNode->getParentNode();
                             DBG_ASSERT( !xPNode.is(), "XFormsPage::RemoveEntry(): node not removed" );
-                            delete pNode;
                         }
                         catch ( Exception& )
                         {
@@ -667,7 +666,6 @@ namespace svxform
                             SAL_WARN( "svx.form", "XFormsPage::DoToolboxAction(): exception caught" );
                         }
                     }
-                    delete pNode;
                 }
             }
         }
@@ -787,7 +785,7 @@ namespace svxform
         return bHandled;
     }
 
-    SvTreeListEntry* XFormsPage::AddEntry( ItemNode* _pNewNode, bool _bIsElement )
+    SvTreeListEntry* XFormsPage::AddEntry( std::unique_ptr<ItemNode> _pNewNode, bool _bIsElement )
     {
         SvTreeListEntry* pParent = m_pItemList->FirstSelected();
         Image aImage(StockImage::Yes, _bIsElement ? OUString(RID_SVXBMP_ELEMENT) : OUString(RID_SVXBMP_ATTRIBUTE));
@@ -802,7 +800,7 @@ namespace svxform
             DBG_UNHANDLED_EXCEPTION("svx");
         }
         return m_pItemList->InsertEntry(
-            sName, aImage, aImage, pParent, false, TREELIST_APPEND, _pNewNode );
+            sName, aImage, aImage, pParent, false, TREELIST_APPEND, _pNewNode.release() );
     }
 
     SvTreeListEntry* XFormsPage::AddEntry( const Reference< XPropertySet >& _rEntry )
diff --git a/svx/source/gallery2/galbrws2.cxx b/svx/source/gallery2/galbrws2.cxx
index 1e89c6cc4801..83b0bead0f04 100644
--- a/svx/source/gallery2/galbrws2.cxx
+++ b/svx/source/gallery2/galbrws2.cxx
@@ -214,14 +214,14 @@ void GalleryThemePopup::Execute(
 {
     if ( rCmdInfo.Dispatch.is() )
     {
-        DispatchInfo *pInfo = new DispatchInfo;
+        std::unique_ptr<DispatchInfo> pInfo(new DispatchInfo);
         pInfo->TargetURL = rCmdInfo.URL;
         pInfo->Arguments = rArguments;
         pInfo->Dispatch = rCmdInfo.Dispatch;
 
         if ( !Application::PostUserEvent(
-                LINK( nullptr, GalleryBrowser2, AsyncDispatch_Impl), pInfo ) )
-            delete pInfo;
+                LINK( nullptr, GalleryBrowser2, AsyncDispatch_Impl), pInfo.get() ) )
+            pInfo.reset();
     }
 }
 
@@ -1076,14 +1076,14 @@ void GalleryBrowser2::DispatchAdd(
     aArgs[0].Name = SVXGALLERYITEM_ARGNAME;
     aArgs[0].Value <<= aSeq;
 
-    DispatchInfo *pInfo = new DispatchInfo;
+    std::unique_ptr<DispatchInfo> pInfo(new DispatchInfo);
     pInfo->TargetURL = aURL;
     pInfo->Arguments = aArgs;
     pInfo->Dispatch = xDispatch;
 
     if ( !Application::PostUserEvent(
-            LINK( nullptr, GalleryBrowser2, AsyncDispatch_Impl), pInfo ) )
-        delete pInfo;
+            LINK( nullptr, GalleryBrowser2, AsyncDispatch_Impl), pInfo.get() ) )
+        pInfo.reset();
 }
 
 void GalleryBrowser2::Execute(const OString &rIdent)
diff --git a/svx/source/inc/datanavi.hxx b/svx/source/inc/datanavi.hxx
index 8a3c89362662..d448f999bd49 100644
--- a/svx/source/inc/datanavi.hxx
+++ b/svx/source/inc/datanavi.hxx
@@ -246,7 +246,7 @@ namespace svxform
         void                        AddChildren(SvTreeListEntry* _pParent,
                                                 const css::uno::Reference< css::xml::dom::XNode >& _xNode);
         bool                        DoToolBoxAction( sal_uInt16 _nToolBoxID );
-        SvTreeListEntry*            AddEntry( ItemNode* _pNewNode, bool _bIsElement );
+        SvTreeListEntry*            AddEntry( std::unique_ptr<ItemNode> _pNewNode, bool _bIsElement );
         SvTreeListEntry*            AddEntry( const css::uno::Reference< css::beans::XPropertySet >& _rPropSet );
         void                        EditEntry( const css::uno::Reference< css::beans::XPropertySet >& _rPropSet );
         bool                        RemoveEntry();
diff --git a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
index a1acce939be0..6787e0d5a322 100644
--- a/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
+++ b/svx/source/sdr/primitive2d/sdrdecompositiontools.cxx
@@ -195,7 +195,7 @@ namespace drawinglayer
             bool bWordWrap)
         {
             basegfx::B2DHomMatrix aAnchorTransform(rObjectTransform);
-            SdrTextPrimitive2D* pNew = nullptr;
+            std::unique_ptr<SdrTextPrimitive2D> pNew;
 
             if(rText.isContour())
             {
@@ -223,20 +223,20 @@ namespace drawinglayer
                         0.0 != aScale.getY() ? 1.0 / aScale.getY() : 1.0));
 
                     // create with unit polygon
-                    pNew = new SdrContourTextPrimitive2D(
+                    pNew.reset(new SdrContourTextPrimitive2D(
                         &rText.getSdrText(),
                         rText.getOutlinerParaObject(),
                         aScaledUnitPolyPolygon,
-                        rObjectTransform);
+                        rObjectTransform));
                 }
                 else
                 {
                     // create with unit polygon
-                    pNew = new SdrContourTextPrimitive2D(
+                    pNew.reset(new SdrContourTextPrimitive2D(
                         &rText.getSdrText(),
                         rText.getOutlinerParaObject(),
                         rUnitPolyPolygon,
-                        rObjectTransform);
+                        rObjectTransform));
                 }
             }
             else if(!rText.getSdrFormTextAttribute().isDefault())
@@ -244,11 +244,11 @@ namespace drawinglayer
                 // text on path, use scaled polygon
                 basegfx::B2DPolyPolygon aScaledPolyPolygon(rUnitPolyPolygon);
                 aScaledPolyPolygon.transform(rObjectTransform);
-                pNew = new SdrPathTextPrimitive2D(
+                pNew.reset(new SdrPathTextPrimitive2D(
                     &rText.getSdrText(),
                     rText.getOutlinerParaObject(),
                     aScaledPolyPolygon,
-                    rText.getSdrFormTextAttribute());
+                    rText.getSdrFormTextAttribute()));
             }
             else
             {
@@ -298,32 +298,32 @@ namespace drawinglayer
                 if(rText.isFitToSize())
                 {
                     // stretched text in range
-                    pNew = new SdrStretchTextPrimitive2D(
+                    pNew.reset(new SdrStretchTextPrimitive2D(
                         &rText.getSdrText(),
                         rText.getOutlinerParaObject(),
                         aAnchorTransform,
-                        rText.isFixedCellHeight());
+                        rText.isFixedCellHeight()));
                 }
                 else if(rText.isAutoFit())
                 {
                     // isotropically scaled text in range
-                    pNew = new SdrAutoFitTextPrimitive2D(
+                    pNew.reset(new SdrAutoFitTextPrimitive2D(
                                     &rText.getSdrText(),
                                     rText.getOutlinerParaObject(),
                                     aAnchorTransform,
-                                    bWordWrap);
+                                    bWordWrap));
                 }
                 else if( rText.isChainable() && !rText.isInEditMode() )
                 {
-                    pNew = new SdrChainedTextPrimitive2D(
+                    pNew.reset(new SdrChainedTextPrimitive2D(
                                     &rText.getSdrText(),
                                     rText.getOutlinerParaObject(),
-                                    aAnchorTransform );
+                                    aAnchorTransform ));
                 }
                 else // text in range
                 {
                     // build new primitive
-                    pNew = new SdrBlockTextPrimitive2D(
+                    pNew.reset(new SdrBlockTextPrimitive2D(
                         &rText.getSdrText(),
                         rText.getOutlinerParaObject(),
                         aAnchorTransform,
@@ -333,7 +333,7 @@ namespace drawinglayer
                         rText.isScroll(),
                         bCellText,
                         bWordWrap,
-                        false/*bClipOnBounds*/);
+                        false/*bClipOnBounds*/));
                 }
             }
 
@@ -348,7 +348,7 @@ namespace drawinglayer
                 if(0.0 != aAnimationList.getDuration())
                 {
                     // create content sequence
-                    const Primitive2DReference xRefA(pNew);
+                    const Primitive2DReference xRefA(pNew.release());
                     const Primitive2DContainer aContent { xRefA };
 
                     // create and add animated switch primitive
@@ -357,7 +357,7 @@ namespace drawinglayer
                 else
                 {
                     // add to decomposition
-                    return Primitive2DReference(pNew);
+                    return Primitive2DReference(pNew.release());
                 }
             }
 
@@ -384,8 +384,7 @@ namespace drawinglayer
                     // bring the primitive back to scaled only and get scaled range, create new clone for this
                     std::unique_ptr<SdrTextPrimitive2D> pNew2 = pNew->createTransformedClone(aISRT);
                     OSL_ENSURE(pNew2, "createTextPrimitive: Could not create transformed clone of text primitive (!)");
-                    delete pNew;
-                    pNew = pNew2.release();
+                    pNew = std::move(pNew2);
 
                     // create neutral geometry::ViewInformation2D for local range and decompose calls. This is okay
                     // since the decompose is view-independent
@@ -439,7 +438,7 @@ namespace drawinglayer
                         // pNew to aNewPrimitiveSequence)
                         Primitive2DContainer aAnimSequence;
                         pNew->get2DDecomposition(aAnimSequence, aViewInformation2D);
-                        delete pNew;
+                        pNew.reset();
 
                         // create a new animatedInterpolatePrimitive and add it
                         std::vector< basegfx::B2DHomMatrix > aMatrixStack;
@@ -457,7 +456,7 @@ namespace drawinglayer
                     else
                     {
                         // add to decomposition
-                        return Primitive2DReference(pNew);
+                        return Primitive2DReference(pNew.release());
                     }
                 }
             }
@@ -467,7 +466,7 @@ namespace drawinglayer
                 // #i97628#
                 // encapsulate with TextHierarchyEditPrimitive2D to allow renderers
                 // to suppress actively edited content if needed
-                const Primitive2DReference xRefA(pNew);
+                const Primitive2DReference xRefA(pNew.release());
                 const Primitive2DContainer aContent { xRefA };
 
                 // create and add TextHierarchyEditPrimitive2D primitive
@@ -476,7 +475,7 @@ namespace drawinglayer
             else
             {
                 // add to decomposition
-                return Primitive2DReference(pNew);
+                return Primitive2DReference(pNew.release());
             }
         }
 
diff --git a/svx/source/sdr/properties/textproperties.cxx b/svx/source/sdr/properties/textproperties.cxx
index 7aeacdf7e3fc..e65995f92371 100644
--- a/svx/source/sdr/properties/textproperties.cxx
+++ b/svx/source/sdr/properties/textproperties.cxx
@@ -261,13 +261,13 @@ namespace sdr
                     {
                         for(sal_Int32 nPara = 0; nPara < nParaCount; nPara++)
                         {
-                            SfxItemSet* pTempSet = nullptr;
+                            std::unique_ptr<SfxItemSet> pTempSet;
 
                             // since setting the stylesheet removes all para attributes
                             if(bDontRemoveHardAttr)
                             {
                                 // we need to remember them if we want to keep them
-                                pTempSet = new SfxItemSet(rOutliner.GetParaAttribs(nPara));
+                                pTempSet.reset(new SfxItemSet(rOutliner.GetParaAttribs(nPara)));
                             }
 
                             if(GetStyleSheet())
@@ -333,8 +333,6 @@ namespace sdr
                                     }
                                 }
                             }
-
-                            delete pTempSet;
                         }
 
                         std::unique_ptr<OutlinerParaObject> pTemp = rOutliner.CreateParaObject(0, nParaCount);
diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx
index c180fe9b459e..c0499dbe8938 100644
--- a/svx/source/svdraw/svdpagv.cxx
+++ b/svx/source/svdraw/svdpagv.cxx
@@ -239,25 +239,18 @@ void SdrPageView::CompleteRedraw(
     if(GetPage())
     {
         SdrPageWindow* pPageWindow = FindPageWindow(rPaintWindow);
-        bool bIsTempTarget(false);
+        std::unique_ptr<SdrPageWindow> pTempPageWindow;
 
         if(!pPageWindow)
         {
             // create temp PageWindow
-            pPageWindow = new SdrPageWindow(*this, rPaintWindow);
-            bIsTempTarget = true;
+            pTempPageWindow.reset(new SdrPageWindow(*this, rPaintWindow));
+            pPageWindow = pTempPageWindow.get();
         }
 
         // do the redraw
         pPageWindow->PrepareRedraw(rReg);
         pPageWindow->RedrawAll(pRedirector);
-
-        // get rid of temp PageWindow
-        if(bIsTempTarget)
-        {
-            delete pPageWindow;
-            pPageWindow = nullptr;
-        }
     }
 }
 


More information about the Libreoffice-commits mailing list