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

Reply via email to