From 20b349052099aa1ecc00276e484cb84525c4931d Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Mon, 11 Dec 2017 12:42:59 +0000 Subject: ofz#4592 Direct-leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit regression from commit 225115af05cba9a603130914b49c5b28ed451108 Date: Fri Sep 15 09:17:17 2017 +0200 tdf#62525 tools: use cow_wrapper class for Polygon Change-Id: Ibd9173bfb005f8a30317d95adea4e5fb25f1df1d Reviewed-on: https://gerrit.libreoffice.org/46229 Reviewed-by: Andreas Brandner Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- tools/source/generic/poly.cxx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tools/source/generic/poly.cxx b/tools/source/generic/poly.cxx index 664428426352..d735be9f91eb 100644 --- a/tools/source/generic/poly.cxx +++ b/tools/source/generic/poly.cxx @@ -709,11 +709,11 @@ protected: class ImplPolygonPointFilter : public ImplPointFilter { - std::unique_ptr mxPoly; - sal_uInt16 mnSize; + ImplPolygon maPoly; + sal_uInt16 mnSize; public: explicit ImplPolygonPointFilter(sal_uInt16 nDestSize) - : mxPoly(new ImplPolygon(nDestSize)) + : maPoly(nDestSize) , mnSize(0) { } @@ -725,24 +725,24 @@ public: virtual void LastPoint() override; virtual void Input( const Point& rPoint ) override; - ImplPolygon* release() { return mxPoly.release(); } + ImplPolygon& get() { return maPoly; } }; void ImplPolygonPointFilter::Input( const Point& rPoint ) { - if ( !mnSize || (rPoint != mxPoly->mpPointAry[mnSize-1]) ) + if ( !mnSize || (rPoint != maPoly.mpPointAry[mnSize-1]) ) { mnSize++; - if ( mnSize > mxPoly->mnPoints ) - mxPoly->ImplSetSize( mnSize ); - mxPoly->mpPointAry[mnSize-1] = rPoint; + if ( mnSize > maPoly.mnPoints ) + maPoly.ImplSetSize( mnSize ); + maPoly.mpPointAry[mnSize-1] = rPoint; } } void ImplPolygonPointFilter::LastPoint() { - if ( mnSize < mxPoly->mnPoints ) - mxPoly->ImplSetSize( mnSize ); + if ( mnSize < maPoly.mnPoints ) + maPoly.ImplSetSize( mnSize ); }; class ImplEdgePointFilter : public ImplPointFilter @@ -1494,7 +1494,7 @@ void Polygon::Clip( const tools::Rectangle& rRect ) else aPolygon.LastPoint(); - mpImplPolygon = ImplType(*aPolygon.release()); + mpImplPolygon = ImplType(aPolygon.get()); } tools::Rectangle Polygon::GetBoundRect() const -- cgit