From d30f7435aa7aacb3e196178ebd7407284e6c8230 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Fri, 21 Dec 2018 09:31:35 +0200 Subject: use unique_ptr in hwpfilter Change-Id: I3491777281912e095c9222e83028d358d6826841 Reviewed-on: https://gerrit.libreoffice.org/65522 Tested-by: Jenkins Reviewed-by: Noel Grandin --- hwpfilter/source/hwpreader.cxx | 43 +++++++++++++++--------------------------- 1 file changed, 15 insertions(+), 28 deletions(-) (limited to 'hwpfilter/source/hwpreader.cxx') diff --git a/hwpfilter/source/hwpreader.cxx b/hwpfilter/source/hwpreader.cxx index 642a8df18707..1481c1b8e042 100644 --- a/hwpfilter/source/hwpreader.cxx +++ b/hwpfilter/source/hwpreader.cxx @@ -4360,15 +4360,15 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) int n, i; n = drawobj->u.freeform.npt; - double *xarr = new double[n+1]; - double *yarr = new double[n+1]; - double *tarr = new double[n+1]; + std::unique_ptr xarr( new double[n+1] ); + std::unique_ptr yarr( new double[n+1] ); + std::unique_ptr tarr( new double[n+1] ); - double *xb = nullptr; - double *yb = nullptr; + std::unique_ptr xb; + std::unique_ptr yb; - double *carr = nullptr; - double *darr = nullptr; + std::unique_ptr carr; + std::unique_ptr darr; for( i = 0 ; i < n ; i++ ){ @@ -4381,22 +4381,18 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) tarr[n] = n; if( !bIsNatural ){ - PeriodicSpline(n, tarr, xarr, xb, carr, darr); + PeriodicSpline(n, tarr.get(), xarr.get(), xb, carr, darr); // prevent memory leak - delete[] carr; - carr = nullptr; - delete[] darr; - darr = nullptr; - PeriodicSpline(n, tarr, yarr, yb, carr, darr); + carr.reset(); + darr.reset(); + PeriodicSpline(n, tarr.get(), yarr.get(), yb, carr, darr); } else{ - NaturalSpline(n, tarr, xarr, xb, carr, darr); + NaturalSpline(n, tarr.get(), xarr.get(), xb, carr, darr); // prevent memory leak - delete[] carr; - carr = nullptr; - delete[] darr; - darr = nullptr; - NaturalSpline(n, tarr, yarr, yb, carr, darr); + carr.reset(); + darr.reset(); + NaturalSpline(n, tarr.get(), yarr.get(), yb, carr, darr); } sprintf(buf, "M%d %dC%d %d", WTSM(xarr[0]), WTSM(yarr[0]), @@ -4418,15 +4414,6 @@ void HwpReader::makePictureDRAW(HWPDrawingObject *drawobj, Picture * hbox) oustr.append(ascii(buf)); } - delete[] tarr; - delete[] xarr; - delete[] yarr; - - delete[] xb; - delete[] yb; - - delete[] carr; - delete[] darr; } padd("svg:d", sXML_CDATA, oustr.makeStringAndClear()); -- cgit