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