]> granicus.if.org Git - postgis/commitdiff
Initialie GEOS using lwerror for errors so that exceptions are really handled (or...
authorSandro Santilli <strk@keybit.net>
Mon, 8 Feb 2010 21:39:57 +0000 (21:39 +0000)
committerSandro Santilli <strk@keybit.net>
Mon, 8 Feb 2010 21:39:57 +0000 (21:39 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@5220 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/lwgeom_geos.c

index 4f6d50acaf08b2f6df1d1c06bf0e0783e3394f70..07151fa2ac253a669c2307a7dcb2766316a92a71 100644 (file)
@@ -139,7 +139,7 @@ Datum hausdorffdistance(PG_FUNCTION_ARGS)
        geom1 = (PG_LWGEOM *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
        geom2 = (PG_LWGEOM *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
        g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
@@ -182,7 +182,7 @@ Datum hausdorffdistancedensify(PG_FUNCTION_ARGS)
        geom2 = (PG_LWGEOM *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(1));
        densifyFrac = PG_GETARG_FLOAT8(2);
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
        g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
@@ -265,7 +265,7 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
        }
 
        /* Ok, we really need geos now ;) */
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        /*
        ** First, see if all our elements are POLYGON/MULTIPOLYGON
@@ -525,7 +525,7 @@ Datum geomunion(PG_FUNCTION_ARGS)
        SRID = pglwgeom_getSRID(geom1);
        errorIfSRIDMismatch(SRID, pglwgeom_getSRID(geom2));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -606,7 +606,7 @@ Datum symdifference(PG_FUNCTION_ARGS)
        SRID = pglwgeom_getSRID(geom1);
        errorIfSRIDMismatch(SRID, pglwgeom_getSRID(geom2));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -675,7 +675,7 @@ Datum boundary(PG_FUNCTION_ARGS)
 
        SRID = pglwgeom_getSRID(geom1);
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1 );
@@ -738,7 +738,7 @@ Datum convexhull(PG_FUNCTION_ARGS)
        geom1 = (PG_LWGEOM *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
        SRID = pglwgeom_getSRID(geom1);
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -813,7 +813,7 @@ Datum topologypreservesimplify(PG_FUNCTION_ARGS)
        geom1 = (PG_LWGEOM *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
        tolerance = PG_GETARG_FLOAT8(1);
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
        g3 = GEOSTopologyPreserveSimplify(g1,tolerance);
@@ -885,7 +885,7 @@ Datum buffer(PG_FUNCTION_ARGS)
 
        nargs = PG_NARGS();
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -1083,7 +1083,7 @@ Datum intersection(PG_FUNCTION_ARGS)
        SRID = pglwgeom_getSRID(geom1);
        errorIfSRIDMismatch(SRID, pglwgeom_getSRID(geom2));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        POSTGIS_DEBUG(3, "intersection() START");
 
@@ -1171,7 +1171,7 @@ Datum difference(PG_FUNCTION_ARGS)
        SRID = pglwgeom_getSRID(geom1);
        errorIfSRIDMismatch(SRID, pglwgeom_getSRID(geom2));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -1240,7 +1240,7 @@ Datum pointonsurface(PG_FUNCTION_ARGS)
 
        geom1 = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -1296,7 +1296,7 @@ Datum centroid(PG_FUNCTION_ARGS)
 
        geom = (PG_LWGEOM *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        geosgeom = (GEOSGeometry *)POSTGIS2GEOS(geom);
@@ -1610,7 +1610,7 @@ Datum overlaps(PG_FUNCTION_ARGS)
                if ( box2.ymin > box2.ymax ) PG_RETURN_BOOL(FALSE);
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -1742,7 +1742,7 @@ Datum contains(PG_FUNCTION_ARGS)
                POSTGIS_DEBUGF(3, "Contains: type1: %d, type2: %d", type1, type2);
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
 #ifdef PREPARED_GEOM
        prep_cache = GetPrepGeomCache( fcinfo, geom1, 0 );
@@ -1808,7 +1808,7 @@ Datum containsproperly(PG_FUNCTION_ARGS)
                        PG_RETURN_BOOL(FALSE);
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
 #ifdef PREPARED_GEOM
        prep_cache = GetPrepGeomCache( fcinfo, geom1, 0 );
@@ -1943,7 +1943,7 @@ Datum covers(PG_FUNCTION_ARGS)
                POSTGIS_DEBUGF(3, "Covers: type1: %d, type2: %d", type1, type2);
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
 #ifdef PREPARED_GEOM
        prep_cache = GetPrepGeomCache( fcinfo, geom1, 0 );
@@ -2071,7 +2071,7 @@ Datum within(PG_FUNCTION_ARGS)
                }
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -2203,7 +2203,7 @@ Datum coveredby(PG_FUNCTION_ARGS)
                }
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -2269,7 +2269,7 @@ Datum crosses(PG_FUNCTION_ARGS)
                }
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -2408,7 +2408,7 @@ Datum intersects(PG_FUNCTION_ARGS)
                }
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 #ifdef PREPARED_GEOM
        prep_cache = GetPrepGeomCache( fcinfo, geom1, geom2 );
 
@@ -2482,7 +2482,7 @@ Datum touches(PG_FUNCTION_ARGS)
                }
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1 );
@@ -2547,7 +2547,7 @@ Datum disjoint(PG_FUNCTION_ARGS)
                }
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -2596,7 +2596,7 @@ Datum relate_pattern(PG_FUNCTION_ARGS)
        errorIfGeometryCollection(geom1,geom2);
        errorIfSRIDMismatch(pglwgeom_getSRID(geom1), pglwgeom_getSRID(geom2));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
        g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2);
@@ -2650,7 +2650,7 @@ Datum relate_full(PG_FUNCTION_ARGS)
        errorIfGeometryCollection(geom1,geom2);
        errorIfSRIDMismatch(pglwgeom_getSRID(geom1), pglwgeom_getSRID(geom2));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1 );
        g2 = (GEOSGeometry *)POSTGIS2GEOS(geom2 );
@@ -2728,7 +2728,7 @@ Datum geomequals(PG_FUNCTION_ARGS)
                if ( box2.ymin != box2.ymin ) PG_RETURN_BOOL(FALSE);
        }
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -2774,7 +2774,7 @@ Datum issimple(PG_FUNCTION_ARGS)
        if (lwgeom_getnumgeometries(SERIALIZED_FORM(geom)) == 0)
                PG_RETURN_BOOL(true);
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom);
        result = GEOSisSimple(g1);
@@ -2808,7 +2808,7 @@ Datum isring(PG_FUNCTION_ARGS)
        if (lwgeom_getnumgeometries(SERIALIZED_FORM(geom)) == 0)
                PG_RETURN_BOOL(false);
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom );
        result = GEOSisRing(g1);
@@ -3252,7 +3252,7 @@ Datum polygonize_garray(PG_FUNCTION_ARGS)
        if ( nelems == 0 ) PG_RETURN_NULL();
 
        /* Ok, we really need geos now ;) */
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        vgeoms = palloc(sizeof(GEOSGeometry *)*nelems);
        offset = 0;
@@ -3313,7 +3313,7 @@ Datum linemerge(PG_FUNCTION_ARGS)
 
        geom1 = (PG_LWGEOM *)  PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        PROFSTART(PROF_P2G1);
        g1 = (GEOSGeometry *)POSTGIS2GEOS(geom1);
@@ -3393,7 +3393,7 @@ Datum LWGEOM_buildarea(PG_FUNCTION_ARGS)
 
        POSTGIS_DEBUGF(3, "LWGEOM_buildarea got geom @ %p", geom);
 
-       initGEOS(lwnotice, lwnotice);
+       initGEOS(lwnotice, lwerror);
 
        vgeoms[0] = (const GEOSGeometry *)POSTGIS2GEOS(geom);
        geos_result = GEOSPolygonize(vgeoms, 1);