diff options
author | Noel Grandin <noel@peralex.com> | 2015-11-10 13:36:34 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2015-11-11 07:16:20 +0000 |
commit | db17d3c17c40d6b0e92392cf3c6e343d1d17b771 (patch) | |
tree | 9d562fcf764e7717df9585ef0e735a12ea4aaa16 /hwpfilter | |
parent | 2ce9e4be4a438203382cb9cca824ce3e90647f3a (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.cxx | 23 |
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); } |