[geos-commits] r2532 - branches/3.1/source/operation/overlay
svn_geos at osgeo.org
svn_geos at osgeo.org
Wed May 27 15:11:05 EDT 2009
Author: pramsey
Date: 2009-05-27 15:11:05 -0400 (Wed, 27 May 2009)
New Revision: 2532
Modified:
branches/3.1/source/operation/overlay/PolygonBuilder.cpp
Log:
Backport r2366 from trunk.
Modified: branches/3.1/source/operation/overlay/PolygonBuilder.cpp
===================================================================
--- branches/3.1/source/operation/overlay/PolygonBuilder.cpp 2009-05-27 19:10:59 UTC (rev 2531)
+++ branches/3.1/source/operation/overlay/PolygonBuilder.cpp 2009-05-27 19:11:05 UTC (rev 2532)
@@ -30,6 +30,7 @@
#include <geos/geom/Polygon.h>
#include <geos/algorithm/CGAlgorithms.h>
#include <geos/util/TopologyException.h>
+#include <geos/util/GEOSException.h>
#include <vector>
#include <cassert>
@@ -183,7 +184,18 @@
if (de->isInResult() && de->getLabel()->isArea()) {
// if this edge has not yet been processed
if (de->getEdgeRing()==NULL) {
- MaximalEdgeRing *er=new MaximalEdgeRing(de,geometryFactory);
+ MaximalEdgeRing *er;
+ try
+ {
+ er=new MaximalEdgeRing(de,geometryFactory);
+ }
+ catch( util::GEOSException& e )
+ {
+ for( size_t i=0, n=maxEdgeRings->size(); i<n; i++)
+ delete (*maxEdgeRings)[i];
+ delete maxEdgeRings;
+ throw;
+ }
maxEdgeRings->push_back(er);
er->setInResult();
//System.out.println("max node degree=" + er.getMaxDegree());
More information about the geos-commits
mailing list