summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2022-05-29 08:37:27 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-05-29 11:22:16 +0200
commit8ec7b04808b8aca32e2c38b8042af9b3c9bbe071 (patch)
treec1b09bdc8ac81331f64bc0eda14d575b16a44348 /drawinglayer
parentc7e190f62c93a31f67b8cf8d7fa539cd0c155d5b (diff)
simplify and improve maybeInvert
(*) we can move the data rather than copying (*) it should definitely not be const (*) we can use STL functions to do most of the work Change-Id: I02b4cbbdeed0588d592f24942d31608f2119561c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135083 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/source/primitive2d/Primitive2DContainer.cxx21
-rw-r--r--drawinglayer/source/primitive2d/svggradientprimitive2d.cxx10
2 files changed, 9 insertions, 22 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);
}
}