summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drawinglayer/source/primitive2d/Primitive2DContainer.cxx21
-rw-r--r--drawinglayer/source/primitive2d/svggradientprimitive2d.cxx10
-rw-r--r--include/drawinglayer/primitive2d/Primitive2DContainer.hxx2
-rw-r--r--include/drawinglayer/primitive2d/svggradientprimitive2d.hxx4
4 files changed, 12 insertions, 25 deletions
diff --git a/drawinglayer/source/primitive2d/Primitive2DContainer.cxx b/drawinglayer/source/primitive2d/Primitive2DContainer.cxx
index 85ab03951996..48b0c625e1ba 100644
--- a/drawinglayer/source/primitive2d/Primitive2DContainer.cxx
+++ b/drawinglayer/source/primitive2d/Primitive2DContainer.cxx
@@ -54,24 +54,11 @@ Primitive2DContainer::toSequence() const
return aVal;
}
-Primitive2DContainer Primitive2DContainer::maybeInvert(bool bInvert) const
+Primitive2DContainer Primitive2DContainer::maybeInvert(bool bInvert)
{
- const sal_uInt32 nSize(size());
- Primitive2DContainer aRetval;
-
- aRetval.resize(nSize);
-
- for (sal_uInt32 a(0); a < nSize; a++)
- {
- aRetval[bInvert ? nSize - 1 - a : a] = (*this)[a];
- }
-
- // all entries taken over to Uno References as owners. To avoid
- // errors with users of this mechanism to delete pointers to BasePrimitive2D
- // itself, clear given vector
- const_cast<Primitive2DContainer&>(*this).clear();
-
- return aRetval;
+ if (bInvert)
+ std::reverse(begin(), end());
+ return std::move(*this);
}
// get B2DRange from a given Primitive2DSequence
diff --git a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
index 5295cbedc37d..263ee8f4d387 100644
--- a/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
+++ b/drawinglayer/source/primitive2d/svggradientprimitive2d.cxx
@@ -306,13 +306,13 @@ namespace drawinglayer::primitive2d
void SvgGradientHelper::createResult(
Primitive2DContainer& rContainer,
- const Primitive2DContainer& rTargetColor,
- const Primitive2DContainer& rTargetOpacity,
+ Primitive2DContainer aTargetColor,
+ Primitive2DContainer aTargetOpacity,
const basegfx::B2DHomMatrix& rUnitGradientToObject,
bool bInvert) const
{
- Primitive2DContainer aTargetColorEntries(rTargetColor.maybeInvert(bInvert));
- Primitive2DContainer aTargetOpacityEntries(rTargetOpacity.maybeInvert(bInvert));
+ Primitive2DContainer aTargetColorEntries(aTargetColor.maybeInvert(bInvert));
+ Primitive2DContainer aTargetOpacityEntries(aTargetOpacity.maybeInvert(bInvert));
if(aTargetColorEntries.empty())
return;
@@ -781,7 +781,7 @@ namespace drawinglayer::primitive2d
fMax);
}
- createResult(rContainer, aTargetColor, aTargetOpacity, aUnitGradientToObject, true);
+ createResult(rContainer, std::move(aTargetColor), std::move(aTargetOpacity), aUnitGradientToObject, true);
}
}
diff --git a/include/drawinglayer/primitive2d/Primitive2DContainer.hxx b/include/drawinglayer/primitive2d/Primitive2DContainer.hxx
index 6c1dc196ca06..2368ea45ceef 100644
--- a/include/drawinglayer/primitive2d/Primitive2DContainer.hxx
+++ b/include/drawinglayer/primitive2d/Primitive2DContainer.hxx
@@ -86,7 +86,7 @@ public:
bool operator==(const Primitive2DContainer& rB) const;
bool operator!=(const Primitive2DContainer& rB) const { return !operator==(rB); }
basegfx::B2DRange getB2DRange(const geometry::ViewInformation2D& aViewInformation) const;
- Primitive2DContainer maybeInvert(bool bInvert = false) const;
+ Primitive2DContainer maybeInvert(bool bInvert = false);
css::uno::Sequence<css::uno::Reference<css::graphic::XPrimitive2D>> toSequence() const;
};
diff --git a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
index 78667f2d06e3..66c68fdaf3bf 100644
--- a/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
+++ b/include/drawinglayer/primitive2d/svggradientprimitive2d.hxx
@@ -134,8 +134,8 @@ namespace drawinglayer::primitive2d
virtual void checkPreconditions();
void createResult(
Primitive2DContainer& rContainer,
- const Primitive2DContainer& rTargetColor,
- const Primitive2DContainer& rTargetOpacity,
+ Primitive2DContainer aTargetColor,
+ Primitive2DContainer aTargetOpacity,
const basegfx::B2DHomMatrix& rUnitGradientToObject,
bool bInvert = false) const;
bool getCreatesContent() const { return mbCreatesContent; }