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