diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2022-05-29 20:35:30 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-05-30 10:06:54 +0200 |
commit | f0c82758f814c58f65e8cfb54bf01a97b1d73261 (patch) | |
tree | 53546370825722d5d2dc4ed9513671b7cf4beb93 | |
parent | c3baf2a7f48b5ee46c6792b3106cb4fedb4a2ad2 (diff) |
elide temporary vectors in impAddPolygonStrokePrimitives
Change-Id: I759775bb672478f3baee782aba08ef17bd36124c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135100
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | svx/source/svdraw/svdotextpathdecomposition.cxx | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/svx/source/svdraw/svdotextpathdecomposition.cxx b/svx/source/svdraw/svdotextpathdecomposition.cxx index 78c8d8f377ea..3755da168c18 100644 --- a/svx/source/svdraw/svdotextpathdecomposition.cxx +++ b/svx/source/svdraw/svdotextpathdecomposition.cxx @@ -547,7 +547,7 @@ namespace const basegfx::B2DHomMatrix& rTransform, const drawinglayer::attribute::LineAttribute& rLineAttribute, const drawinglayer::attribute::StrokeAttribute& rStrokeAttribute, - std::vector< drawinglayer::primitive2d::BasePrimitive2D* >& rTarget) + drawinglayer::primitive2d::Primitive2DContainer& rTarget) { for(const auto& rB2DPolyPolygon : rB2DPolyPolyVector) { @@ -569,7 +569,7 @@ namespace const std::vector< drawinglayer::primitive2d::BasePrimitive2D* >& rSource, const drawinglayer::attribute::SdrFormTextOutlineAttribute& rOutlineAttribute) { - std::vector< drawinglayer::primitive2d::BasePrimitive2D* > aNewPrimitives; + drawinglayer::primitive2d::Primitive2DContainer aNewPrimitives; for(drawinglayer::primitive2d::BasePrimitive2D* a : rSource) { @@ -586,7 +586,7 @@ namespace if(!aB2DPolyPolyVector.empty()) { // create stroke primitives - std::vector< drawinglayer::primitive2d::BasePrimitive2D* > aStrokePrimitives; + drawinglayer::primitive2d::Primitive2DContainer aStrokePrimitives; impAddPolygonStrokePrimitives( aB2DPolyPolyVector, aPolygonTransform, @@ -600,45 +600,22 @@ namespace if(rOutlineAttribute.getTransparence()) { // create UnifiedTransparencePrimitive2D - drawinglayer::primitive2d::Primitive2DContainer aStrokePrimitiveSequence(nStrokeCount); - - for(sal_uInt32 b(0); b < nStrokeCount; b++) - { - aStrokePrimitiveSequence[b] = drawinglayer::primitive2d::Primitive2DReference(aStrokePrimitives[b]); - } - aNewPrimitives.push_back( new drawinglayer::primitive2d::UnifiedTransparencePrimitive2D( - std::move(aStrokePrimitiveSequence), + std::move(aStrokePrimitives), static_cast<double>(rOutlineAttribute.getTransparence()) / 100.0) ); } else { // add polygons to rDecomposition as polygonStrokePrimitives - aNewPrimitives.insert(aNewPrimitives.end(), aStrokePrimitives.begin(), aStrokePrimitives.end()); + aNewPrimitives.append( std::move(aStrokePrimitives) ); } } } } } - const sal_uInt32 nNewCount(aNewPrimitives.size()); - - if(nNewCount) - { - drawinglayer::primitive2d::Primitive2DContainer aRetval(nNewCount); - - for(sal_uInt32 a(0); a < nNewCount; a++) - { - aRetval[a] = drawinglayer::primitive2d::Primitive2DReference(aNewPrimitives[a]); - } - - return aRetval; - } - else - { - return drawinglayer::primitive2d::Primitive2DContainer(); - } + return aNewPrimitives; } } // end of anonymous namespace |