From: Glen Low Date: Sat, 12 Dec 2015 00:20:04 +0000 (+0800) Subject: Fix PointSet leak when inserting same point X-Git-Tag: TRAVIS_CI_BUILD_EXPERIMENTAL~26^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=20c63de30e399289eb2a93c4fdeaf9bd845bbf3d;p=graphviz Fix PointSet leak when inserting same point --- diff --git a/lib/common/pointset.c b/lib/common/pointset.c index e0a50c3d9..257d189d2 100644 --- a/lib/common/pointset.c +++ b/lib/common/pointset.c @@ -72,16 +72,23 @@ void freePS(PointSet * ps) void insertPS(PointSet * ps, point pt) { - dtinsert(ps, mkPair(pt)); + pair *pp; + + pp = mkPair(pt); + if (dtinsert(ps, pp) != pp) + free(pp); } void addPS(PointSet * ps, int x, int y) { point pt; + pair *pp; pt.x = x; pt.y = y; - dtinsert(ps, mkPair(pt)); + pp = mkPair(pt); + if (dtinsert(ps, pp) != pp) + free(pp); } int inPS(PointSet * ps, point pt)