[Libreoffice-commits] core.git: tools/source

Caolán McNamara caolanm at redhat.com
Mon Dec 11 15:53:15 UTC 2017


 tools/source/generic/poly.cxx |   22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

New commits:
commit 20b349052099aa1ecc00276e484cb84525c4931d
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Dec 11 12:42:59 2017 +0000

    ofz#4592 Direct-leak
    
    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 <Andreas.Brandner at cib.de>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

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<ImplPolygon> 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


More information about the Libreoffice-commits mailing list