vcl/source/edit/textdoc.cxx |   20 ++++++++++----------
 vcl/source/edit/textdoc.hxx |    2 +-
 vcl/source/edit/texteng.cxx |    3 ++-
 3 files changed, 13 insertions(+), 12 deletions(-)

New commits:
commit 6c5208b91ee15c2a501696d1d9a131c51c737741
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed Oct 3 15:56:51 2018 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Thu Oct 4 08:16:25 2018 +0200

    use unique_ptr in TextCharAttribList::InsertAttrib
    
    Change-Id: Ie6818586e9dbbcbf79f0bb8e1031fc0a0b13763a
    Reviewed-on: https://gerrit.libreoffice.org/61308
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/vcl/source/edit/textdoc.cxx b/vcl/source/edit/textdoc.cxx
index 2777cc116813..4a65d2be31d9 100644
--- a/vcl/source/edit/textdoc.cxx
+++ b/vcl/source/edit/textdoc.cxx
@@ -58,7 +58,7 @@ void TextCharAttribList::Clear()
     maAttribs.clear();
 }
 
-void TextCharAttribList::InsertAttrib( TextCharAttrib* pAttrib )
+void TextCharAttribList::InsertAttrib( std::unique_ptr<TextCharAttrib> pAttrib 
)
 {
     if ( pAttrib->IsEmpty() )
         mbHasEmptyAttribs = true;
@@ -69,11 +69,11 @@ void TextCharAttribList::InsertAttrib( TextCharAttrib* 
pAttrib )
         [nStart](std::unique_ptr<TextCharAttrib>& rAttrib) { return 
rAttrib->GetStart() > nStart; });
     if (it != maAttribs.end())
     {
-        maAttribs.insert( it, std::unique_ptr<TextCharAttrib>(pAttrib) );
+        maAttribs.insert( it, std::move(pAttrib) );
         bInserted = true;
     }
     if ( !bInserted )
-        maAttribs.push_back( std::unique_ptr<TextCharAttrib>(pAttrib) );
+        maAttribs.push_back( std::move(pAttrib) );
 }
 
 void TextCharAttribList::ResortAttribs()
@@ -305,20 +305,20 @@ std::unique_ptr<TextNode> TextNode::Split( sal_Int32 nPos 
)
             // !FindAttrib only sensible if traversing backwards through the 
list!
             if ( !pNew->maCharAttribs.FindAttrib( rAttrib.Which(), 0 ) )
             {
-                TextCharAttrib* pNewAttrib = new TextCharAttrib( rAttrib );
+                std::unique_ptr<TextCharAttrib> pNewAttrib(new TextCharAttrib( 
rAttrib ));
                 pNewAttrib->GetStart() = 0;
                 pNewAttrib->GetEnd() = 0;
-                pNew->maCharAttribs.InsertAttrib( pNewAttrib );
+                pNew->maCharAttribs.InsertAttrib( std::move(pNewAttrib) );
             }
         }
         else if ( rAttrib.IsInside( nPos ) || ( !nPos && !rAttrib.GetStart() ) 
)
         {
             // If cutting at the very beginning, the attribute has to be
             // copied and changed
-            TextCharAttrib* pNewAttrib = new TextCharAttrib( rAttrib );
+            std::unique_ptr<TextCharAttrib> pNewAttrib(new TextCharAttrib( 
rAttrib ));
             pNewAttrib->GetStart() = 0;
             pNewAttrib->GetEnd() = rAttrib.GetEnd()-nPos;
-            pNew->maCharAttribs.InsertAttrib( pNewAttrib );
+            pNew->maCharAttribs.InsertAttrib( std::move(pNewAttrib) );
             // trim
             rAttrib.GetEnd() = nPos;
         }
@@ -327,7 +327,7 @@ std::unique_ptr<TextNode> TextNode::Split( sal_Int32 nPos )
             SAL_WARN_IF( rAttrib.GetStart() < nPos, "vcl", "Start < nPos!" );
             SAL_WARN_IF( rAttrib.GetEnd() < nPos, "vcl", "End < nPos!" );
             // move all into the new node (this)
-            
pNew->maCharAttribs.InsertAttrib(maCharAttribs.RemoveAttrib(nAttr).release());
+            
pNew->maCharAttribs.InsertAttrib(maCharAttribs.RemoveAttrib(nAttr));
             rAttrib.GetStart() = rAttrib.GetStart() - nPos;
             rAttrib.GetEnd() = rAttrib.GetEnd() - nPos;
             nAttr--;
@@ -370,10 +370,10 @@ void TextNode::Append( const TextNode& rNode )
 
         if ( !bMelted )
         {
-            TextCharAttrib* pNewAttrib = new TextCharAttrib( rAttrib );
+            std::unique_ptr<TextCharAttrib> pNewAttrib(new TextCharAttrib( 
rAttrib ));
             pNewAttrib->GetStart() = pNewAttrib->GetStart() + nOldLen;
             pNewAttrib->GetEnd() = pNewAttrib->GetEnd() + nOldLen;
-            maCharAttribs.InsertAttrib( pNewAttrib );
+            maCharAttribs.InsertAttrib( std::move(pNewAttrib) );
         }
     }
 }
diff --git a/vcl/source/edit/textdoc.hxx b/vcl/source/edit/textdoc.hxx
index 24478e0a4d2e..0130a2377f43 100644
--- a/vcl/source/edit/textdoc.hxx
+++ b/vcl/source/edit/textdoc.hxx
@@ -51,7 +51,7 @@ public:
         return pReleased;
     }
 
-    void            InsertAttrib( TextCharAttrib* pAttrib );
+    void            InsertAttrib( std::unique_ptr<TextCharAttrib> pAttrib );
 
     void            DeleteEmptyAttribs();
     void            ResortAttribs();
diff --git a/vcl/source/edit/texteng.cxx b/vcl/source/edit/texteng.cxx
index 630daf65c906..fb36cb6c3607 100644
--- a/vcl/source/edit/texteng.cxx
+++ b/vcl/source/edit/texteng.cxx
@@ -30,6 +30,7 @@
 #include <vcl/settings.hxx>
 #include <vcl/edit.hxx>
 #include <sal/log.hxx>
+#include <o3tl/make_unique.hxx>
 
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/beans/PropertyValues.hpp>
@@ -2536,7 +2537,7 @@ void TextEngine::SetAttrib( const TextAttrib& rAttr, 
sal_uInt32 nPara, sal_Int32
         if ( nEnd > nMax )
             nEnd = nMax;
 
-        pNode->GetCharAttribs().InsertAttrib( new TextCharAttrib( rAttr, 
nStart, nEnd ) );
+        pNode->GetCharAttribs().InsertAttrib( 
o3tl::make_unique<TextCharAttrib>( rAttr, nStart, nEnd ) );
         pTEParaPortion->MarkSelectionInvalid( nStart );
 
         mbFormatted = false;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to