chart2/source/view/charttypes/Splines.cxx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-)
New commits: commit 73e5161baef01bf4355d3c0bc2831646192907f2 Author: Noel Grandin <noelgran...@gmail.com> AuthorDate: Fri Dec 15 21:12:41 2023 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Sat Dec 16 12:11:08 2023 +0100 no need to allocate these on the heap Change-Id: I02ec48ba369e91afc67246f9cdf18f88b24af49f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160837 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/chart2/source/view/charttypes/Splines.cxx b/chart2/source/view/charttypes/Splines.cxx index 2aac969291f2..0f089d1b7758 100644 --- a/chart2/source/view/charttypes/Splines.cxx +++ b/chart2/source/view/charttypes/Splines.cxx @@ -24,6 +24,7 @@ #include <vector> #include <algorithm> #include <memory> +#include <optional> #include <cmath> #include <limits> @@ -569,8 +570,8 @@ void SplineCalculater::CalculateCubicSplines( // generate a spline for each coordinate. It holds the complete // information to calculate each point of the curve - std::unique_ptr<lcl_SplineCalculation> aSplineX; - std::unique_ptr<lcl_SplineCalculation> aSplineY; + std::optional<lcl_SplineCalculation> aSplineX; + std::optional<lcl_SplineCalculation> aSplineY; // lcl_SplineCalculation* aSplineZ; the z-coordinates of all points in // a data series are equal. No spline calculation needed, but copy // coordinate to output @@ -580,15 +581,15 @@ void SplineCalculater::CalculateCubicSplines( pOld[ 0 ].PositionZ == pOld[nMaxIndexPoints].PositionZ && nMaxIndexPoints >=2 ) { // periodic spline - aSplineX = std::make_unique<lcl_SplineCalculation>(std::move(aInputX)); - aSplineY = std::make_unique<lcl_SplineCalculation>(std::move(aInputY)); + aSplineX.emplace(std::move(aInputX)); + aSplineY.emplace(std::move(aInputY)); } else // generate the kind "natural spline" { double fXDerivation = std::numeric_limits<double>::infinity(); double fYDerivation = std::numeric_limits<double>::infinity(); - aSplineX = std::make_unique<lcl_SplineCalculation>(std::move(aInputX), fXDerivation, fXDerivation); - aSplineY = std::make_unique<lcl_SplineCalculation>(std::move(aInputY), fYDerivation, fYDerivation); + aSplineX.emplace(std::move(aInputX), fXDerivation, fXDerivation); + aSplineY.emplace(std::move(aInputY), fYDerivation, fYDerivation); } // fill result polygon with calculated values