Changeset: 2968c68fa520 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2968c68fa520 Modified Files: geom/monetdb5/geom.c Branch: sfcgal Log Message:
Better error message and avoid a double free (it is left commented for future memory leaks check) diffs (34 lines): diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c --- a/geom/monetdb5/geom.c +++ b/geom/monetdb5/geom.c @@ -3769,6 +3769,7 @@ wkbMakePolygon(wkb **out, wkb **external GEOSGeom geosGeometry, externalGeometry, linearRingGeometry; bit closed = 0; GEOSCoordSeq coordSeq_copy; + int geometryType; if (wkb_isnil(*external) || *srid == int_nil) { if ((*out = wkbNULLcopy()) == NULL) @@ -3781,10 +3782,11 @@ wkbMakePolygon(wkb **out, wkb **external throw(MAL, "geom.Polygon", MAL_MALLOC_FAIL); //check the type of the external geometry - if ((GEOSGeomTypeId(externalGeometry) + 1) != wkbLineString_mdb) { + geometryType = GEOSGeomTypeId(externalGeometry) + 1; + if (geometryType != wkbLineString_mdb) { *out = NULL; GEOSGeom_destroy(externalGeometry); - throw(MAL, "geom.Polygon", "Geometries should be LineString"); + throw(MAL, "geom.Polygon", "Geometries should be LineString, but it is %s.", geom_type2str(geometryType, 0)); } //check whether the linestring is closed wkbIsClosed(&closed, external); @@ -5598,7 +5600,7 @@ BATgroupWKBWKBtoWKB(bat *outBAT_id, BAT outBAT = NULL; throw(MAL, name, "BUNappend failed"); } - GDKfree(grpWKBs[i]); + //GDKfree(grpWKBs[i]); } if (nils < BUN_NONE) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list