summaryrefslogtreecommitdiff
path: root/hwpfilter
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-11-10 13:36:34 +0200
committerNoel Grandin <noelgrandin@gmail.com>2015-11-11 07:16:20 +0000
commitdb17d3c17c40d6b0e92392cf3c6e343d1d17b771 (patch)
tree9d562fcf764e7717df9585ef0e735a12ea4aaa16 /hwpfilter
parent2ce9e4be4a438203382cb9cca824ce3e90647f3a (diff)
new loplugin: memoryvar
detect when we can convert a new/delete sequence on a local variable to use std::unique_ptr Change-Id: Iecae4e4197eccdfacfce2eed39aa4a69e4a660bc Reviewed-on: https://gerrit.libreoffice.org/19884 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'hwpfilter')
-rw-r--r--hwpfilter/source/cspline.cxx23
1 files changed, 8 insertions, 15 deletions
diff --git a/hwpfilter/source/cspline.cxx b/hwpfilter/source/cspline.cxx
index 90f8c1c3520d..87d36eeacc0f 100644
--- a/hwpfilter/source/cspline.cxx
+++ b/hwpfilter/source/cspline.cxx
@@ -48,6 +48,7 @@
// usage.
#include <sal/config.h>
+#include <memory>
#include "cspline.h"
#include "solver.h"
@@ -58,9 +59,9 @@ void NaturalSpline (int N, double* x, double* a, double*& b, double*& c,
const double oneThird = 1.0/3.0;
int i;
- double* h = new double[N];
- double* hdiff = new double[N];
- double* alpha = new double[N];
+ std::unique_ptr<double[]> h(new double[N]);
+ std::unique_ptr<double[]> hdiff(new double[N]);
+ std::unique_ptr<double[]> alpha(new double[N]);
for (i = 0; i < N; i++){
h[i] = x[i+1]-x[i];
@@ -76,9 +77,9 @@ void NaturalSpline (int N, double* x, double* a, double*& b, double*& c,
alpha[i] = numer/denom;
}
- double* ell = new double[N+1];
- double* mu = new double[N];
- double* z = new double[N+1];
+ std::unique_ptr<double[]> ell(new double[N+1]);
+ std::unique_ptr<double[]> mu(new double[N]);
+ std::unique_ptr<double[]> z(new double[N+1]);
double recip;
ell[0] = 1.0;
@@ -108,19 +109,12 @@ void NaturalSpline (int N, double* x, double* a, double*& b, double*& c,
b[i] = recip*(a[i+1]-a[i])-h[i]*(c[i+1]+2.0*c[i])*oneThird;
d[i] = oneThird*recip*(c[i+1]-c[i]);
}
-
- delete[] h;
- delete[] hdiff;
- delete[] alpha;
- delete[] ell;
- delete[] mu;
- delete[] z;
}
void PeriodicSpline (int N, double* x, double* a, double*& b, double*& c,
double*& d)
{
- double* h = new double[N];
+ std::unique_ptr<double[]> h(new double[N]);
int i;
for (i = 0; i < N; i++)
h[i] = x[i+1]-x[i];
@@ -163,7 +157,6 @@ void PeriodicSpline (int N, double* x, double* a, double*& b, double*& c,
d[i] = oneThird*(c[i+1]-c[i])/h[i];
}
- delete[] h;
mgcLinearSystemD::DeleteMatrix(N+1,mat);
}