drawinglayer/inc/wmfemfhelper.hxx          |    4 ++++
 drawinglayer/source/tools/wmfemfhelper.cxx |   26 ++++++++------------------
 2 files changed, 12 insertions(+), 18 deletions(-)

New commits:
commit e42703d9f23d2235c3a1d61b06610248627595c0
Author:     Noel Grandin <[email protected]>
AuthorDate: Sun May 29 12:34:31 2022 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Sun May 29 19:39:38 2022 +0200

    elide temporary vector in processMetaTextLineAction
    
    Change-Id: Icf5a3ae47aec43854e669133f3d0c2bace1d942d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135090
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/drawinglayer/inc/wmfemfhelper.hxx 
b/drawinglayer/inc/wmfemfhelper.hxx
index 01449ae2b1da..f085065c1ea6 100644
--- a/drawinglayer/inc/wmfemfhelper.hxx
+++ b/drawinglayer/inc/wmfemfhelper.hxx
@@ -53,6 +53,10 @@ namespace wmfemfhelper
         {
             append(pCandidate.get());
         }
+        void append(drawinglayer::primitive2d::Primitive2DContainer xCandidate)
+        {
+            aTargets.append(std::move(xCandidate));
+        }
         void append(drawinglayer::primitive2d::BasePrimitive2D* pCandidate);
         drawinglayer::primitive2d::Primitive2DContainer 
getPrimitive2DSequence(const PropertyHolder& rPropertyHolder);
     };
diff --git a/drawinglayer/source/tools/wmfemfhelper.cxx 
b/drawinglayer/source/tools/wmfemfhelper.cxx
index 0e8668e80656..8a5dbab74e12 100644
--- a/drawinglayer/source/tools/wmfemfhelper.cxx
+++ b/drawinglayer/source/tools/wmfemfhelper.cxx
@@ -1292,7 +1292,7 @@ namespace wmfemfhelper
         if(!(bUnderlineUsed || bStrikeoutUsed || bOverlineUsed))
             return;
 
-        std::vector< drawinglayer::primitive2d::BasePrimitive2D* > 
aTargetVector;
+        drawinglayer::primitive2d::Primitive2DContainer aTargets;
         basegfx::B2DVector aAlignmentOffset(0.0, 0.0);
         drawinglayer::attribute::FontAttribute aFontAttribute;
         basegfx::B2DHomMatrix aTextTransform;
@@ -1314,7 +1314,7 @@ namespace wmfemfhelper
         if(bOverlineUsed)
         {
             // create primitive geometry for overline
-            aTargetVector.push_back(
+            aTargets.push_back(
                 new drawinglayer::primitive2d::TextLinePrimitive2D(
                     aTextTransform,
                     fLineWidth,
@@ -1327,7 +1327,7 @@ namespace wmfemfhelper
         if(bUnderlineUsed)
         {
             // create primitive geometry for underline
-            aTargetVector.push_back(
+            aTargets.push_back(
                 new drawinglayer::primitive2d::TextLinePrimitive2D(
                     aTextTransform,
                     fLineWidth,
@@ -1349,7 +1349,7 @@ namespace wmfemfhelper
                 const css::lang::Locale aLocale(LanguageTag(
                     rProperty.getLanguageType()).getLocale());
 
-                aTargetVector.push_back(
+                aTargets.push_back(
                     new 
drawinglayer::primitive2d::TextCharacterStrikeoutPrimitive2D(
                         aTextTransform,
                         fLineWidth,
@@ -1361,7 +1361,7 @@ namespace wmfemfhelper
             else
             {
                 // strikeout with geometry
-                aTargetVector.push_back(
+                aTargets.push_back(
                     new 
drawinglayer::primitive2d::TextGeometryStrikeoutPrimitive2D(
                         aTextTransform,
                         fLineWidth,
@@ -1372,31 +1372,21 @@ namespace wmfemfhelper
             }
         }
 
-        if(aTargetVector.empty())
+        if(aTargets.empty())
             return;
 
         // add created text primitive to target
         if(rProperty.getTransformation().isIdentity())
         {
-            for(drawinglayer::primitive2d::BasePrimitive2D* a : aTargetVector)
-            {
-                rTarget.append(a);
-            }
+            rTarget.append(std::move(aTargets));
         }
         else
         {
             // when a transformation is set, embed to it
-            drawinglayer::primitive2d::Primitive2DContainer 
xTargets(aTargetVector.size());
-
-            for(size_t a(0); a < aTargetVector.size(); a++)
-            {
-                xTargets[a] = 
drawinglayer::primitive2d::Primitive2DReference(aTargetVector[a]);
-            }
-
             rTarget.append(
                 new drawinglayer::primitive2d::TransformPrimitive2D(
                     rProperty.getTransformation(),
-                    std::move(xTargets)));
+                    std::move(aTargets)));
         }
     }
 

Reply via email to