Changeset: ec668da91214 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ec668da91214
Modified Files:
        geom/monetdb5/geom_geojson.c
        geom/monetdb5/geom_x3d.c
        geom/monetdb5/sfcgal.c
Branch: sfcgal
Log Message:

Avoid casts which can lead to errors. Fix optimized compilation.


diffs (122 lines):

diff --git a/geom/monetdb5/geom_geojson.c b/geom/monetdb5/geom_geojson.c
--- a/geom/monetdb5/geom_geojson.c
+++ b/geom/monetdb5/geom_geojson.c
@@ -10,8 +10,8 @@ static char * asgeojson_collection(GEOSG
 static size_t asgeojson_geom_size(GEOSGeom geom, bbox3D *bbox, int precision);
 static size_t asgeojson_geom_buf(GEOSGeom geom, char *output, bbox3D *bbox, 
int precision);
 
-static size_t points_to_geojson(GEOSGeom geom, char *buf, int precision);
-static size_t points_geojson_size(GEOSGeom geom, int precision);
+static size_t points_to_geojson(const GEOSGeometry *geom, char *buf, int 
precision);
+static size_t points_geojson_size(const GEOSGeometry *geom, int precision);
 static void trim_trailing_zeros(char *str);
 
 #define BUFSIZE OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION
@@ -214,7 +214,7 @@ asgeojson_poly_size(GEOSGeom poly, char 
     size += sizeof("\"coordinates\":[");
     for (i=0; i<nrings; i++)
     {
-        size += points_geojson_size(*(GEOSGeom*)GEOSGetInteriorRingN(poly, i), 
precision);
+        size += points_geojson_size(GEOSGetInteriorRingN(poly, i), precision);
         size += sizeof("[]");
     }
     size += sizeof(",") * i;
@@ -237,7 +237,7 @@ asgeojson_poly_buf(GEOSGeom poly, char *
     {
         if (i) ptr += sprintf(ptr, ",");
         ptr += sprintf(ptr, "[");
-        ptr += points_to_geojson(*(GEOSGeom*) GEOSGetInteriorRingN(poly, i), 
ptr, precision);
+        ptr += points_to_geojson(GEOSGetInteriorRingN(poly, i), ptr, 
precision);
         ptr += sprintf(ptr, "]");
     }
     ptr += sprintf(ptr, "]}");
@@ -397,7 +397,7 @@ asgeojson_multipolygon_size(GEOSGeom mpo
         nrings = GEOSGetNumInteriorRings(poly);
         for (j=0 ; j <nrings ; j++)
         {
-            size += points_geojson_size(*(GEOSGeom*)GEOSGetInteriorRingN(poly, 
j), precision);
+            size += points_geojson_size(GEOSGetInteriorRingN(poly, j), 
precision);
             size += sizeof("[]");
         }
         size += sizeof("[]");
@@ -430,7 +430,7 @@ asgeojson_multipolygon_buf(GEOSGeom mpol
         {
             if (j) ptr += sprintf(ptr, ",");
             ptr += sprintf(ptr, "[");
-            ptr += points_to_geojson(*(GEOSGeom*)GEOSGetInteriorRingN(poly, 
j), ptr, precision);
+            ptr += points_to_geojson(GEOSGetInteriorRingN(poly, j), ptr, 
precision);
             ptr += sprintf(ptr, "]");
         }
         ptr += sprintf(ptr, "]");
@@ -611,7 +611,7 @@ print_double(double d, int maxdd, char *
 }
 
 static size_t
-points_to_geojson(GEOSGeom geom, char *output, int precision)
+points_to_geojson(const GEOSGeometry *geom, char *output, int precision)
 {
     uint32_t i;
     char *ptr;
@@ -673,7 +673,7 @@ points_to_geojson(GEOSGeom geom, char *o
 }
 
     static size_t
-points_geojson_size(GEOSGeom geom, int precision)
+points_geojson_size(const GEOSGeometry *geom, int precision)
 {
     uint32_t npoints = 0;
     numPointsGeometry(&npoints, geom);
diff --git a/geom/monetdb5/geom_x3d.c b/geom/monetdb5/geom_x3d.c
--- a/geom/monetdb5/geom_x3d.c
+++ b/geom/monetdb5/geom_x3d.c
@@ -13,9 +13,9 @@ static char *x3d_3_psurface(GEOSGeom psu
 static char *x3d_3_tin(GEOSGeom tin, int precision, int opts, const char 
*defid);
 /*static size_t x3d_3_collection_size(GEOSGeom col, int precision, int opts, 
const char *defid);*/
 /*static char *x3d_3_collection(GEOSGeom col, int precision, int opts, const 
char *defid);*/
-static size_t geom_toX3D3(GEOSGeom geom, char *buf, int precision, int opts, 
int is_closed);
+static size_t geom_toX3D3(const GEOSGeometry *geom, char *buf, int precision, 
int opts, int is_closed);
 
-static size_t geom_X3Dsize(GEOSGeom geom, int precision);
+static size_t geom_X3Dsize(const GEOSGeometry *geom, int precision);
 static void trim_trailing_zeros(char *str);
 
 /*
@@ -279,7 +279,7 @@ x3d_3_poly_buf(GEOSGeom poly, char *outp
     for (i=0; i<nIntRings; i++)
     {
         ptr += sprintf(ptr, " ");
-        ptr += geom_toX3D3(*(GEOSGeom*)GEOSGetInteriorRingN(poly, i), ptr, 
precision, opts,1);
+        ptr += geom_toX3D3(GEOSGetInteriorRingN(poly, i), ptr, precision, 
opts,1);
     }
     return (ptr-output);
 }
@@ -702,7 +702,7 @@ x3d_3_collection(GEOSGeom col, int preci
 #endif
 
 static size_t
-geom_toX3D3(GEOSGeom geom, char *output, int precision, int opts, int 
is_closed)
+geom_toX3D3(const GEOSGeometry *geom, char *output, int precision, int opts, 
int is_closed)
 {
     uint32_t i;
     char *ptr;
@@ -793,7 +793,7 @@ geom_toX3D3(GEOSGeom geom, char *output,
 }
 
 static size_t
-geom_X3Dsize(GEOSGeom geom, int precision)
+geom_X3Dsize(const GEOSGeometry *geom, int precision)
 {
     uint32_t npoints = 0;
     numPointsGeometry(&npoints, geom);
diff --git a/geom/monetdb5/sfcgal.c b/geom/monetdb5/sfcgal.c
--- a/geom/monetdb5/sfcgal.c
+++ b/geom/monetdb5/sfcgal.c
@@ -580,7 +580,7 @@ geom_to_sfcgal(sfcgal_geometry_t **res, 
 
                 for (i = 0; i < numInteriorRings; i++)
                 {
-                    sfcgal_geometry_t* ring = sfcgal_from_geom(&ret, 
*(GEOSGeom*)GEOSGetInteriorRingN(geosGeometry, i), wkbLineString_mdb);
+                    sfcgal_geometry_t* ring = sfcgal_from_geom(&ret, 
GEOSGetInteriorRingN(geosGeometry, i), wkbLineString_mdb);
                     sfcgal_polygon_add_interior_ring(ret_geom, ring);
                 }
                 *res = ret_geom;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to