]> granicus.if.org Git - postgis/commitdiff
Use fixed width integers.
authorDarafei Praliaskouski <me@komzpa.net>
Fri, 12 Jan 2018 13:34:32 +0000 (13:34 +0000)
committerDarafei Praliaskouski <me@komzpa.net>
Fri, 12 Jan 2018 13:34:32 +0000 (13:34 +0000)
Patch by Raúl Marín Rodríguez.

Closes #3970
Closes https://github.com/postgis/postgis/pull/183

git-svn-id: http://svn.osgeo.org/postgis/trunk@16270 b70326c6-7e19-0410-871a-916f4a2858ee

101 files changed:
liblwgeom/cunit/cu_effectivearea.c
liblwgeom/cunit/cu_geodetic.c
liblwgeom/cunit/cu_geos.c
liblwgeom/cunit/cu_libgeom.c
liblwgeom/cunit/cu_unionfind.c
liblwgeom/effectivearea.c
liblwgeom/g_box.c
liblwgeom/g_serialized.c
liblwgeom/g_util.c
liblwgeom/liblwgeom.h.in
liblwgeom/liblwgeom_internal.h
liblwgeom/lwalgorithm.c
liblwgeom/lwcircstring.c
liblwgeom/lwcollection.c
liblwgeom/lwcompound.c
liblwgeom/lwcurvepoly.c
liblwgeom/lwgeodetic.c
liblwgeom/lwgeodetic.h
liblwgeom/lwgeodetic_tree.c
liblwgeom/lwgeodetic_tree.h
liblwgeom/lwgeom.c
liblwgeom/lwgeom_api.c
liblwgeom/lwgeom_debug.c
liblwgeom/lwgeom_geos.c
liblwgeom/lwgeom_geos_clean.c
liblwgeom/lwgeom_geos_split.c
liblwgeom/lwgeom_topo.c
liblwgeom/lwgeom_transform.c
liblwgeom/lwgeom_wrapx.c
liblwgeom/lwhomogenize.c
liblwgeom/lwin_twkb.c
liblwgeom/lwin_wkb.c
liblwgeom/lwin_wkt.c
liblwgeom/lwin_wkt_lex.c
liblwgeom/lwkmeans.c
liblwgeom/lwline.c
liblwgeom/lwlinearreferencing.c
liblwgeom/lwmline.c
liblwgeom/lwmpoint.c
liblwgeom/lwmpoly.c
liblwgeom/lwout_encoded_polyline.c
liblwgeom/lwout_geojson.c
liblwgeom/lwout_gml.c
liblwgeom/lwout_kml.c
liblwgeom/lwout_svg.c
liblwgeom/lwout_twkb.c
liblwgeom/lwout_wkb.c
liblwgeom/lwout_wkt.c
liblwgeom/lwout_x3d.c
liblwgeom/lwpoly.c
liblwgeom/lwpsurface.c
liblwgeom/lwspheroid.c
liblwgeom/lwstroke.c
liblwgeom/lwtin.c
liblwgeom/lwtriangle.c
liblwgeom/measures.c
liblwgeom/measures3d.c
liblwgeom/ptarray.c
libpgcommon/gserialized_gist.c
loader/pgsql2shp-core.c
loader/shp2pgsql-core.c
loader/shpopen.c
postgis/geobuf.c
postgis/geometry_inout.c
postgis/gserialized_estimate.c
postgis/gserialized_gist_nd.c
postgis/lwgeom_box.c
postgis/lwgeom_box3d.c
postgis/lwgeom_dump.c
postgis/lwgeom_dumppoints.c
postgis/lwgeom_functions_analytic.c
postgis/lwgeom_functions_basic.c
postgis/lwgeom_functions_lrs.c
postgis/lwgeom_geos.c
postgis/lwgeom_inout.c
postgis/lwgeom_ogc.c
postgis/lwgeom_rtree.c
postgis/mvt.c
raster/loader/raster2pgsql.c
raster/loader/raster2pgsql.h
raster/rt_core/librtcore.h
raster/rt_core/rt_band.c
raster/rt_core/rt_mapalgebra.c
raster/rt_core/rt_pixel.c
raster/rt_core/rt_raster.c
raster/rt_core/rt_statistics.c
raster/rt_pg/rtpg_internal.c
raster/rt_pg/rtpg_internal.h
raster/rt_pg/rtpg_mapalgebra.c
raster/rt_pg/rtpg_pixel.c
raster/rt_pg/rtpg_spatial_relationship.c
raster/rt_pg/rtpg_statistics.c
raster/rt_pg/rtpostgis.c
raster/test/cunit/cu_band_misc.c
raster/test/cunit/cu_gdal.c
regress/knn_recheck.sql
regress/knn_recheck_expected
topology/test/regress/st_modedgeheal.sql
topology/test/regress/st_modedgeheal_expected
topology/test/regress/st_newedgeheal.sql
topology/test/regress/st_newedgeheal_expected

index 315cbe16536afe378ce4a118d895e265f4c5ca35..c433e43c1fa902593733c5aba8ff4252691df175 100644 (file)
@@ -23,7 +23,7 @@
 static void do_test_lwgeom_effectivearea(POINTARRAY *pa,double *the_areas,int avoid_collaps)
 {
 
-       int i;
+       uint32_t i;
        EFFECTIVE_AREAS *ea;
 
        ea=initiate_effectivearea(pa);
index fa829850e0ce7fc9ff87ccec3284955f9c7fe60b..60f0dffa05d80738000edbba3c472a32f334a6ed 100644 (file)
@@ -584,7 +584,7 @@ static void test_edge_intersects(void)
 {
        POINT3D A1, A2, B1, B2;
        GEOGRAPHIC_POINT g;
-       int rv;
+       uint32_t rv;
 
        /* Covers case, end-to-end intersection */
        line2pts("LINESTRING(50 -10.999999999999998224, -10.0 50.0)", &A1, &A2);
index e39163b5ee26c0c86d110f06149360e4c93b4494..186b2fc486ffc447b89bc2c8ea6717657b61f020 100644 (file)
@@ -22,7 +22,7 @@
 
 static void test_geos_noop(void)
 {
-       int i;
+       size_t i;
 
        char *ewkt[] =
        {
index 1f086018571ad48b563d80e9fcf73bd7e70095c3..55625d2eeaec761c1ef5b5f54e383d5304ac953a 100644 (file)
@@ -257,7 +257,7 @@ static void test_lwgeom_from_gserialized(void)
        GSERIALIZED *g;
        char *in_ewkt;
        char *out_ewkt;
-       int i = 0;
+       size_t i = 0;
 
        char *ewkt[] =
        {
@@ -698,7 +698,7 @@ static void test_f2d(void)
  */
 static void test_lwgeom_clone(void)
 {
-       int i;
+       size_t i;
 
        char *ewkt[] =
        {
index c69fb57b16e54ccdc6a3c7821a24e52055a1c54c..2231298667c326528a370f1458208c312c3fe46c 100644 (file)
@@ -151,7 +151,7 @@ static void test_unionfind_collapse_cluster_ids(void)
        uint32_t expected_collapsed_ids2[] = { 8, 0, 0, 0, 7, 0, 8, 7, 8, 7 };
 
        collapsed_ids = UF_get_collapsed_cluster_ids(uf, is_in_cluster);
-       int i;
+       uint32_t i;
        for (i = 0; i < uf->N; i++)
        {
                if (is_in_cluster[i])
index b8ad4b2de1485514888be5874592a9177dd6c3b8..d756ed60c4af2877fe6eca7a7888030896771694 100644 (file)
@@ -402,7 +402,7 @@ void ptarray_calc_areas(EFFECTIVE_AREAS *ea, int avoid_collaps, int set_area, do
 static POINTARRAY * ptarray_set_effective_area(POINTARRAY *inpts,int avoid_collaps,int set_area, double trshld)
 {
        LWDEBUG(2, "Entered  ptarray_set_effective_area");
-       int p;
+       uint32_t p;
        POINT4D pt;
        EFFECTIVE_AREAS *ea;
        POINTARRAY *opts;
@@ -477,7 +477,7 @@ static LWLINE* lwline_set_effective_area(const LWLINE *iline,int set_area, doubl
 static LWPOLY* lwpoly_set_effective_area(const LWPOLY *ipoly,int set_area, double trshld)
 {
        LWDEBUG(2, "Entered  lwpoly_set_effective_area");
-       int i;
+       uint32_t i;
        int set_m;
        int avoid_collapse=4;
        if(set_area)
@@ -516,7 +516,7 @@ static LWPOLY* lwpoly_set_effective_area(const LWPOLY *ipoly,int set_area, doubl
 static LWCOLLECTION* lwcollection_set_effective_area(const LWCOLLECTION *igeom,int set_area, double trshld)
 {
        LWDEBUG(2, "Entered  lwcollection_set_effective_area");
-       int i;
+       uint32_t i;
        int set_m;
        if(set_area)
                set_m=1;
index c6f25357f852374889998c941c59e79f53f6aa2a..2fd53dd6f27795ee8762756302cf6b04deeb1f4e 100644 (file)
@@ -546,7 +546,7 @@ static int lw_arc_calculate_gbox_cartesian(const POINT4D *p1, const POINT4D *p2,
 
 int ptarray_calculate_gbox_cartesian(const POINTARRAY *pa, GBOX *gbox )
 {
-       int i;
+       uint32_t i;
        POINT4D p;
        int has_z, has_m;
 
@@ -593,7 +593,7 @@ static int lwcircstring_calculate_gbox_cartesian(LWCIRCSTRING *curve, GBOX *gbox
        uint8_t flags = gflags(FLAGS_GET_Z(curve->flags), FLAGS_GET_M(curve->flags), 0);
        GBOX tmp;
        POINT4D p1, p2, p3;
-       int i;
+       uint32_t i;
 
        if ( ! curve ) return LW_FAILURE;
        if ( curve->points->npoints < 3 ) return LW_FAILURE;
@@ -648,7 +648,7 @@ static int lwpoly_calculate_gbox_cartesian(LWPOLY *poly, GBOX *gbox)
 static int lwcollection_calculate_gbox_cartesian(LWCOLLECTION *coll, GBOX *gbox)
 {
        GBOX subbox;
-       int i;
+       uint32_t i;
        int result = LW_FAILURE;
        int first = LW_TRUE;
        assert(coll);
index 92b07f05dba78516f4b964825f9a1b878216f960..55fdfa24cdfe4f290748f0d0e783443b6ad25428 100644 (file)
@@ -715,7 +715,7 @@ static size_t gserialized_from_lwtriangle_size(const LWTRIANGLE *triangle)
 static size_t gserialized_from_lwpoly_size(const LWPOLY *poly)
 {
        size_t size = 4; /* Type number. */
-       int i = 0;
+       uint32_t i = 0;
 
        assert(poly);
 
@@ -751,7 +751,7 @@ static size_t gserialized_from_lwcircstring_size(const LWCIRCSTRING *curve)
 static size_t gserialized_from_lwcollection_size(const LWCOLLECTION *col)
 {
        size_t size = 4; /* Type number. */
-       int i = 0;
+       uint32_t i = 0;
 
        assert(col);
 
@@ -902,7 +902,7 @@ static size_t gserialized_from_lwline(const LWLINE *line, uint8_t *buf)
 
 static size_t gserialized_from_lwpoly(const LWPOLY *poly, uint8_t *buf)
 {
-       int i;
+       uint32_t i;
        uint8_t *loc;
        int ptsize;
        int type = POLYGONTYPE;
@@ -1034,7 +1034,7 @@ static size_t gserialized_from_lwcollection(const LWCOLLECTION *coll, uint8_t *b
 {
        size_t subsize = 0;
        uint8_t *loc;
-       int i;
+       uint32_t i;
        int type;
 
        assert(coll);
@@ -1312,7 +1312,7 @@ static LWPOLY* lwpoly_from_gserialized_buffer(uint8_t *data_ptr, uint8_t g_flags
        LWPOLY *poly;
        uint8_t *ordinate_ptr;
        uint32_t nrings = 0;
-       int i = 0;
+       uint32_t i = 0;
 
        assert(data_ptr);
 
@@ -1431,7 +1431,7 @@ static LWCOLLECTION* lwcollection_from_gserialized_buffer(uint8_t *data_ptr, uin
        uint8_t *start_ptr = data_ptr;
        LWCOLLECTION *collection;
        uint32_t ngeoms = 0;
-       int i = 0;
+       uint32_t i = 0;
 
        assert(data_ptr);
 
index 3f8048693bb3ce59bc96ec60c58d4f995d0cb938..915f93fcac622e56f0f0e278ba06808a8e75919c 100644 (file)
@@ -163,8 +163,8 @@ uint8_t gflags(int hasz, int hasm, int geodetic)
 int geometry_type_from_string(const char *str, uint8_t *type, int *z, int *m)
 {
        char *tmpstr;
-       int tmpstartpos, tmpendpos;
-       int i;
+       size_t tmpstartpos, tmpendpos;
+       size_t i;
 
        assert(str);
        assert(type);
@@ -188,7 +188,7 @@ int geometry_type_from_string(const char *str, uint8_t *type, int *z, int *m)
        }
 
        tmpendpos = strlen(str) - 1;
-       for (i = strlen(str) - 1; i >= 0; i--)
+       for (i = strlen(str) - 1; i != 0; i--)
        {
                if (str[i] != ' ')
                {
index ea8c9e5de48ddd1f56babdff3ca8b103fe1f5b01..56d73cd48bdab6bc8f2176aa751349671757349a 100644 (file)
@@ -367,8 +367,8 @@ typedef struct
        /* Use FLAGS_* macros to handle */
        uint8_t  flags;
 
-       int npoints;   /* how many points we are currently storing */
-       int maxpoints; /* how many points we have space for in serialized_pointlist */
+       uint32_t npoints;   /* how many points we are currently storing */
+       uint32_t maxpoints; /* how many points we have space for in serialized_pointlist */
 }
 POINTARRAY;
 
@@ -451,8 +451,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int nrings;   /* how many rings we are currently storing */
-       int maxrings; /* how many rings we have space for in **rings */
+       uint32_t nrings;   /* how many rings we are currently storing */
+       uint32_t maxrings; /* how many rings we have space for in **rings */
        POINTARRAY **rings; /* list of rings (list of points) */
 }
 LWPOLY; /* "light-weight polygon" */
@@ -464,8 +464,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWPOINT **geoms;
 }
 LWMPOINT;
@@ -477,8 +477,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWLINE **geoms;
 }
 LWMLINE;
@@ -490,8 +490,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWPOLY **geoms;
 }
 LWMPOLY;
@@ -503,8 +503,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWGEOM **geoms;
 }
 LWCOLLECTION;
@@ -516,8 +516,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWGEOM **geoms;
 }
 LWCOMPOUND; /* "light-weight compound line" */
@@ -529,8 +529,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int nrings;    /* how many rings we are currently storing */
-       int maxrings;  /* how many rings we have space for in **rings */
+       uint32_t nrings;    /* how many rings we are currently storing */
+       uint32_t maxrings;  /* how many rings we have space for in **rings */
        LWGEOM **rings; /* list of rings (list of points) */
 }
 LWCURVEPOLY; /* "light-weight polygon" */
@@ -542,8 +542,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWGEOM **geoms;
 }
 LWMCURVE;
@@ -555,8 +555,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWGEOM **geoms;
 }
 LWMSURFACE;
@@ -568,8 +568,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWPOLY **geoms;
 }
 LWPSURFACE;
@@ -581,8 +581,8 @@ typedef struct
        uint8_t flags;
        GBOX *bbox;
        int32_t srid;
-       int ngeoms;   /* how many geometries we are currently storing */
-       int maxgeoms; /* how many geometries we have space for in **geoms */
+       uint32_t ngeoms;   /* how many geometries we are currently storing */
+       uint32_t maxgeoms; /* how many geometries we have space for in **geoms */
        LWTRIANGLE **geoms;
 }
 LWTIN;
@@ -768,7 +768,7 @@ extern int lwtype_is_collection(uint8_t type);
 /**
 * Given an lwtype number, what homogeneous collection can hold it?
 */
-extern int lwtype_get_collectiontype(uint8_t type);
+extern uint32_t lwtype_get_collectiontype(uint8_t type);
 
 /**
 * Return the type name string associated with a type number
@@ -785,7 +785,7 @@ extern const char *lwtype_name(uint8_t type);
  * will set point's m=0 (or NaN) if pa is 3d or 2d
  * NOTE: point is a real POINT3D *not* a pointer
  */
-extern POINT4D getPoint4d(const POINTARRAY *pa, int n);
+extern POINT4D getPoint4d(const POINTARRAY *pa, uint32_t n);
 
 /*
  * copies a point from the point array into the parameter point
@@ -793,23 +793,23 @@ extern POINT4D getPoint4d(const POINTARRAY *pa, int n);
  * will set point's m=0 (or NaN) if pa is 3d or 2d
  * NOTE: this will modify the point4d pointed to by 'point'.
  */
-extern int getPoint4d_p(const POINTARRAY *pa, int n, POINT4D *point);
+extern int getPoint4d_p(const POINTARRAY *pa, uint32_t n, POINT4D *point);
 
 /*
  * copies a point from the point array into the parameter point
  * will set point's z=0 (or NaN) if pa is 2d
  * NOTE: point is a real POINT3D *not* a pointer
  */
-extern POINT3DZ getPoint3dz(const POINTARRAY *pa, int n);
-extern POINT3DM getPoint3dm(const POINTARRAY *pa, int n);
+extern POINT3DZ getPoint3dz(const POINTARRAY *pa, uint32_t n);
+extern POINT3DM getPoint3dm(const POINTARRAY *pa, uint32_t n);
 
 /*
  * copies a point from the point array into the parameter point
  * will set point's z=0 (or NaN) if pa is 2d
  * NOTE: this will modify the point3d pointed to by 'point'.
  */
-extern int getPoint3dz_p(const POINTARRAY *pa, int n, POINT3DZ *point);
-extern int getPoint3dm_p(const POINTARRAY *pa, int n, POINT3DM *point);
+extern int getPoint3dz_p(const POINTARRAY *pa, uint32_t n, POINT3DZ *point);
+extern int getPoint3dm_p(const POINTARRAY *pa, uint32_t n, POINT3DM *point);
 
 
 /*
@@ -817,14 +817,14 @@ extern int getPoint3dm_p(const POINTARRAY *pa, int n, POINT3DM *point);
  * z value (if present is not returned)
  * NOTE: point is a real POINT3D *not* a pointer
  */
-extern POINT2D getPoint2d(const POINTARRAY *pa, int n);
+extern POINT2D getPoint2d(const POINTARRAY *pa, uint32_t n);
 
 /*
  * copies a point from the point array into the parameter point
  * z value (if present is not returned)
  * NOTE: this will modify the point2d pointed to by 'point'.
  */
-extern int getPoint2d_p(const POINTARRAY *pa, int n, POINT2D *point);
+extern int getPoint2d_p(const POINTARRAY *pa, uint32_t n, POINT2D *point);
 
 /**
 * Returns a POINT2D pointer into the POINTARRAY serialized_ptlist,
@@ -832,7 +832,7 @@ extern int getPoint2d_p(const POINTARRAY *pa, int n, POINT2D *point);
 * and declared const because you aren't allowed to muck with the
 * values, only read them.
 */
-extern const POINT2D* getPoint2d_cp(const POINTARRAY *pa, int n);
+extern const POINT2D* getPoint2d_cp(const POINTARRAY *pa, uint32_t n);
 
 /**
 * Returns a POINT3DZ pointer into the POINTARRAY serialized_ptlist,
@@ -840,7 +840,7 @@ extern const POINT2D* getPoint2d_cp(const POINTARRAY *pa, int n);
 * and declared const because you aren't allowed to muck with the
 * values, only read them.
 */
-extern const POINT3DZ* getPoint3dz_cp(const POINTARRAY *pa, int n);
+extern const POINT3DZ* getPoint3dz_cp(const POINTARRAY *pa, uint32_t n);
 
 /**
 * Returns a POINT4D pointer into the POINTARRAY serialized_ptlist,
@@ -848,7 +848,7 @@ extern const POINT3DZ* getPoint3dz_cp(const POINTARRAY *pa, int n);
 * and declared const because you aren't allowed to muck with the
 * values, only read them.
 */
-extern const POINT4D* getPoint4d_cp(const POINTARRAY *pa, int n);
+extern const POINT4D* getPoint4d_cp(const POINTARRAY *pa, uint32_t n);
 
 /*
  * set point N to the given value
@@ -858,7 +858,7 @@ extern const POINT4D* getPoint4d_cp(const POINTARRAY *pa, int n);
  *
  * N must be a valid point index
  */
-extern void ptarray_set_point4d(POINTARRAY *pa, int n, const POINT4D *p4d);
+extern void ptarray_set_point4d(POINTARRAY *pa, uint32_t n, const POINT4D *p4d);
 
 /*
  * get a pointer to nth point of a POINTARRAY
@@ -869,13 +869,13 @@ extern void ptarray_set_point4d(POINTARRAY *pa, int n, const POINT4D *p4d);
  * WARNING: Don't cast this to a POINT !
  * it would not be reliable due to memory alignment constraints
  */
-extern uint8_t *getPoint_internal(const POINTARRAY *pa, int n);
+extern uint8_t *getPoint_internal(const POINTARRAY *pa, uint32_t n);
 
 /*
  * size of point represeneted in the POINTARRAY
  * 16 for 2d, 24 for 3d, 32 for 4d
  */
-extern int ptarray_point_size(const POINTARRAY *pa);
+extern size_t ptarray_point_size(const POINTARRAY *pa);
 
 
 /**
@@ -926,13 +926,13 @@ extern int ptarray_append_ptarray(POINTARRAY *pa1, POINTARRAY *pa2, double gap_t
 * Insert a point into an existing #POINTARRAY. Zero
 * is the index of the start of the array.
 */
-extern int ptarray_insert_point(POINTARRAY *pa, const POINT4D *p, int where);
+extern int ptarray_insert_point(POINTARRAY *pa, const POINT4D *p, uint32_t where);
 
 /**
 * Remove a point from an existing #POINTARRAY. Zero
 * is the index of the start of the array.
 */
-extern int ptarray_remove_point(POINTARRAY *pa, int where);
+extern int ptarray_remove_point(POINTARRAY *pa, uint32_t where);
 
 /**
  * @brief Add a point in a pointarray.
@@ -1015,7 +1015,7 @@ extern int lwpoint_getPoint4d_p(const LWPOINT *point, POINT4D *out);
 /**
  * Add a LWPOINT to an LWLINE
  */
-extern int lwline_add_lwpoint(LWLINE *line, LWPOINT *point, int where);
+extern int lwline_add_lwpoint(LWLINE *line, LWPOINT *point, uint32_t where);
 
 /**
  * Interpolate one or more points along a line
@@ -1206,12 +1206,12 @@ extern double lwgeom_perimeter(const LWGEOM *geom);
 extern double lwgeom_perimeter_2d(const LWGEOM *geom);
 extern int lwgeom_dimension(const LWGEOM *geom);
 
-extern LWPOINT* lwline_get_lwpoint(const LWLINE *line, int where);
-extern LWPOINT* lwcircstring_get_lwpoint(const LWCIRCSTRING *circ, int where);
+extern LWPOINT* lwline_get_lwpoint(const LWLINE *line, uint32_t where);
+extern LWPOINT* lwcircstring_get_lwpoint(const LWCIRCSTRING *circ, uint32_t where);
 
 extern LWPOINT* lwcompound_get_startpoint(const LWCOMPOUND *lwcmp);
 extern LWPOINT* lwcompound_get_endpoint(const LWCOMPOUND *lwcmp);
-extern LWPOINT* lwcompound_get_lwpoint(const LWCOMPOUND *lwcmp, int where);
+extern LWPOINT* lwcompound_get_lwpoint(const LWCOMPOUND *lwcmp, uint32_t where);
 
 extern double ptarray_length_2d(const POINTARRAY *pts);
 extern int pt_in_ring_2d(const POINT2D *p, const POINTARRAY *ring);
@@ -1283,13 +1283,13 @@ extern int lwgeom_needs_bbox(const LWGEOM *geom);
 /**
 * Count the total number of vertices in any #LWGEOM.
 */
-extern int lwgeom_count_vertices(const LWGEOM *geom);
+extern uint32_t lwgeom_count_vertices(const LWGEOM *geom);
 
 /**
 * Count the total number of rings in any #LWGEOM. Multipolygons
 * and other collections get counted, not the same as OGC st_numrings.
 */
-extern int lwgeom_count_rings(const LWGEOM *geom);
+extern uint32_t lwgeom_count_rings(const LWGEOM *geom);
 
 /**
 * Return true or false depending on whether a geometry has
@@ -1487,9 +1487,9 @@ extern LWCOLLECTION *lwcollection_segmentize2d(const LWCOLLECTION *coll, double
 /*
  * Point density functions
  */
-extern LWMPOINT *lwpoly_to_points(const LWPOLY *poly, int npoints);
-extern LWMPOINT *lwmpoly_to_points(const LWMPOLY *mpoly, int npoints);
-extern LWMPOINT *lwgeom_to_points(const LWGEOM *lwgeom, int npoints);
+extern LWMPOINT *lwpoly_to_points(const LWPOLY *poly, uint32_t npoints);
+extern LWMPOINT *lwmpoly_to_points(const LWMPOLY *mpoly, uint32_t npoints);
+extern LWMPOINT *lwgeom_to_points(const LWGEOM *lwgeom, uint32_t npoints);
 
 /*
  * Geometric median
@@ -1807,7 +1807,7 @@ extern int lwgeom_calculate_gbox(const LWGEOM *lwgeom, GBOX *gbox);
 * New function to read doubles directly from the double* coordinate array
 * of an aligned lwgeom #POINTARRAY (built by de-serializing a #GSERIALIZED).
 */
-extern int getPoint2d_p_ro(const POINTARRAY *pa, int n, POINT2D **point);
+extern int getPoint2d_p_ro(const POINTARRAY *pa, uint32_t n, POINT2D **point);
 
 /**
 * Calculate geodetic (x/y/z) box and add values to gbox. Return #LW_SUCCESS on success.
@@ -2005,8 +2005,8 @@ extern int gserialized_get_gbox_p(const GSERIALIZED *g, GBOX *gbox);
 typedef struct struct_lwgeom_parser_result
 {
        const char *wkinput;        /* Copy of pointer to input WKT/WKB */
-       uint8_t *serialized_lwgeom;   /* Pointer to serialized LWGEOM */
-       int size;                   /* Size of serialized LWGEOM in bytes */
+       uint8_t *serialized_lwgeom; /* Pointer to serialized LWGEOM */
+       size_t size;                /* Size of serialized LWGEOM in bytes */
        LWGEOM *geom;               /* Pointer to LWGEOM struct */
        const char *message;        /* Error/warning message */
        int errcode;                /* Error/warning number */
@@ -2038,7 +2038,7 @@ typedef struct struct_lwgeom_unparser_result
 {
        uint8_t *serialized_lwgeom;     /* Copy of pointer to input serialized LWGEOM */
        char *wkoutput;                 /* Pointer to WKT or WKB output */
-       int size;                       /* Size of serialized LWGEOM in bytes */
+       size_t size;                    /* Size of serialized LWGEOM in bytes */
        const char *message;            /* Error/warning message */
        int errlocation;                /* Location of error */
 }
@@ -2260,7 +2260,7 @@ LWGEOM *lwgeom_union(const LWGEOM *geom1, const LWGEOM *geom2);
 LWGEOM *lwgeom_linemerge(const LWGEOM *geom1);
 LWGEOM *lwgeom_unaryunion(const LWGEOM *geom1);
 LWGEOM *lwgeom_clip_by_rect(const LWGEOM *geom1, double x0, double y0, double x1, double y1);
-LWCOLLECTION *lwgeom_subdivide(const LWGEOM *geom, int maxvertices);
+LWCOLLECTION *lwgeom_subdivide(const LWGEOM *geom, uint32_t maxvertices);
 
 /**
  * Snap vertices and segments of a geometry to another using a given tolerance.
@@ -2399,7 +2399,7 @@ LWGEOM* lwgeom_voronoi_diagram(const LWGEOM* g, const GBOX* env, double toleranc
 * @param ngeoms the number of elements in the array
 * @param k the number of clusters to calculate
 */
-int * lwgeom_cluster_2d_kmeans(const LWGEOM **geoms, int ngeoms, int k);
+int * lwgeom_cluster_2d_kmeans(const LWGEOM **geoms, uint32_t ngeoms, uint32_t k);
 
 
 #endif /* !defined _LIBLWGEOM_H  */
index addce9110c6b8ca61bc3315a85148493d15dab41..86453f7f2bf95eab575e9698be913735ae14d691 100644 (file)
@@ -190,9 +190,9 @@ int lwpoint_is_empty(const LWPOINT *point);
 /*
 * Number of vertices?
 */
-int lwline_count_vertices(LWLINE *line);
-int lwpoly_count_vertices(LWPOLY *poly);
-int lwcollection_count_vertices(LWCOLLECTION *col);
+uint32_t lwline_count_vertices(LWLINE *line);
+uint32_t lwpoly_count_vertices(LWPOLY *poly);
+uint32_t lwcollection_count_vertices(LWCOLLECTION *col);
 
 /*
 * DP simplification
@@ -201,7 +201,7 @@ int lwcollection_count_vertices(LWCOLLECTION *col);
 /**
  * @param minpts minimun number of points to retain, if possible.
  */
-void ptarray_simplify_in_place(POINTARRAY *pa, double epsilon, unsigned int minpts);
+void ptarray_simplify_in_place(POINTARRAY *pa, double epsilon, uint32_t minpts);
 
 /*
 * The possible ways a pair of segments can interact. Returned by lw_segment_intersects
@@ -374,7 +374,7 @@ void ptarray_longitude_shift(POINTARRAY *pa);
 * Support for in place modification of point arrays, fast
 * function to move coordinate values around
 */
-void ptarray_copy_point(POINTARRAY *pa, int from, int to);
+void ptarray_copy_point(POINTARRAY *pa, uint32_t from, uint32_t to);
 
 /*
 * Reverse
@@ -399,7 +399,7 @@ void closest_point_on_segment(const POINT4D *R, const POINT4D *A, const POINT4D
 */
 POINTARRAY *ptarray_remove_repeated_points(const POINTARRAY *in, double tolerance);
 LWGEOM* lwline_remove_repeated_points(const LWLINE *in, double tolerance);
-void ptarray_remove_repeated_points_in_place(POINTARRAY *pa, double tolerance, int min_points);
+void ptarray_remove_repeated_points_in_place(POINTARRAY *pa, double tolerance, uint32_t min_points);
 
 /*
 * Closure test
@@ -469,7 +469,7 @@ int lwgeom_contains_point(const LWGEOM *geom, const POINT2D *pt);
 int lwline_split_by_point_to(const LWLINE* ln, const LWPOINT* pt, LWMLINE* to);
 
 /** Ensure the collection can hold at least up to ngeoms geometries */
-void lwcollection_reserve(LWCOLLECTION *col, int ngeoms);
+void lwcollection_reserve(LWCOLLECTION *col, uint32_t ngeoms);
 
 /** Check if subtype is allowed in collectiontype */
 int lwcollection_allows_subtype(int collectiontype, int subtype);
index 27096e80d5f835e7f07a95a587528c46a326bc01..29686f717838172279d8aa2f705eb32fe69a5842 100644 (file)
@@ -280,7 +280,7 @@ int
 pt_in_ring_2d(const POINT2D *p, const POINTARRAY *ring)
 {
        int cn = 0;    /* the crossing number counter */
-       int i;
+       uint32_t i;
        const POINT2D *v1, *v2;
        const POINT2D *first, *last;
 
@@ -459,7 +459,7 @@ int lw_segment_intersects(const POINT2D *p1, const POINT2D *p2, const POINT2D *q
 */
 int lwline_crossing_direction(const LWLINE *l1, const LWLINE *l2)
 {
-       int i = 0, j = 0;
+       uint32_t i = 0, j = 0;
        const POINT2D *p1, *p2, *q1, *q2;
        POINTARRAY *pa1 = NULL, *pa2 = NULL;
        int cross_left = 0;
index 0d2f632a1868ed199dbe9b2544a90940b958e9ff..34dcf2d0af83502dcd4b467da37a06f9240e8ad0 100644 (file)
@@ -290,12 +290,12 @@ double lwcircstring_length_2d(const LWCIRCSTRING *circ)
  * Returns freshly allocated #LWPOINT that corresponds to the index where.
  * Returns NULL if the geometry is empty or the index invalid.
  */
-LWPOINT* lwcircstring_get_lwpoint(const LWCIRCSTRING *circ, int where) {
+LWPOINT* lwcircstring_get_lwpoint(const LWCIRCSTRING *circ, uint32_t where) {
        POINT4D pt;
        LWPOINT *lwpoint;
        POINTARRAY *pa;
 
-       if ( lwcircstring_is_empty(circ) || where < 0 || where >= circ->points->npoints )
+       if ( lwcircstring_is_empty(circ) || where >= circ->points->npoints )
                return NULL;
 
        pa = ptarray_construct_empty(FLAGS_GET_Z(circ->flags), FLAGS_GET_M(circ->flags), 1);
index 9b233c2ca867b3f1b5cbb9825d3f80ba60af7976..9a7efee6b19edb7689746a15625b6eecf3a96ea3 100644 (file)
@@ -171,7 +171,7 @@ lwcollection_clone_deep(const LWCOLLECTION *g)
 /**
  * Ensure the collection can hold up at least ngeoms
  */
-void lwcollection_reserve(LWCOLLECTION *col, int ngeoms)
+void lwcollection_reserve(LWCOLLECTION *col, uint32_t ngeoms)
 {
        if ( ngeoms <= col->maxgeoms ) return;
 
@@ -236,7 +236,7 @@ LWCOLLECTION* lwcollection_add_lwgeom(LWCOLLECTION *col, const LWGEOM *geom)
 LWCOLLECTION *
 lwcollection_segmentize2d(const LWCOLLECTION *col, double dist)
 {
-       uint32_t i;
+       uint32_t i,j;
        LWGEOM **newgeoms;
 
        if ( ! col->ngeoms ) return lwcollection_clone(col);
@@ -246,7 +246,8 @@ lwcollection_segmentize2d(const LWCOLLECTION *col, double dist)
        {
                newgeoms[i] = lwgeom_segmentize2d(col->geoms[i], dist);
                if ( ! newgeoms[i] ) {
-                       while (i--) lwgeom_free(newgeoms[i]);
+                       for (j=0; j < i; i++)
+                               lwgeom_free(newgeoms[j]);
                        lwfree(newgeoms);
                        return NULL;
                }
@@ -301,7 +302,7 @@ lwcollection_same(const LWCOLLECTION *c1, const LWCOLLECTION *c2)
 
 int lwcollection_ngeoms(const LWCOLLECTION *col)
 {
-       int i;
+       uint32_t i;
        int ngeoms = 0;
 
        if ( ! col )
@@ -339,7 +340,7 @@ int lwcollection_ngeoms(const LWCOLLECTION *col)
 
 void lwcollection_free(LWCOLLECTION *col)
 {
-       int i;
+       uint32_t i;
        if ( ! col ) return;
 
        if ( col->bbox )
@@ -368,7 +369,7 @@ void lwcollection_free(LWCOLLECTION *col)
 */
 LWCOLLECTION* lwcollection_extract(LWCOLLECTION *col, int type)
 {
-       int i = 0;
+       uint32_t i = 0;
        LWGEOM **geomlist;
        LWCOLLECTION *outcol;
        int geomlistsize = 16;
@@ -419,7 +420,7 @@ LWCOLLECTION* lwcollection_extract(LWCOLLECTION *col, int type)
                /* Recurse into sub-collections */
                if ( lwtype_is_collection( subtype ) )
                {
-                       int j = 0;
+                       uint32_t j = 0;
                        LWCOLLECTION *tmpcol = lwcollection_extract((LWCOLLECTION*)col->geoms[i], type);
                        for ( j = 0; j < tmpcol->ngeoms; j++ )
                        {
@@ -469,7 +470,7 @@ lwcollection_force_dims(const LWCOLLECTION *col, int hasz, int hasm)
        }
        else
        {
-               int i;
+               uint32_t i;
                LWGEOM **geoms = NULL;
                geoms = lwalloc(sizeof(LWGEOM*) * col->ngeoms);
                for( i = 0; i < col->ngeoms; i++ )
@@ -483,7 +484,7 @@ lwcollection_force_dims(const LWCOLLECTION *col, int hasz, int hasm)
 
 int lwcollection_is_empty(const LWCOLLECTION *col)
 {
-       int i;
+       uint32_t i;
        if ( (col->ngeoms == 0) || (!col->geoms) )
                return LW_TRUE;
        for( i = 0; i < col->ngeoms; i++ )
@@ -494,10 +495,10 @@ int lwcollection_is_empty(const LWCOLLECTION *col)
 }
 
 
-int lwcollection_count_vertices(LWCOLLECTION *col)
+uint32_t lwcollection_count_vertices(LWCOLLECTION *col)
 {
-       int i = 0;
-       int v = 0; /* vertices */
+       uint32_t i = 0;
+       uint32_t v = 0; /* vertices */
        assert(col);
        for ( i = 0; i < col->ngeoms; i++ )
        {
index b76bd30889ef5c5ce2490db167276be75631298b..bcfa92b257ccfce7e4482452a85ce1a26f500100 100644 (file)
@@ -73,7 +73,7 @@ double lwcompound_length(const LWCOMPOUND *comp)
 
 double lwcompound_length_2d(const LWCOMPOUND *comp)
 {
-       int i;
+       uint32_t i;
        double length = 0.0;
        if ( lwgeom_is_empty((LWGEOM*)comp) )
                return 0.0;
@@ -144,7 +144,7 @@ int lwgeom_contains_point(const LWGEOM *geom, const POINT2D *pt)
 int
 lwcompound_contains_point(const LWCOMPOUND *comp, const POINT2D *pt)
 {
-       int i;
+       uint32_t i;
        LWLINE *lwline;
        LWCIRCSTRING *lwcirc;
        int wn = 0;
@@ -210,16 +210,16 @@ lwcompound_construct_from_lwline(const LWLINE *lwline)
 }
 
 LWPOINT*
-lwcompound_get_lwpoint(const LWCOMPOUND *lwcmp, int where)
+lwcompound_get_lwpoint(const LWCOMPOUND *lwcmp, uint32_t where)
 {
-       int i;
-       int count = 0;
-       int npoints = 0;
+       uint32_t i;
+       uint32_t count = 0;
+       uint32_t npoints = 0;
        if ( lwgeom_is_empty((LWGEOM*)lwcmp) )
                return NULL;
 
        npoints = lwgeom_count_vertices((LWGEOM*)lwcmp);
-       if ( where < 0 || where >= npoints )
+       if ( where >= npoints )
        {
                lwerror("%s: index %d is not in range of number of vertices (%d) in input", __func__, where, npoints);
                return NULL;
@@ -228,7 +228,7 @@ lwcompound_get_lwpoint(const LWCOMPOUND *lwcmp, int where)
        for ( i = 0; i < lwcmp->ngeoms; i++ )
        {
                LWGEOM* part = lwcmp->geoms[i];
-               int npoints_part = lwgeom_count_vertices(part);
+               uint32_t npoints_part = lwgeom_count_vertices(part);
                if ( where >= count && where < count + npoints_part )
                {
                        return lwline_get_lwpoint((LWLINE*)part, where - count);
index f8369938a34fa1b68c379dcd211bc067ee1d7cc4..10f9b4883cf2f4312f07e7f5688d8d38af05f8bd 100644 (file)
@@ -53,7 +53,7 @@ LWCURVEPOLY *
 lwcurvepoly_construct_from_lwpoly(LWPOLY *lwpoly)
 {
        LWCURVEPOLY *ret;
-       int i;
+       uint32_t i;
        ret = lwalloc(sizeof(LWCURVEPOLY));
        ret->type = CURVEPOLYTYPE;
        ret->flags = lwpoly->flags;
@@ -71,7 +71,7 @@ lwcurvepoly_construct_from_lwpoly(LWPOLY *lwpoly)
 
 int lwcurvepoly_add_ring(LWCURVEPOLY *poly, LWGEOM *ring)
 {
-       int i;
+       uint32_t i;
 
        /* Can't do anything with NULLs */
        if( ! poly || ! ring )
@@ -147,7 +147,7 @@ double
 lwcurvepoly_perimeter(const LWCURVEPOLY *poly)
 {
        double result=0.0;
-       int i;
+       uint32_t i;
 
        for (i=0; i<poly->nrings; i++)
                result += lwgeom_length(poly->rings[i]);
@@ -159,7 +159,7 @@ double
 lwcurvepoly_perimeter_2d(const LWCURVEPOLY *poly)
 {
        double result=0.0;
-       int i;
+       uint32_t i;
 
        for (i=0; i<poly->nrings; i++)
                result += lwgeom_length_2d(poly->rings[i]);
index eddca5d822ff017c40f9386f0e2ae9292d8e0be9..83f389e88ab80f27cedcbca2245ae4f5cc253bb5 100644 (file)
@@ -1598,7 +1598,7 @@ ptarray_segmentize_sphere(const POINTARRAY *pa_in, double max_seg_length)
        POINT4D p1, p2;
        POINT3D q1, q2;
        GEOGRAPHIC_POINT g1, g2;
-       int i;
+       uint32_t i;
 
        /* Just crap out on crazy input */
        if ( ! pa_in )
@@ -1655,7 +1655,7 @@ lwgeom_segmentize_sphere(const LWGEOM *lwg_in, double max_seg_length)
        LWLINE *lwline;
        LWPOLY *lwpoly_in, *lwpoly_out;
        LWCOLLECTION *lwcol_in, *lwcol_out;
-       int i;
+       uint32_t i;
 
        /* Reflect NULL */
        if ( ! lwg_in )
@@ -1715,7 +1715,7 @@ lwgeom_segmentize_sphere(const LWGEOM *lwg_in, double max_seg_length)
 double
 ptarray_area_sphere(const POINTARRAY *pa)
 {
-       int i;
+       uint32_t i;
        const POINT2D *p;
        GEOGRAPHIC_POINT a, b, c;
        double area = 0.0;
@@ -1749,7 +1749,7 @@ static double ptarray_distance_spheroid(const POINTARRAY *pa1, const POINTARRAY
        POINT3D A1, A2, B1, B2;
        const POINT2D *p;
        double distance;
-       int i, j;
+       uint32_t i, j;
        int use_sphere = (s->a == s->b ? 1 : 0);
 
        /* Make result really big, so that everything will be smaller than it */
@@ -1782,7 +1782,7 @@ static double ptarray_distance_spheroid(const POINTARRAY *pa1, const POINTARRAY
        if ( pa1->npoints == 1 || pa2->npoints == 1 )
        {
                /* Handle one/many case here */
-               int i;
+               uint32_t i;
                const POINTARRAY *pa_one;
                const POINTARRAY *pa_many;
 
@@ -1959,7 +1959,7 @@ double lwgeom_area_sphere(const LWGEOM *lwgeom, const SPHEROID *spheroid)
        if ( type == POLYGONTYPE )
        {
                LWPOLY *poly = (LWPOLY*)lwgeom;
-               int i;
+               uint32_t i;
                double area = 0.0;
 
                /* Just in case there's no rings */
@@ -1981,7 +1981,7 @@ double lwgeom_area_sphere(const LWGEOM *lwgeom, const SPHEROID *spheroid)
        if ( type == MULTIPOLYGONTYPE || type == COLLECTIONTYPE )
        {
                LWCOLLECTION *col = (LWCOLLECTION*)lwgeom;
-               int i;
+               uint32_t i;
                double area = 0.0;
 
                for ( i = 0; i < col->ngeoms; i++ )
@@ -2160,7 +2160,7 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
                LWPOLY *lwpoly;
                LWPOINT *lwpt;
                double distance = FLT_MAX;
-               int i;
+               uint32_t i;
 
                if ( type1 == POINTTYPE )
                {
@@ -2200,7 +2200,7 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
                LWPOLY *lwpoly;
                LWLINE *lwline;
                double distance = FLT_MAX;
-               int i;
+               uint32_t i;
 
                if ( type1 == LINETYPE )
                {
@@ -2245,7 +2245,7 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
                LWPOLY *lwpoly1 = (LWPOLY*)lwgeom1;
                LWPOLY *lwpoly2 = (LWPOLY*)lwgeom2;
                double distance = FLT_MAX;
-               int i, j;
+               uint32_t i, j;
 
                /* Point of 2 in polygon 1 implies zero distance */
                p = getPoint2d_cp(lwpoly1->rings[0], 0);
@@ -2275,7 +2275,7 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
        /* Recurse into collections */
        if ( lwtype_is_collection(type1) )
        {
-               int i;
+               uint32_t i;
                double distance = FLT_MAX;
                LWCOLLECTION *col = (LWCOLLECTION*)lwgeom1;
 
@@ -2293,7 +2293,7 @@ double lwgeom_distance_spheroid(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2, co
        /* Recurse into collections */
        if ( lwtype_is_collection(type2) )
        {
-               int i;
+               uint32_t i;
                double distance = FLT_MAX;
                LWCOLLECTION *col = (LWCOLLECTION*)lwgeom2;
 
@@ -2380,7 +2380,7 @@ int lwgeom_covers_lwgeom_sphere(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2)
        /* If any of the first argument parts covers the second argument, it's true */
        if ( lwtype_is_collection( type1 ) )
        {
-               int i;
+               uint32_t i;
                LWCOLLECTION *col = (LWCOLLECTION*)lwgeom1;
 
                for ( i = 0; i < col->ngeoms; i++ )
@@ -2396,7 +2396,7 @@ int lwgeom_covers_lwgeom_sphere(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2)
        /* Only if all of the second arguments are covered by the first argument is the condition true */
        if ( lwtype_is_collection( type2 ) )
        {
-               int i;
+               uint32_t i;
                LWCOLLECTION *col = (LWCOLLECTION*)lwgeom2;
 
                for ( i = 0; i < col->ngeoms; i++ )
@@ -2422,7 +2422,7 @@ int lwgeom_covers_lwgeom_sphere(const LWGEOM *lwgeom1, const LWGEOM *lwgeom2)
 */
 int lwpoly_covers_point2d(const LWPOLY *poly, const POINT2D *pt_to_test)
 {
-       int i;
+       uint32_t i;
        int in_hole_count = 0;
        POINT3D p;
        GEOGRAPHIC_POINT gpt_to_test;
@@ -2497,7 +2497,7 @@ int lwpoly_covers_point2d(const LWPOLY *poly, const POINT2D *pt_to_test)
  */
 int lwpoly_covers_lwpoly(const LWPOLY *poly1, const LWPOLY *poly2)
 {
-       int i;
+       uint32_t i;
 
        /* Nulls and empties don't contain anything! */
        if ( ! poly1 || lwgeom_is_empty((LWGEOM*)poly1) )
@@ -2591,7 +2591,7 @@ int lwpoly_covers_lwline(const LWPOLY *poly, const LWLINE *line)
  */
 int lwpoly_covers_pointarray(const LWPOLY* lwpoly, const POINTARRAY* pta)
 {
-       int i;
+       uint32_t i;
        for (i = 0; i < pta->npoints; i++) {
                const POINT2D* pt_to_test = getPoint2d_cp(pta, i);
 
@@ -2610,7 +2610,7 @@ int lwpoly_covers_pointarray(const LWPOLY* lwpoly, const POINTARRAY* pta)
  */
 int lwpoly_intersects_line(const LWPOLY* lwpoly, const POINTARRAY* line)
 {
-       int i, j, k;
+       uint32_t i, j, k;
        POINT3D pa1, pa2, pb1, pb2;
        for (i = 0; i < lwpoly->nrings; i++)
        {
@@ -2652,7 +2652,7 @@ int lwpoly_intersects_line(const LWPOLY* lwpoly, const POINTARRAY* line)
  */
 int lwline_covers_lwpoint(const LWLINE* lwline, const LWPOINT* lwpoint)
 {
-       int i;
+       uint32_t i;
        GEOGRAPHIC_POINT p;
        GEOGRAPHIC_EDGE e;
 
@@ -2681,7 +2681,7 @@ int lwline_covers_lwpoint(const LWLINE* lwline, const LWPOINT* lwpoint)
  */
 int lwline_covers_lwline(const LWLINE* lwline1, const LWLINE* lwline2)
 {
-       int i, j;
+       uint32_t i, j;
        GEOGRAPHIC_EDGE e1, e2;
        GEOGRAPHIC_POINT p1, p2;
        int start = LW_FALSE;
@@ -2768,11 +2768,10 @@ int lwline_covers_lwline(const LWLINE* lwline1, const LWLINE* lwline2)
 * This function can only be used on LWGEOM that is built on top of
 * GSERIALIZED, otherwise alignment errors will ensue.
 */
-int getPoint2d_p_ro(const POINTARRAY *pa, int n, POINT2D **point)
+int getPoint2d_p_ro(const POINTARRAY *pa, uint32_t n, POINT2D **point)
 {
        uint8_t *pa_ptr = NULL;
        assert(pa);
-       assert(n >= 0);
        assert(n < pa->npoints);
 
        pa_ptr = getPoint_internal(pa, n);
@@ -2784,7 +2783,7 @@ int getPoint2d_p_ro(const POINTARRAY *pa, int n, POINT2D **point)
 
 int ptarray_calculate_gbox_geodetic(const POINTARRAY *pa, GBOX *gbox)
 {
-       int i;
+       uint32_t i;
        int first = LW_TRUE;
        const POINT2D *p;
        POINT3D A1, A2;
@@ -2852,7 +2851,7 @@ static int lwline_calculate_gbox_geodetic(const LWLINE *line, GBOX *gbox)
 static int lwpolygon_calculate_gbox_geodetic(const LWPOLY *poly, GBOX *gbox)
 {
        GBOX ringbox;
-       int i;
+       uint32_t i;
        int first = LW_TRUE;
        assert(poly);
        if ( poly->nrings == 0 )
@@ -2889,7 +2888,7 @@ static int lwtriangle_calculate_gbox_geodetic(const LWTRIANGLE *triangle, GBOX *
 static int lwcollection_calculate_gbox_geodetic(const LWCOLLECTION *coll, GBOX *gbox)
 {
        GBOX subbox;
-       int i;
+       uint32_t i;
        int result = LW_FAILURE;
        int first = LW_TRUE;
        assert(coll);
@@ -2963,7 +2962,7 @@ int lwgeom_calculate_gbox_geodetic(const LWGEOM *geom, GBOX *gbox)
 
 static int ptarray_check_geodetic(const POINTARRAY *pa)
 {
-       int t;
+       uint32_t t;
        POINT2D pt;
 
        assert(pa);
@@ -2993,7 +2992,7 @@ static int lwline_check_geodetic(const LWLINE *line)
 
 static int lwpoly_check_geodetic(const LWPOLY *poly)
 {
-       int i = 0;
+       uint32_t i = 0;
        assert(poly);
 
        for ( i = 0; i < poly->nrings; i++ )
@@ -3013,7 +3012,7 @@ static int lwtriangle_check_geodetic(const LWTRIANGLE *triangle)
 
 static int lwcollection_check_geodetic(const LWCOLLECTION *col)
 {
-       int i = 0;
+       uint32_t i = 0;
        assert(col);
 
        for ( i = 0; i < col->ngeoms; i++ )
@@ -3055,7 +3054,7 @@ int lwgeom_check_geodetic(const LWGEOM *geom)
 
 static int ptarray_force_geodetic(POINTARRAY *pa)
 {
-       int t;
+       uint32_t t;
        int changed = LW_FALSE;
        POINT4D pt;
 
@@ -3089,7 +3088,7 @@ static int lwline_force_geodetic(LWLINE *line)
 
 static int lwpoly_force_geodetic(LWPOLY *poly)
 {
-       int i = 0;
+       uint32_t i = 0;
        int changed = LW_FALSE;
        assert(poly);
 
@@ -3103,7 +3102,7 @@ static int lwpoly_force_geodetic(LWPOLY *poly)
 
 static int lwcollection_force_geodetic(LWCOLLECTION *col)
 {
-       int i = 0;
+       uint32_t i = 0;
        int changed = LW_FALSE;
        assert(col);
 
@@ -3142,7 +3141,7 @@ double ptarray_length_spheroid(const POINTARRAY *pa, const SPHEROID *s)
        GEOGRAPHIC_POINT a, b;
        double za = 0.0, zb = 0.0;
        POINT4D p;
-       int i;
+       uint32_t i;
        int hasz = LW_FALSE;
        double length = 0.0;
        double seglength = 0.0;
@@ -3193,7 +3192,7 @@ double ptarray_length_spheroid(const POINTARRAY *pa, const SPHEROID *s)
 double lwgeom_length_spheroid(const LWGEOM *geom, const SPHEROID *s)
 {
        int type;
-       int i = 0;
+       uint32_t i = 0;
        double length = 0.0;
 
        assert(geom);
@@ -3248,7 +3247,7 @@ static int
 ptarray_nudge_geodetic(POINTARRAY *pa)
 {
 
-       int i;
+       uint32_t i;
        POINT4D p;
        int altered = LW_FALSE;
        int rv = LW_FALSE;
@@ -3300,7 +3299,7 @@ int
 lwgeom_nudge_geodetic(LWGEOM *geom)
 {
        int type;
-       int i = 0;
+       uint32_t i = 0;
        int rv = LW_FALSE;
 
        assert(geom);
@@ -3404,7 +3403,7 @@ dot_product_side(const POINT3D *p, const POINT3D *q)
 * Returns non-zero if edges A and B interact. The type of interaction is given in the
 * return value with the bitmask elements defined above.
 */
-int
+uint32_t
 edge_intersects(const POINT3D *A1, const POINT3D *A2, const POINT3D *B1, const POINT3D *B2)
 {
        POINT3D AN, BN, VN;  /* Normals to plane A and plane B */
@@ -3515,7 +3514,7 @@ int ptarray_contains_point_sphere(const POINTARRAY *pa, const POINT2D *pt_outsid
        POINT3D S1, S2; /* Stab line end points */
        POINT3D E1, E2; /* Edge end points (3-space) */
        POINT2D p; /* Edge end points (lon/lat) */
-       int count = 0, i, inter;
+       uint32_t count = 0, i, inter;
 
        /* Null input, not enough points for a ring? You ain't closed! */
        if ( ! pa || pa->npoints < 4 )
index b186259ca035f7b6ca2e5161248d9e5ef2077771..41b1d774c02e4d7cc2da284b81619439be5e192d 100644 (file)
@@ -108,7 +108,7 @@ int sphere_project(const GEOGRAPHIC_POINT *r, double distance, double azimuth, G
 int edge_calculate_gbox_slow(const GEOGRAPHIC_EDGE *e, GBOX *gbox);
 int edge_calculate_gbox(const POINT3D *A1, const POINT3D *A2, GBOX *gbox);
 int edge_intersection(const GEOGRAPHIC_EDGE *e1, const GEOGRAPHIC_EDGE *e2, GEOGRAPHIC_POINT *g);
-int edge_intersects(const POINT3D *A1, const POINT3D *A2, const POINT3D *B1, const POINT3D *B2);
+uint32_t edge_intersects(const POINT3D *A1, const POINT3D *A2, const POINT3D *B1, const POINT3D *B2);
 double edge_distance_to_point(const GEOGRAPHIC_EDGE *e, const GEOGRAPHIC_POINT *gp, GEOGRAPHIC_POINT *closest);
 double edge_distance_to_edge(const GEOGRAPHIC_EDGE *e1, const GEOGRAPHIC_EDGE *e2, GEOGRAPHIC_POINT *closest1, GEOGRAPHIC_POINT *closest2);
 void geographic_point_init(double lon, double lat, GEOGRAPHIC_POINT *g);
index ba0be5dfc18eac00ad8cee7ed06d7db68f002135..81592149fd72dcdcd96d7faef8de2b7487c2a79f 100644 (file)
@@ -49,7 +49,7 @@ circ_node_is_leaf(const CIRC_NODE* node)
 void
 circ_tree_free(CIRC_NODE* node)
 {
-       int i;
+       uint32_t i;
        if ( ! node ) return;
 
        for ( i = 0; i < node->num_nodes; i++ )
@@ -226,13 +226,13 @@ circ_center_cartesian(const GEOGRAPHIC_POINT* c1, const GEOGRAPHIC_POINT* c2, do
 * and storing pointers to the child nodes.
 */
 static CIRC_NODE*
-circ_node_internal_new(CIRC_NODE** c, int num_nodes)
+circ_node_internal_new(CIRC_NODE** c, uint32_t num_nodes)
 {
        CIRC_NODE *node = NULL;
        GEOGRAPHIC_POINT new_center, c1;
        double new_radius;
        double offset1, dist, D, r1, ri;
-       int i, new_geom_type;
+       uint32_t i, new_geom_type;
 
        LWDEBUGF(3, "called with %d nodes --", num_nodes);
 
@@ -483,7 +483,7 @@ int circ_tree_contains_point(const CIRC_NODE* node, const POINT2D* pt, const POI
        GEOGRAPHIC_EDGE stab_edge, edge;
        POINT3D S1, S2, E1, E2;
        double d;
-       int i, c;
+       uint32_t i, c;
 
        /* Construct a stabline edge from our "inside" to our known outside point */
        geographic_point_init(pt->x, pt->y, &(stab_edge.start));
@@ -604,7 +604,7 @@ circ_tree_distance_tree_internal(const CIRC_NODE* n1, const CIRC_NODE* n2, doubl
 {
        double max;
        double d, d_min;
-       int i;
+       uint32_t i;
 
        LWDEBUGF(4, "entered, min_dist=%.8g max_dist=%.8g, type1=%d, type2=%d", *min_dist, *max_dist, n1->geom_type, n2->geom_type);
 /*
@@ -789,7 +789,7 @@ circ_tree_distance_tree_internal(const CIRC_NODE* n1, const CIRC_NODE* n2, doubl
 
 void circ_tree_print(const CIRC_NODE* node, int depth)
 {
-       int i;
+       uint32_t i;
 
        if (circ_node_is_leaf(node))
        {
@@ -857,7 +857,7 @@ lwline_calculate_circ_tree(const LWLINE* lwline)
 static CIRC_NODE*
 lwpoly_calculate_circ_tree(const LWPOLY* lwpoly)
 {
-       int i = 0, j = 0;
+       uint32_t i = 0, j = 0;
        CIRC_NODE** nodes;
        CIRC_NODE* node;
 
@@ -895,7 +895,7 @@ lwpoly_calculate_circ_tree(const LWPOLY* lwpoly)
 static CIRC_NODE*
 lwcollection_calculate_circ_tree(const LWCOLLECTION* lwcol)
 {
-       int i = 0, j = 0;
+       uint32_t i = 0, j = 0;
        CIRC_NODE** nodes;
        CIRC_NODE* node;
 
index b79c352f30f477298a26c811ac8d213d5124565e..53ec0b16a2ca52e635af54fa00df0a1ee8722c01 100644 (file)
@@ -37,11 +37,11 @@ typedef struct circ_node
 {
        GEOGRAPHIC_POINT center;
        double radius;
-       int num_nodes;
+       uint32_t num_nodes;
        struct circ_node** nodes;
        int edge_num;
-    int geom_type;
-    POINT2D pt_outside;
+       uint32_t geom_type;
+       POINT2D pt_outside;
        POINT2D* p1;
        POINT2D* p2;
 } CIRC_NODE;
index d5940524a04f024e29727a6ad34e94981b7403b7..155d3d5f028d5d94b0294d057c06516d45a0a074 100644 (file)
@@ -36,7 +36,7 @@ void
 lwgeom_force_clockwise(LWGEOM *lwgeom)
 {
        LWCOLLECTION *coll;
-       int i;
+       uint32_t i;
 
        switch (lwgeom->type)
        {
@@ -74,7 +74,7 @@ lwgeom_is_clockwise(LWGEOM *lwgeom)
                case MULTIPOLYGONTYPE:
                case COLLECTIONTYPE:
                {
-                       int i;
+                       uint32_t i;
                        LWCOLLECTION* coll = (LWCOLLECTION *)lwgeom;
 
                        for (i=0; i < coll->ngeoms; i++)
@@ -100,7 +100,7 @@ lwgeom_reverse(const LWGEOM *geom)
 void
 lwgeom_reverse_in_place(LWGEOM *geom)
 {
-       int i;
+       uint32_t i;
        LWCOLLECTION *col;
        if (!geom)
                return;
@@ -125,7 +125,7 @@ lwgeom_reverse_in_place(LWGEOM *geom)
                        LWPOLY *poly = (LWPOLY *)(geom);
                        if (!poly->rings)
                                return;
-                       int r;
+                       uint32_t r;
                        for (r = 0; r < poly->nrings; r++)
                                ptarray_reverse_in_place(poly->rings[r]);
                        return;
@@ -713,7 +713,7 @@ lwgeom_add_bbox_deep(LWGEOM *lwgeom, GBOX *gbox)
 
        if ( lwgeom_is_collection(lwgeom) )
        {
-               int i;
+               uint32_t i;
                LWCOLLECTION *lwcol = (LWCOLLECTION*)lwgeom;
 
                for ( i = 0; i < lwcol->ngeoms; i++ )
@@ -831,7 +831,7 @@ LWGEOM*
 lwgeom_force_sfs(LWGEOM *geom, int version)
 {
        LWCOLLECTION *col;
-       int i;
+       uint32_t i;
        LWGEOM *g;
 
        /* SFS 1.2 version */
@@ -948,7 +948,7 @@ lwgeom_set_geodetic(LWGEOM *geom, int value)
        LWLINE *ln;
        LWPOLY *ply;
        LWCOLLECTION *col;
-       int i;
+       uint32_t i;
 
        FLAGS_SET_GEODETIC(geom->flags, value);
        if ( geom->bbox )
@@ -988,7 +988,7 @@ lwgeom_set_geodetic(LWGEOM *geom, int value)
 void
 lwgeom_longitude_shift(LWGEOM *lwgeom)
 {
-       int i;
+       uint32_t i;
        switch (lwgeom->type)
        {
                LWPOINT *point;
@@ -1059,7 +1059,7 @@ lwgeom_is_closed(const LWGEOM *geom)
        if ( lwgeom_is_collection(geom) )
        {
                LWCOLLECTION *col = lwgeom_as_lwcollection(geom);
-               int i;
+               uint32_t i;
                int closed;
                for ( i = 0; i < col->ngeoms; i++ )
                {
@@ -1109,7 +1109,7 @@ lwtype_is_collection(uint8_t type)
 /**
 * Given an lwtype number, what homogeneous collection can hold it?
 */
-int
+uint32_t
 lwtype_get_collectiontype(uint8_t type)
 {
        switch (type)
@@ -1223,8 +1223,9 @@ int lwgeom_needs_bbox(const LWGEOM *geom)
 
 /**
 * Count points in an #LWGEOM.
+* TODO: Make sure the internal functions don't overflow
 */
-int lwgeom_count_vertices(const LWGEOM *geom)
+uint32_t lwgeom_count_vertices(const LWGEOM *geom)
 {
        int result = 0;
 
@@ -1314,7 +1315,8 @@ int lwgeom_dimension(const LWGEOM *geom)
        }
        case COLLECTIONTYPE:
        {
-               int maxdim = 0, i;
+               int maxdim = 0;
+               uint32_t i;
                LWCOLLECTION *col = (LWCOLLECTION*)geom;
                for( i = 0; i < col->ngeoms; i++ )
                {
@@ -1333,7 +1335,7 @@ int lwgeom_dimension(const LWGEOM *geom)
 /**
 * Count rings in an #LWGEOM.
 */
-int lwgeom_count_rings(const LWGEOM *geom)
+uint32_t lwgeom_count_rings(const LWGEOM *geom)
 {
        int result = 0;
 
@@ -1368,7 +1370,7 @@ int lwgeom_count_rings(const LWGEOM *geom)
        case COLLECTIONTYPE:
        {
                LWCOLLECTION *col = (LWCOLLECTION*)geom;
-               int i = 0;
+               uint32_t i = 0;
                for( i = 0; i < col->ngeoms; i++ )
                        result += lwgeom_count_rings(col->geoms[i]);
                break;
@@ -1435,7 +1437,7 @@ int lwgeom_has_srid(const LWGEOM *geom)
 
 static int lwcollection_dimensionality(const LWCOLLECTION *col)
 {
-       int i;
+       uint32_t i;
        int dimensionality = 0;
        for ( i = 0; i < col->ngeoms; i++ )
        {
@@ -1502,7 +1504,7 @@ void lwgeom_swap_ordinates(LWGEOM *in, LWORD o1, LWORD o2)
 {
        LWCOLLECTION *col;
        LWPOLY *poly;
-       int i;
+       uint32_t i;
 
        if ( (!in) || lwgeom_is_empty(in) ) return;
 
@@ -1569,7 +1571,7 @@ void lwgeom_swap_ordinates(LWGEOM *in, LWORD o1, LWORD o2)
 
 void lwgeom_set_srid(LWGEOM *geom, int32_t srid)
 {
-       int i;
+       uint32_t i;
 
        LWDEBUGF(4,"entered with srid=%d",srid);
 
@@ -1614,7 +1616,7 @@ lwgeom_remove_repeated_points_in_place(LWGEOM *geom, double tolerance)
                }
                case POLYGONTYPE:
                {
-                       int i, j = 0;
+                       uint32_t i, j = 0;
                        LWPOLY *g = (LWPOLY*)(geom);
                        for (i = 0; i < g->nrings; i++)
                        {
@@ -1638,9 +1640,9 @@ lwgeom_remove_repeated_points_in_place(LWGEOM *geom, double tolerance)
                }
                case MULTIPOINTTYPE:
                {
-                       static int out_stack_size = 32;
+                       static uint32_t out_stack_size = 32;
                        double tolsq = tolerance*tolerance;
-                       int i, j, n = 0;
+                       uint32_t i, j, n = 0;
                        LWMPOINT *mpt = (LWMPOINT *)(geom);
                        LWPOINT **out;
                        LWPOINT *out_stack[out_stack_size];
@@ -1704,7 +1706,7 @@ lwgeom_remove_repeated_points_in_place(LWGEOM *geom, double tolerance)
                case MULTISURFACETYPE:
                case COMPOUNDTYPE:
                {
-                       int i, j = 0;
+                       uint32_t i, j = 0;
                        LWCOLLECTION *col = (LWCOLLECTION*)(geom);
                        for (i = 0; i < col->ngeoms; i++)
                        {
@@ -1773,7 +1775,7 @@ lwgeom_simplify_in_place(LWGEOM *geom, double epsilon, int preserve_collapsed)
                }
                case POLYGONTYPE:
                {
-                       int i, j = 0;
+                       uint32_t i, j = 0;
                        LWPOLY *g = (LWPOLY*)(geom);
                        for (i = 0; i < g->nrings; i++)
                        {
@@ -1802,7 +1804,7 @@ lwgeom_simplify_in_place(LWGEOM *geom, double epsilon, int preserve_collapsed)
                case MULTIPOLYGONTYPE:
                case COLLECTIONTYPE:
                {
-                       int i, j = 0;
+                       uint32_t i, j = 0;
                        LWCOLLECTION *col = (LWCOLLECTION*)geom;
                        for (i = 0; i < col->ngeoms; i++)
                        {
@@ -1858,7 +1860,7 @@ double lwgeom_area(const LWGEOM *geom)
        else if ( lwgeom_is_collection(geom) )
        {
                double area = 0.0;
-               int i;
+               uint32_t i;
                LWCOLLECTION *col = (LWCOLLECTION*)geom;
                for ( i = 0; i < col->ngeoms; i++ )
                        area += lwgeom_area(col->geoms[i]);
@@ -1880,7 +1882,7 @@ double lwgeom_perimeter(const LWGEOM *geom)
        else if ( lwgeom_is_collection(geom) )
        {
                double perimeter = 0.0;
-               int i;
+               uint32_t i;
                LWCOLLECTION *col = (LWCOLLECTION*)geom;
                for ( i = 0; i < col->ngeoms; i++ )
                        perimeter += lwgeom_perimeter(col->geoms[i]);
@@ -1902,7 +1904,7 @@ double lwgeom_perimeter_2d(const LWGEOM *geom)
        else if ( lwgeom_is_collection(geom) )
        {
                double perimeter = 0.0;
-               int i;
+               uint32_t i;
                LWCOLLECTION *col = (LWCOLLECTION*)geom;
                for ( i = 0; i < col->ngeoms; i++ )
                        perimeter += lwgeom_perimeter_2d(col->geoms[i]);
@@ -1924,7 +1926,7 @@ double lwgeom_length(const LWGEOM *geom)
        else if ( lwgeom_is_collection(geom) )
        {
                double length = 0.0;
-               int i;
+               uint32_t i;
                LWCOLLECTION *col = (LWCOLLECTION*)geom;
                for ( i = 0; i < col->ngeoms; i++ )
                        length += lwgeom_length(col->geoms[i]);
@@ -1946,7 +1948,7 @@ double lwgeom_length_2d(const LWGEOM *geom)
        else if ( lwgeom_is_collection(geom) )
        {
                double length = 0.0;
-               int i;
+               uint32_t i;
                LWCOLLECTION *col = (LWCOLLECTION*)geom;
                for ( i = 0; i < col->ngeoms; i++ )
                        length += lwgeom_length_2d(col->geoms[i]);
@@ -1960,7 +1962,7 @@ void
 lwgeom_affine(LWGEOM *geom, const AFFINE *affine)
 {
        int type = geom->type;
-       int i;
+       uint32_t i;
 
        switch(type)
        {
@@ -2011,7 +2013,7 @@ void
 lwgeom_scale(LWGEOM *geom, const POINT4D *factor)
 {
        int type = geom->type;
-       int i;
+       uint32_t i;
 
        switch(type)
        {
@@ -2160,7 +2162,7 @@ lwgeom_grid_in_place(LWGEOM *geom, const gridspec *grid)
                        if (!ply->rings) return;
 
                        /* Check first the external ring */
-                       int i = 0;
+                       uint32_t i = 0;
                        POINTARRAY *pa = ply->rings[0];
                        ptarray_grid_in_place(pa, grid);
                        if (pa->npoints < 4)
@@ -2175,7 +2177,7 @@ lwgeom_grid_in_place(LWGEOM *geom, const gridspec *grid)
                        }
 
                        /* Check the other rings */
-                       int j = 1;
+                       uint32_t j = 1;
                        for (i = 1; i < ply->nrings; i++)
                        {
                                POINTARRAY *pa = ply->rings[i];
@@ -2202,7 +2204,7 @@ lwgeom_grid_in_place(LWGEOM *geom, const gridspec *grid)
                case COMPOUNDTYPE:
                {
                        LWCOLLECTION *col = (LWCOLLECTION*)(geom);
-                       int i, j = 0;
+                       uint32_t i, j = 0;
                        if (!col->geoms) return;
                        for (i = 0; i < col->ngeoms; i++)
                        {
@@ -2241,14 +2243,14 @@ lwgeom_grid(const LWGEOM *lwgeom, const gridspec *grid)
 
 /* Prototype for recursion */
 static int
-lwgeom_subdivide_recursive(const LWGEOM *geom, int maxvertices, int depth, LWCOLLECTION *col, const GBOX *clip);
+lwgeom_subdivide_recursive(const LWGEOM *geom, uint32_t maxvertices, uint32_t depth, LWCOLLECTION *col, const GBOX *clip);
 
 static int
-lwgeom_subdivide_recursive(const LWGEOM *geom, int maxvertices, int depth, LWCOLLECTION *col, const GBOX *clip)
+lwgeom_subdivide_recursive(const LWGEOM *geom, uint32_t maxvertices, uint32_t depth, LWCOLLECTION *col, const GBOX *clip)
 {
-       const int maxdepth = 50;
-       int nvertices = 0;
-       int i, n = 0;
+       const uint32_t maxdepth = 50;
+       uint32_t nvertices = 0;
+       uint32_t i, n = 0;
        double width = clip->xmax - clip->xmin;
        double height = clip->ymax - clip->ymin;
        GBOX subbox1, subbox2;
@@ -2355,10 +2357,10 @@ lwgeom_subdivide_recursive(const LWGEOM *geom, int maxvertices, int depth, LWCOL
 }
 
 LWCOLLECTION *
-lwgeom_subdivide(const LWGEOM *geom, int maxvertices)
+lwgeom_subdivide(const LWGEOM *geom, uint32_t maxvertices)
 {
-       static int startdepth = 0;
-       static int minmaxvertices = 8;
+       static uint32_t startdepth = 0;
+       static uint32_t minmaxvertices = 8;
        LWCOLLECTION *col;
        GBOX clip;
 
index 2b01602c709bf4517de0241e2d8162d085b2527f..4c728261e7549e40b573bc691fbfb30059be0afa 100644 (file)
@@ -93,7 +93,7 @@ next_float_up(double d)
  * NOTE: point is a real POINT3D *not* a pointer
  */
 POINT4D
-getPoint4d(const POINTARRAY *pa, int n)
+getPoint4d(const POINTARRAY *pa, uint32_t n)
 {
        POINT4D result;
        getPoint4d_p(pa, n, &result);
@@ -110,7 +110,7 @@ getPoint4d(const POINTARRAY *pa, int n)
  * @return 0 on error, 1 on success
  */
 int
-getPoint4d_p(const POINTARRAY *pa, int n, POINT4D *op)
+getPoint4d_p(const POINTARRAY *pa, uint32_t n, POINT4D *op)
 {
        uint8_t *ptr;
        int zmflag;
@@ -121,7 +121,7 @@ getPoint4d_p(const POINTARRAY *pa, int n, POINT4D *op)
                return 0;
        }
 
-       if ( (n<0) || (n>=pa->npoints))
+       if ( n>=pa->npoints )
        {
                lwnotice("%s [%d] called with n=%d and npoints=%d", __FILE__, __LINE__, n, pa->npoints);
                return 0;
@@ -174,7 +174,7 @@ getPoint4d_p(const POINTARRAY *pa, int n, POINT4D *op)
  * NOTE: point is a real POINT3DZ *not* a pointer
  */
 POINT3DZ
-getPoint3dz(const POINTARRAY *pa, int n)
+getPoint3dz(const POINTARRAY *pa, uint32_t n)
 {
        POINT3DZ result;
        getPoint3dz_p(pa, n, &result);
@@ -188,7 +188,7 @@ getPoint3dz(const POINTARRAY *pa, int n)
  * NOTE: point is a real POINT3DZ *not* a pointer
  */
 POINT3DM
-getPoint3dm(const POINTARRAY *pa, int n)
+getPoint3dm(const POINTARRAY *pa, uint32_t n)
 {
        POINT3DM result;
        getPoint3dm_p(pa, n, &result);
@@ -202,7 +202,7 @@ getPoint3dm(const POINTARRAY *pa, int n)
  * NOTE: this will modify the point3dz pointed to by 'point'.
  */
 int
-getPoint3dz_p(const POINTARRAY *pa, int n, POINT3DZ *op)
+getPoint3dz_p(const POINTARRAY *pa, uint32_t n, POINT3DZ *op)
 {
        uint8_t *ptr;
 
@@ -212,7 +212,7 @@ getPoint3dz_p(const POINTARRAY *pa, int n, POINT3DZ *op)
                return 0;
        }
 
-       if ( (n<0) || (n>=pa->npoints))
+       if ( n>=pa->npoints )
        {
                lwnotice("%s [%d] called with n=%d and npoints=%d", __FILE__, __LINE__, n, pa->npoints);
                return 0;
@@ -254,7 +254,7 @@ getPoint3dz_p(const POINTARRAY *pa, int n, POINT3DZ *op)
  * NOTE: this will modify the point3dm pointed to by 'point'.
  */
 int
-getPoint3dm_p(const POINTARRAY *pa, int n, POINT3DM *op)
+getPoint3dm_p(const POINTARRAY *pa, uint32_t n, POINT3DM *op)
 {
        uint8_t *ptr;
        int zmflag;
@@ -265,7 +265,7 @@ getPoint3dm_p(const POINTARRAY *pa, int n, POINT3DM *op)
                return 0;
        }
 
-       if ( (n<0) || (n>=pa->npoints))
+       if ( n>=pa->npoints )
        {
                lwnotice("%s [%d] called with n=%d and npoints=%d", __FILE__, __LINE__, n, pa->npoints);
                return 0;
@@ -321,7 +321,7 @@ getPoint3dm_p(const POINTARRAY *pa, int n, POINT3DM *op)
  * NOTE: point is a real POINT2D *not* a pointer
  */
 POINT2D
-getPoint2d(const POINTARRAY *pa, int n)
+getPoint2d(const POINTARRAY *pa, uint32_t n)
 {
        const POINT2D *result;
        result = getPoint2d_cp(pa, n);
@@ -335,7 +335,7 @@ getPoint2d(const POINTARRAY *pa, int n)
  * NOTE: this will modify the point2d pointed to by 'point'.
  */
 int
-getPoint2d_p(const POINTARRAY *pa, int n, POINT2D *point)
+getPoint2d_p(const POINTARRAY *pa, uint32_t n, POINT2D *point)
 {
        if ( ! pa )
        {
@@ -343,7 +343,7 @@ getPoint2d_p(const POINTARRAY *pa, int n, POINT2D *point)
                return 0;
        }
 
-       if ( (n<0) || (n>=pa->npoints))
+       if ( n>=pa->npoints )
        {
                lwnotice("%s [%d] called with n=%d and npoints=%d", __FILE__, __LINE__, n, pa->npoints);
                return 0;
@@ -361,11 +361,11 @@ getPoint2d_p(const POINTARRAY *pa, int n, POINT2D *point)
 * values, only read them.
 */
 const POINT2D*
-getPoint2d_cp(const POINTARRAY *pa, int n)
+getPoint2d_cp(const POINTARRAY *pa, uint32_t n)
 {
        if ( ! pa ) return 0;
 
-       if ( (n<0) || (n>=pa->npoints))
+       if ( n>=pa->npoints )
        {
                lwerror("getPoint2d_cp: point offset out of range");
                return 0; /*error */
@@ -375,7 +375,7 @@ getPoint2d_cp(const POINTARRAY *pa, int n)
 }
 
 const POINT3DZ*
-getPoint3dz_cp(const POINTARRAY *pa, int n)
+getPoint3dz_cp(const POINTARRAY *pa, uint32_t n)
 {
        if ( ! pa ) return 0;
 
@@ -385,7 +385,7 @@ getPoint3dz_cp(const POINTARRAY *pa, int n)
                return 0; /*error */
        }
 
-       if ( (n<0) || (n>=pa->npoints))
+       if ( n>=pa->npoints )
        {
                lwerror("getPoint3dz_cp: point offset out of range");
                return 0; /*error */
@@ -396,7 +396,7 @@ getPoint3dz_cp(const POINTARRAY *pa, int n)
 
 
 const POINT4D*
-getPoint4d_cp(const POINTARRAY *pa, int n)
+getPoint4d_cp(const POINTARRAY *pa, uint32_t n)
 {
        if ( ! pa ) return 0;
 
@@ -406,7 +406,7 @@ getPoint4d_cp(const POINTARRAY *pa, int n)
                return 0; /*error */
        }
 
-       if ( (n<0) || (n>=pa->npoints))
+       if ( n>=pa->npoints )
        {
                lwerror("getPoint4d_cp: point offset out of range");
                return 0; /*error */
@@ -425,10 +425,10 @@ getPoint4d_cp(const POINTARRAY *pa, int n)
  *
  */
 void
-ptarray_set_point4d(POINTARRAY *pa, int n, const POINT4D *p4d)
+ptarray_set_point4d(POINTARRAY *pa, uint32_t n, const POINT4D *p4d)
 {
        uint8_t *ptr;
-       assert(n >= 0 && n < pa->npoints);
+       assert(n < pa->npoints);
        ptr=getPoint_internal(pa, n);
        switch ( FLAGS_GET_ZM(pa->flags) )
        {
@@ -450,7 +450,7 @@ ptarray_set_point4d(POINTARRAY *pa, int n, const POINT4D *p4d)
 }
 
 void
-ptarray_copy_point(POINTARRAY *pa, int from, int to)
+ptarray_copy_point(POINTARRAY *pa, uint32_t from, uint32_t to)
 {
        int ndims = FLAGS_NDIMS(pa->flags);
        switch (ndims)
@@ -498,7 +498,7 @@ void printBOX3D(BOX3D *box)
 
 void printPA(POINTARRAY *pa)
 {
-       int t;
+       uint32_t t;
        POINT4D pt;
        char *mflag;
 
index 3fbeb3bfaabe28c4f40875dbc559d5dab90bec55..0fb9bf7181ec3dfbe684ff4602260294a9b428a2 100644 (file)
@@ -89,7 +89,7 @@ lwcollection_summary(LWCOLLECTION *col, int offset)
        size_t size = 128;
        char *result;
        char *tmp;
-       int i;
+       uint32_t i;
        static char *nl = "\n";
        char *pad="";
        char *zmflags = lwgeom_flagchars((LWGEOM*)col);
@@ -127,7 +127,7 @@ lwpoly_summary(LWPOLY *poly, int offset)
        char tmp[256];
        size_t size = 64*(poly->nrings+1)+128;
        char *result;
-       int i;
+       uint32_t i;
        char *pad="";
        static char *nl = "\n";
        char *zmflags = lwgeom_flagchars((LWGEOM*)poly);
index 4143e864b44f5cc6f427d8789f5ff8340cd86696..a7fdf69a2aec099d46a189deae5e777316b51f8c 100644 (file)
@@ -436,8 +436,9 @@ LWGEOM2GEOS(const LWGEOM *lwgeom, int autofix)
                                geoms[i-1] = ptarray_to_GEOSLinearRing(lwpoly->rings[i], autofix);
                                if ( ! geoms[i-1] )
                                {
-                                       --i;
-                                       while (i) GEOSGeom_destroy(geoms[--i]);
+                                       uint32_t k;
+                                       for (k = 0; k < i-1; k++)
+                                               GEOSGeom_destroy(geoms[k]);
                                        free(geoms);
                                        GEOSGeom_destroy(shell);
                                        return NULL;
@@ -479,7 +480,9 @@ LWGEOM2GEOS(const LWGEOM *lwgeom, int autofix)
                        g = LWGEOM2GEOS(lwc->geoms[i], 0);
                        if ( ! g )
                        {
-                               while (j) GEOSGeom_destroy(geoms[--j]);
+                               uint32_t k;
+                               for (k = 0; k < j; k++)
+                                       GEOSGeom_destroy(geoms[k]);
                                free(geoms);
                                return NULL;
                        }
@@ -1672,17 +1675,17 @@ lwgeom_offsetcurve(const LWLINE *lwline, double size, int quadsegs, int joinStyl
 
 
 LWMPOINT*
-lwpoly_to_points(const LWPOLY *lwpoly, int npoints)
+lwpoly_to_points(const LWPOLY *lwpoly, uint32_t npoints)
 {
        double area, bbox_area, bbox_width, bbox_height;
        GBOX bbox;
        const LWGEOM *lwgeom = (LWGEOM*)lwpoly;
-       int sample_npoints, sample_sqrt, sample_width, sample_height;
+       uint32_t sample_npoints, sample_sqrt, sample_width, sample_height;
        double sample_cell_size;
-       int i, j, n;
-       int iterations = 0;
-       int npoints_generated = 0;
-       int npoints_tested = 0;
+       uint32_t i, j, n;
+       uint32_t iterations = 0;
+       uint32_t npoints_generated = 0;
+       uint32_t npoints_tested = 0;
        GEOSGeometry *g;
        const GEOSPreparedGeometry *gprep;
        GEOSGeometry *gpt;
@@ -1864,11 +1867,11 @@ lwpoly_to_points(const LWPOLY *lwpoly, int npoints)
 * and bundle up final result in a single multipoint.
 */
 LWMPOINT*
-lwmpoly_to_points(const LWMPOLY *lwmpoly, int npoints)
+lwmpoly_to_points(const LWMPOLY *lwmpoly, uint32_t npoints)
 {
        const LWGEOM *lwgeom = (LWGEOM*)lwmpoly;
        double area;
-       int i;
+       uint32_t i;
        LWMPOINT *mpt = NULL;
 
        if (lwgeom_get_type(lwgeom) != MULTIPOLYGONTYPE)
@@ -1896,7 +1899,7 @@ lwmpoly_to_points(const LWMPOLY *lwmpoly, int npoints)
                        }
                        else
                        {
-                               int j;
+                               uint32_t j;
                                for (j = 0; j < sub_mpt->ngeoms; j++)
                                {
                                        mpt = lwmpoint_add_lwpoint(mpt, sub_mpt->geoms[j]);
@@ -1914,7 +1917,7 @@ lwmpoly_to_points(const LWMPOLY *lwmpoly, int npoints)
 
 
 LWMPOINT*
-lwgeom_to_points(const LWGEOM *lwgeom, int npoints)
+lwgeom_to_points(const LWGEOM *lwgeom, uint32_t npoints)
 {
        switch(lwgeom_get_type(lwgeom))
        {
index 5a6138a4e8788c42915c088c2185e18529698be9..ea8948063f24e47b8bdf0b9402070fd3df687c49 100644 (file)
@@ -230,7 +230,7 @@ lwpoly_make_geos_friendly(LWPOLY *poly)
 {
        LWGEOM* ret;
        POINTARRAY **new_rings;
-       int i;
+       uint32_t i;
 
        /* If the polygon has no rings there's nothing to do */
        if ( ! poly->nrings ) return (LWGEOM*)poly;
@@ -795,7 +795,7 @@ LWGEOM_GEOS_makeValidCollection(const GEOSGeometry* gin)
        int nvgeoms;
        GEOSGeometry **vgeoms;
        GEOSGeom gout;
-       unsigned int i;
+       int i;
 
        nvgeoms = GEOSGetNumGeometries(gin);
        if ( nvgeoms == -1 ) {
@@ -812,7 +812,9 @@ LWGEOM_GEOS_makeValidCollection(const GEOSGeometry* gin)
        for ( i=0; i<nvgeoms; ++i ) {
                vgeoms[i] = LWGEOM_GEOS_makeValid( GEOSGetGeometryN(gin, i) );
                if ( ! vgeoms[i] ) {
-                       while (i--) GEOSGeom_destroy(vgeoms[i]);
+                       int j;
+                       for (j = 0; j<i-1; j++)
+                               GEOSGeom_destroy(vgeoms[j]);
                        lwfree(vgeoms);
                        /* we expect lwerror being called already by makeValid */
                        return NULL;
index 1ad4a6e61ac444084be816b2cdec2e79b368f14c..459fec9f9f82f7c4da9dd2cdd2108605057ff233 100644 (file)
@@ -172,7 +172,7 @@ static LWGEOM*
 lwline_split_by_mpoint(const LWLINE* lwline_in, const LWMPOINT* mp)
 {
   LWMLINE* out;
-  int i, j;
+  uint32_t i, j;
 
   out = lwmline_construct_empty(lwline_in->srid,
           FLAGS_GET_Z(lwline_in->flags),
@@ -215,7 +215,7 @@ lwline_split_by_point_to(const LWLINE* lwline_in, const LWPOINT* blade_in,
        POINTARRAY *ipa = lwline_in->points;
        POINTARRAY* pa1;
        POINTARRAY* pa2;
-       int i, nsegs, seg = -1;
+       uint32_t i, nsegs, seg = UINT32_MAX;
 
        /* Possible outcomes:
         *
@@ -257,7 +257,7 @@ lwline_split_by_point_to(const LWLINE* lwline_in, const LWPOINT* blade_in,
        if ( mindist > 0 ) return 0;
 
        /* empty or single-point line, intersection on boundary */
-       if ( seg < 0 ) return 1;
+       if ( seg == UINT32_MAX ) return 1;
 
        /*
         * We need to project the
index bcdf79a6d993380f48ce48fdaefea6f50c9d395e..1f42ef82f0b86829bd53a7e9f6e06298ccac46fb 100644 (file)
@@ -1736,7 +1736,7 @@ _lwt_FindAdjacentEdges( LWT_TOPOLOGY* topo, LWT_ELEMID node, edgeend *data,
 static int
 _lwt_GetInteriorEdgePoint(const LWLINE* edge, POINT2D* ip)
 {
-  int i;
+  uint32_t i;
   POINT2D fp, lp, tp;
   POINTARRAY *pa = edge->points;
 
@@ -2972,7 +2972,7 @@ _lwt_FindNextRingEdge(const POINTARRAY *ring, int from,
     POINTARRAY *epa = edge->points;
     POINT2D p2, pt;
     int match = 0;
-    int j;
+    uint32_t j;
 
     /* Skip if the edge is a dangling one */
     if ( isoe->face_left == isoe->face_right )
@@ -2984,6 +2984,14 @@ _lwt_FindNextRingEdge(const POINTARRAY *ring, int from,
       continue;
     }
 
+    if (epa->npoints < 2)
+    {
+      LWDEBUGF(3, "_lwt_FindNextRingEdge: edge %" LWTFMT_ELEMID
+                  " has only %"PRIu32" points",
+                  isoe->edge_id, epa->npoints);
+      continue;
+    }
+
 #if 0
     size_t sz;
     LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " is %s",
@@ -3040,11 +3048,11 @@ _lwt_FindNextRingEdge(const POINTARRAY *ring, int from,
         LWDEBUGF(1, "Last point of edge %" LWTFMT_ELEMID
                     " matches ring vertex %d", isoe->edge_id, from);
         /* last point matches, let's check next non-equal one */
-        for ( j=epa->npoints-2; j>=0; --j )
+        for ( j=2; j<=epa->npoints; j++ )
         {
-          getPoint2d_p(epa, j, &p2);
+          getPoint2d_p(epa, epa->npoints - j, &p2);
           LWDEBUGF(1, "Edge %" LWTFMT_ELEMID " 'prev' point %d is %g,%g",
-                      isoe->edge_id, j, p2.x, p2.y);
+                      isoe->edge_id, epa->npoints - j, p2.x, p2.y);
           /* we won't check duplicated edge points */
           if ( p2d_same(&p1, &p2) ) continue;
           /* we assume there are no duplicated points in ring */
@@ -3106,7 +3114,8 @@ lwt_GetFaceEdges(LWT_TOPOLOGY* topo, LWT_ELEMID face_id, LWT_ELEMID **out )
   LWPOLY *facepoly;
   LWT_ISO_EDGE *edges;
   int numfaceedges;
-  int fields, i;
+  int fields;
+  uint32_t i;
   int nseid = 0; /* number of signed edge ids */
   int prevseid;
   LWT_ELEMID *seid; /* signed edge ids */
@@ -3174,13 +3183,13 @@ lwt_GetFaceEdges(LWT_TOPOLOGY* topo, LWT_ELEMID face_id, LWT_ELEMID **out )
   for ( i=0; i<facepoly->nrings; ++i )
   {
     const POINTARRAY *ring = facepoly->rings[i];
-    int j = 0;
+    int32_t j = 0;
     LWT_ISO_EDGE *nextedge;
     LWLINE *nextline;
 
     LWDEBUGF(1, "Ring %d has %d points", i, ring->npoints);
 
-    while ( j < ring->npoints-1 )
+    while ( j < (int32_t) ring->npoints-1 )
     {
       LWDEBUGF(1, "Looking for edge covering ring %d from vertex %d",
                   i, j);
@@ -4478,10 +4487,10 @@ _lwt_HealEdges( LWT_TOPOLOGY* topo, LWT_ELEMID eid1, LWT_ELEMID eid2,
       if ( node_edges[i].edge_id == eid2 ) continue;
       commonnode = -1;
       /* append to string, for error message */
-      if ( bufleft ) {
+      if ( bufleft > 0 ) {
         r = snprintf(ptr, bufleft, "%s%" LWTFMT_ELEMID,
                      ( ptr==buf ? "" : "," ), node_edges[i].edge_id);
-        if ( r >= bufleft )
+        if ( r >= (int) bufleft )
         {
           bufleft = 0;
           buf[252] = '.';
@@ -4529,10 +4538,10 @@ _lwt_HealEdges( LWT_TOPOLOGY* topo, LWT_ELEMID eid1, LWT_ELEMID eid2,
         if ( node_edges[i].edge_id == eid2 ) continue;
         commonnode = -1;
         /* append to string, for error message */
-        if ( bufleft ) {
+        if ( bufleft > 0 ) {
           r = snprintf(ptr, bufleft, "%s%" LWTFMT_ELEMID,
                        ( ptr==buf ? "" : "," ), node_edges[i].edge_id);
-          if ( r >= bufleft )
+          if ( r >= (int) bufleft )
           {
             bufleft = 0;
             buf[252] = '.';
@@ -5684,7 +5693,7 @@ static LWGEOM *
 _lwt_split_by_nodes(const LWGEOM *g, const LWGEOM *nodes)
 {
   LWCOLLECTION *col = lwgeom_as_lwcollection(nodes);
-  int i;
+  uint32_t i;
   LWGEOM *bg;
 
   bg = lwgeom_clone_deep(g);
@@ -5995,11 +6004,12 @@ lwt_AddLineNoFace(LWT_TOPOLOGY* topo, LWLINE* line, double tol, int* nedges)
 LWT_ELEMID*
 lwt_AddPolygon(LWT_TOPOLOGY* topo, LWPOLY* poly, double tol, int* nfaces)
 {
-  int i;
+  uint32_t i;
   *nfaces = -1; /* error condition, by default */
   int num;
   LWT_ISO_FACE *faces;
   int nfacesinbox;
+  int j;
   LWT_ELEMID *ids = NULL;
   GBOX qbox;
   const GEOSPreparedGeometry *ppoly;
@@ -6057,9 +6067,9 @@ lwt_AddPolygon(LWT_TOPOLOGY* topo, LWPOLY* poly, double tol, int* nfaces)
     }
     ppoly = GEOSPrepare(polyg);
     ids = lwalloc(sizeof(LWT_ELEMID)*nfacesinbox);
-    for ( i=0; i<nfacesinbox; ++i )
+    for ( j=0; j<nfacesinbox; ++j )
     {
-      LWT_ISO_FACE *f = &(faces[i]);
+      LWT_ISO_FACE *f = &(faces[j]);
       LWGEOM *fg;
       GEOSGeometry *fgg, *sp;
       int covers;
@@ -6068,12 +6078,12 @@ lwt_AddPolygon(LWT_TOPOLOGY* topo, LWPOLY* poly, double tol, int* nfaces)
       fg = lwt_GetFaceGeometry( topo, f->face_id );
       if ( ! fg )
       {
-        i = f->face_id; /* so we can destroy faces */
+        j = f->face_id; /* so we can destroy faces */
         GEOSPreparedGeom_destroy(ppoly);
         GEOSGeom_destroy(polyg);
         lwfree(ids);
         _lwt_release_faces(faces, nfacesinbox);
-        lwerror("Could not get geometry of face %" LWTFMT_ELEMID, i);
+        lwerror("Could not get geometry of face %" LWTFMT_ELEMID, j);
         return NULL;
       }
       /* check if a point on this face's surface is covered by our polygon */
@@ -6273,7 +6283,7 @@ _lwt_EdgeRingIterator_next(LWT_EDGERING_POINT_ITERATOR *it, POINT2D *pt)
   getPoint2d_p(pa, it->curidx, pt);
   if ( el->left ) {
     it->curidx++;
-    if ( it->curidx >= pa->npoints ) tonext = 1;
+    if ( it->curidx >= (int) pa->npoints ) tonext = 1;
   } else {
     it->curidx--;
     if ( it->curidx < 0 ) tonext = 1;
index 210e7fb64bd5fea1e0b53d6ea3e1ff31c2d4d13d..7d772114f79782fb8c44bba0bcd95c08d9ada733 100644 (file)
@@ -52,7 +52,7 @@ to_dec(POINT4D *pt)
 int
 ptarray_transform(POINTARRAY *pa, projPJ inpj, projPJ outpj)
 {
-       int i;
+       uint32_t i;
        POINT4D p;
 
        for ( i = 0; i < pa->npoints; i++ )
@@ -73,7 +73,7 @@ ptarray_transform(POINTARRAY *pa, projPJ inpj, projPJ outpj)
 int
 lwgeom_transform(LWGEOM *geom, projPJ inpj, projPJ outpj)
 {
-       int i;
+       uint32_t i;
 
        /* No points to transform in an empty! */
        if ( lwgeom_is_empty(geom) )
index 1e40527255973f225c312501d8d3862910b54e55..0f50ae2b6926acc7388821334a6af4b8032769e6 100644 (file)
@@ -122,7 +122,7 @@ lwcollection_wrapx(const LWCOLLECTION* lwcoll_in, double cutx, double amount)
 {
        LWGEOM** wrap_geoms;
        LWCOLLECTION* out;
-       int i;
+       uint32_t i;
        int outtype = lwcoll_in->type;
 
        wrap_geoms = lwalloc(lwcoll_in->ngeoms * sizeof(LWGEOM*));
@@ -138,10 +138,12 @@ lwcollection_wrapx(const LWCOLLECTION* lwcoll_in, double cutx, double amount)
                wrap_geoms[i] = lwgeom_wrapx(lwcoll_in->geoms[i], cutx, amount);
                /* an exception should prevent this from ever returning NULL */
                if ( ! wrap_geoms[i] ) {
+                       uint32_t j;
                        lwnotice("Error wrapping geometry, cleaning up");
-                       while ((--i)>=0) {
-                               lwnotice("cleaning geometry %d (%p)", i, wrap_geoms[i]);
-                               lwgeom_free(wrap_geoms[i]);
+                       for (j = 0; j < i; j++)
+                       {
+                               lwnotice("cleaning geometry %d (%p)", j, wrap_geoms[j]);
+                               lwgeom_free(wrap_geoms[j]);
                        }
                        lwfree(wrap_geoms);
                        lwnotice("cleanup complete");
index d6df11f4c1d63e25d4b9c17b182be9ffa05f1746..737d4a2dc1deb50cd24e44c9149b75048388f489 100644 (file)
@@ -75,7 +75,7 @@ free_homogenizebuffer(HomogenizeBuffer *buffer)
 static void
 lwcollection_build_buffer(const LWCOLLECTION *col, HomogenizeBuffer *buffer)
 {
-       int i;
+       uint32_t i;
 
        if ( ! col ) return;
        if ( lwgeom_is_empty(lwcollection_as_lwgeom(col)) ) return;
index 4ada8816c65801194bee20146bd3c8fe5e9de4d3..89670d909688b8781b89a4f28229856e18fb03b3 100644 (file)
@@ -173,7 +173,7 @@ static POINTARRAY* ptarray_from_twkb_state(twkb_parse_state *s, uint32_t npoints
 {
        POINTARRAY *pa = NULL;
        uint32_t ndims = s->ndims;
-       int i;
+       uint32_t i;
        double *dlist;
 
        LWDEBUG(2,"Entering ptarray_from_twkb_state");
@@ -272,7 +272,7 @@ static LWLINE* lwline_from_twkb_state(twkb_parse_state *s)
 static LWPOLY* lwpoly_from_twkb_state(twkb_parse_state *s)
 {
        uint32_t nrings;
-       int i;
+       uint32_t i;
        LWPOLY *poly;
 
        LWDEBUG(2,"Entering lwpoly_from_twkb_state");
index 676520c75658ea0c7cdb48b7cf502eab0c9eb96d..53bb21ec117093d4b23dc3d544a7d68db6b758e6 100644 (file)
@@ -88,7 +88,7 @@ uint8_t* bytes_from_hexbytes(const char *hexbuf, size_t hexsize)
 {
        uint8_t *buf = NULL;
        register uint8_t h1, h2;
-       int i;
+       uint32_t i;
 
        if( hexsize % 2 )
                lwerror("Invalid hex string, length (%d) has to be a multiple of two!", hexsize);
@@ -368,7 +368,7 @@ static POINTARRAY* ptarray_from_wkb_state(wkb_parse_state *s)
        /* Otherwise we have to read each double, separately. */
        else
        {
-               int i = 0;
+               uint32_t i = 0;
                double *dlist;
                pa = ptarray_construct(s->has_z, s->has_m, npoints);
                dlist = (double*)(pa->serialized_pointlist);
@@ -415,7 +415,7 @@ static LWPOINT* lwpoint_from_wkb_state(wkb_parse_state *s)
        /* Otherwise we have to read each double, separately */
        else
        {
-               int i = 0;
+               uint32_t i = 0;
                double *dlist;
                pa = ptarray_construct(s->has_z, s->has_m, npoints);
                dlist = (double*)(pa->serialized_pointlist);
@@ -507,7 +507,7 @@ static LWCIRCSTRING* lwcircstring_from_wkb_state(wkb_parse_state *s)
 static LWPOLY* lwpoly_from_wkb_state(wkb_parse_state *s)
 {
        uint32_t nrings = integer_from_wkb_state(s);
-       int i = 0;
+       uint32_t i = 0;
        LWPOLY *poly = lwpoly_construct_empty(s->srid, s->has_z, s->has_m);
 
        LWDEBUGF(4,"Polygon has %d rings", nrings);
@@ -608,7 +608,7 @@ static LWCURVEPOLY* lwcurvepoly_from_wkb_state(wkb_parse_state *s)
        uint32_t ngeoms = integer_from_wkb_state(s);
        LWCURVEPOLY *cp = lwcurvepoly_construct_empty(s->srid, s->has_z, s->has_m);
        LWGEOM *geom = NULL;
-       int i;
+       uint32_t i;
 
        /* Empty collection? */
        if ( ngeoms == 0 )
@@ -638,7 +638,7 @@ static LWCOLLECTION* lwcollection_from_wkb_state(wkb_parse_state *s)
        uint32_t ngeoms = integer_from_wkb_state(s);
        LWCOLLECTION *col = lwcollection_construct_empty(s->lwtype, s->srid, s->has_z, s->has_m);
        LWGEOM *geom = NULL;
-       int i;
+       uint32_t i;
 
        LWDEBUGF(4,"Collection has %d components", ngeoms);
 
index 071b08833281570bb4e41c743e72a870b9b866cf..704475d525bf279f6ed885cf77bc0ccae1cab48b 100644 (file)
@@ -74,7 +74,7 @@ int wkt_lexer_read_srid(char *str)
 
 static uint8_t wkt_dimensionality(char *dimensionality)
 {
-       int i = 0;
+       size_t i = 0;
        uint8_t flags = 0;
 
        if( ! dimensionality )
@@ -102,7 +102,7 @@ static int wkt_parser_set_dims(LWGEOM *geom, uint8_t flags)
 {
        int hasz = FLAGS_GET_Z(flags);
        int hasm = FLAGS_GET_M(flags);
-       int i = 0;
+       uint32_t i = 0;
 
        /* Error on junk */
        if( ! geom )
@@ -607,7 +607,7 @@ LWGEOM* wkt_parser_curvepolygon_add_ring(LWGEOM *poly, LWGEOM *ring)
        /* Apply check for minimum number of points, if requested. */
        if( (global_parser_result.parser_check_flags & LW_PARSER_CHECK_MINPOINTS) )
        {
-               int vertices_needed = 3;
+               uint32_t vertices_needed = 3;
 
                if ( ring->type == LINETYPE )
                        vertices_needed = 4;
@@ -817,7 +817,7 @@ LWGEOM* wkt_parser_collection_finalize(int lwtype, LWGEOM *geom, char *dimension
        if ( flagdims > 2 )
        {
                LWCOLLECTION *col = lwgeom_as_lwcollection(geom);
-               int i;
+               uint32_t i;
 
                for ( i = 0 ; i < col->ngeoms; i++ )
                {
index fb908bb94f297d3db4cd623dd577a0dc2e229c2c..a9670e21b212513d93905e8ef69a4c05227a6ca7 100644 (file)
@@ -1821,8 +1821,7 @@ YY_BUFFER_STATE wkt_yy_scan_buffer  (char * base, yy_size_t  size )
  */
 YY_BUFFER_STATE wkt_yy_scan_string (yyconst char * yystr )
 {
-
-       return wkt_yy_scan_bytes(yystr,strlen(yystr) );
+       return wkt_yy_scan_bytes(yystr, strlen(yystr) );
 }
 
 /** Setup the input buffer state to scan the given bytes. The next call to wkt_yylex() will
@@ -1837,7 +1836,7 @@ YY_BUFFER_STATE wkt_yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_
        YY_BUFFER_STATE b;
        char *buf;
        yy_size_t n;
-       int i;
+       yy_size_t i;
 
        /* Get memory for full buffer, including space for trailing EOB's. */
        n = _yybytes_len + 2;
index fa0b449ad773b55e8f642b640b77a0105996ad53..ff3d3da25f054868fa044ddf80125d2adb783fb4 100644 (file)
 #define KMEANS_MAX_ITERATIONS 1000
 
 static void
-update_r(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, unsigned int k)
+update_r(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, uint32_t k)
 {
        POINT2D* obj;
        unsigned int i;
        double distance, curr_distance;
-       int cluster, curr_cluster;
+       uint32_t cluster, curr_cluster;
 
        for (i = 0; i < n; i++)
        {
@@ -57,14 +57,14 @@ update_r(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, unsigned
                }
 
                /* Store the nearest cluster this object is in */
-               clusters[i] = curr_cluster;
+               clusters[i] = (int) curr_cluster;
        }
 }
 
 static void
-update_means(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, unsigned int* weights, unsigned int k)
+update_means(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, uint32_t* weights, uint32_t k)
 {
-       unsigned int i;
+       uint32_t i;
 
        memset(weights, 0, sizeof(int) * k);
        for (i = 0; i < k; i++)
@@ -86,13 +86,13 @@ update_means(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, unsig
 }
 
 static int
-kmeans(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, unsigned int k)
+kmeans(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, uint32_t k)
 {
-       unsigned int i = 0;
+       uint32_t i = 0;
        int* clusters_last;
        int converged = LW_FALSE;
-       uint32_t clusters_sz = sizeof(int) * n;
-       unsigned int* weights;
+       size_t clusters_sz = sizeof(int) * n;
+       uint32_t* weights;
 
        weights = lwalloc(sizeof(int) * k);
 
@@ -124,16 +124,16 @@ kmeans(POINT2D** objs, int* clusters, uint32_t n, POINT2D** centers, unsigned in
 }
 
 int*
-lwgeom_cluster_2d_kmeans(const LWGEOM** geoms, int n, int k)
+lwgeom_cluster_2d_kmeans(const LWGEOM** geoms, uint32_t n, uint32_t k)
 {
-       unsigned int i;
-       unsigned int num_centroids = 0;
+       uint32_t i;
+       uint32_t num_centroids = 0;
        LWGEOM** centroids;
        POINT2D* centers_raw;
        double* distances;
        const POINT2D* cp;
        int result = LW_FALSE;
-       unsigned int boundary_point_idx = 0;
+       uint32_t boundary_point_idx = 0;
        double max_norm = -DBL_MAX;
        double curr_norm;
 
@@ -236,10 +236,10 @@ lwgeom_cluster_2d_kmeans(const LWGEOM** geoms, int n, int k)
        /* loop i on clusters, skip 0 as it's found already */
        for (i = 1; i < k; i++)
        {
-               unsigned int j;
+               uint32_t j;
                double max_distance = -DBL_MAX;
                double curr_distance;
-               unsigned int candidate_center = 0;
+               uint32_t candidate_center = 0;
 
                /* loop j on objs */
                for (j = 0; j < n; j++)
index 617597c2a311bc6255b18e1677c773924f4a17a5..0c7fa8e64cb816cc799a619d652c6e0b61d873fa 100644 (file)
@@ -159,7 +159,7 @@ lwline_same(const LWLINE *l1, const LWLINE *l2)
 LWLINE *
 lwline_from_lwgeom_array(int srid, uint32_t ngeoms, LWGEOM **geoms)
 {
-       int i;
+       uint32_t i;
        int hasz = LW_FALSE;
        int hasm = LW_FALSE;
        POINTARRAY *pa;
@@ -236,7 +236,7 @@ lwline_from_lwgeom_array(int srid, uint32_t ngeoms, LWGEOM **geoms)
 LWLINE *
 lwline_from_ptarray(int srid, uint32_t npoints, LWPOINT **points)
 {
-       int i;
+       uint32_t i;
        int hasz = LW_FALSE;
        int hasm = LW_FALSE;
        POINTARRAY *pa;
@@ -315,13 +315,13 @@ lwline_from_lwmpoint(int srid, const LWMPOINT *mpoint)
 * Returns NULL if the geometry is empty or the index invalid.
 */
 LWPOINT*
-lwline_get_lwpoint(const LWLINE *line, int where)
+lwline_get_lwpoint(const LWLINE *line, uint32_t where)
 {
        POINT4D pt;
        LWPOINT *lwpoint;
        POINTARRAY *pa;
 
-       if ( lwline_is_empty(line) || where < 0 || where >= line->points->npoints )
+       if ( lwline_is_empty(line) || where >= line->points->npoints )
                return NULL;
 
        pa = ptarray_construct_empty(FLAGS_GET_Z(line->flags), FLAGS_GET_M(line->flags), 1);
@@ -333,7 +333,7 @@ lwline_get_lwpoint(const LWLINE *line, int where)
 
 
 int
-lwline_add_lwpoint(LWLINE *line, LWPOINT *point, int where)
+lwline_add_lwpoint(LWLINE *line, LWPOINT *point, uint32_t where)
 {
        POINT4D pt;
        getPoint4d_p(point->point, 0, &pt);
@@ -516,7 +516,7 @@ int lwline_is_empty(const LWLINE *line)
 }
 
 
-int lwline_count_vertices(LWLINE *line)
+uint32_t lwline_count_vertices(LWLINE *line)
 {
        assert(line);
        if ( ! line->points )
index e83fbf642dd23a3c898f85d7306258a36dba8733..d6ab0089db9ce26a8e502518cb2c30fd1c6f2cbd 100644 (file)
@@ -79,7 +79,7 @@ segment_locate_along(const POINT4D *p1, const POINT4D *p2, double m, double offs
 static POINTARRAY*
 ptarray_locate_along(const POINTARRAY *pa, double m, double offset)
 {
-       int i;
+       uint32_t i;
        POINT4D p1, p2, pn;
        POINTARRAY *dpa = NULL;
 
@@ -150,7 +150,7 @@ lwmline_locate_along(const LWMLINE *lwmline, double m, double offset)
 {
        LWMPOINT *lwmpoint = NULL;
        LWGEOM *lwg = lwmline_as_lwgeom(lwmline);
-       int i, j;
+       uint32_t i, j;
 
        /* Return degenerates upwards */
        if ( (!lwmline) || (lwmline->ngeoms < 1) ) return NULL;
@@ -197,7 +197,7 @@ lwmpoint_locate_along(const LWMPOINT *lwin, double m, double offset)
 {
        LWGEOM *lwg = lwmpoint_as_lwgeom(lwin);
        LWMPOINT *lwout = NULL;
-       int i;
+       uint32_t i;
 
        /* Construct return */
        lwout = lwmpoint_construct_empty(lwgeom_get_srid(lwg), lwgeom_has_z(lwg), lwgeom_has_m(lwg));
@@ -416,7 +416,7 @@ lwmpoint_clip_to_ordinate_range(const LWMPOINT *mpoint, char ordinate, double fr
 {
        LWCOLLECTION *lwgeom_out = NULL;
        char hasz, hasm;
-       int i;
+       uint32_t i;
 
        /* Nothing to do with NULL */
        if ( ! mpoint )
@@ -485,7 +485,7 @@ lwmline_clip_to_ordinate_range(const LWMLINE *mline, char ordinate, double from,
                LWCOLLECTION *col;
                char hasz = lwgeom_has_z(lwmline_as_lwgeom(mline));
                char hasm = lwgeom_has_m(lwmline_as_lwgeom(mline));
-               int i, j;
+               uint32_t i, j;
                char homogeneous = 1;
                size_t geoms_size = 0;
                lwgeom_out = lwcollection_construct_empty(MULTILINETYPE, mline->srid, hasz, hasm);
@@ -551,7 +551,7 @@ lwline_clip_to_ordinate_range(const LWLINE *line, char ordinate, double from, do
        POINTARRAY *pa_in = NULL;
        LWCOLLECTION *lwgeom_out = NULL;
        POINTARRAY *dp = NULL;
-       int i;
+       uint32_t i;
        int added_last_point = 0;
        POINT4D *p = NULL, *q = NULL, *r = NULL;
        double ordinate_value_p = 0.0, ordinate_value_q = 0.0;
@@ -771,7 +771,7 @@ lwgeom_clip_to_ordinate_range(const LWGEOM *lwin, char ordinate, double from, do
 {
        LWCOLLECTION *out_col;
        LWCOLLECTION *out_offset;
-       int i;
+       uint32_t i;
 
        if ( ! lwin )
                lwerror("lwgeom_clip_to_ordinate_range: null input geometry!");
@@ -989,7 +989,7 @@ static int
 ptarray_collect_mvals(const POINTARRAY *pa, double tmin, double tmax, double *mvals)
 {
        POINT4D pbuf;
-       int i, n=0;
+       uint32_t i, n=0;
        for (i=0; i<pa->npoints; ++i)
        {
                getPoint4d_p(pa, i, &pbuf); /* could be optimized */
@@ -1044,9 +1044,9 @@ uniq(double *vals, int nvals)
  *         or -1 if given measure was out of the known range.
  */
 static int
-ptarray_locate_along_linear(const POINTARRAY *pa, double m, POINT4D *p, int from)
+ptarray_locate_along_linear(const POINTARRAY *pa, double m, POINT4D *p, uint32_t from)
 {
-       int i = from;
+       uint32_t i = from;
        POINT4D p1, p2;
 
        /* Walk through each segment in the point array */
index b58fce70aeb034a2eb1b40cc942594be30539f26..ab93026f268299fe15101b58b379b19121550f68 100644 (file)
@@ -55,7 +55,7 @@ LWMLINE* lwmline_add_lwline(LWMLINE *mobj, const LWLINE *obj)
 LWMLINE*
 lwmline_measured_from_lwmline(const LWMLINE *lwmline, double m_start, double m_end)
 {
-       int i = 0;
+       uint32_t i = 0;
        int hasm = 0, hasz = 0;
        double length = 0.0, length_so_far = 0.0;
        double m_range = m_end - m_start;
@@ -111,7 +111,7 @@ lwmline_measured_from_lwmline(const LWMLINE *lwmline, double m_start, double m_e
 
 void lwmline_free(LWMLINE *mline)
 {
-       int i;
+       uint32_t i;
        if ( ! mline ) return;
 
        if ( mline->bbox )
index b711f9d95cf57d9de4d2e1c00df568a812e9b9fc..ae916d74b892cae6c4bd5df0919c9d78d3d07f6f 100644 (file)
@@ -51,7 +51,7 @@ LWMPOINT* lwmpoint_add_lwpoint(LWMPOINT *mobj, const LWPOINT *obj)
 LWMPOINT *
 lwmpoint_construct(int srid, const POINTARRAY *pa)
 {
-       int i;
+       uint32_t i;
        int hasz = ptarray_has_z(pa);
        int hasm = ptarray_has_m(pa);
        LWMPOINT *ret = (LWMPOINT*)lwcollection_construct_empty(MULTIPOINTTYPE, srid, hasz, hasm);
@@ -71,7 +71,7 @@ lwmpoint_construct(int srid, const POINTARRAY *pa)
 
 void lwmpoint_free(LWMPOINT *mpt)
 {
-       int i;
+       uint32_t i;
 
        if ( ! mpt ) return;
 
index a35f7bdccf19d7a68cbc9add5e23140b3b5212c8..8bd2b2d7405570d266088c23d5adcc704d811edd 100644 (file)
@@ -52,7 +52,7 @@ LWMPOLY* lwmpoly_add_lwpoly(LWMPOLY *mobj, const LWPOLY *obj)
 
 void lwmpoly_free(LWMPOLY *mpoly)
 {
-       int i;
+       uint32_t i;
        if ( ! mpoly ) return;
        if ( mpoly->bbox )
                lwfree(mpoly->bbox);
index 011da60acbc7ed7edde7bbc4d7aafb4df0d31b7e..20bf272385adaa3ea14239ce1e8ad077c6247125 100644 (file)
@@ -67,7 +67,7 @@ lwmmpoint_to_encoded_polyline(const LWMPOINT* mpoint, int precision)
 static char*
 pointarray_to_encoded_polyline(const POINTARRAY* pa, int precision)
 {
-       int i;
+       uint32_t i;
        const POINT2D* prevPoint;
        int* delta;
        char* encoded_polyline = NULL;
index a6de10ea207938c01049f6ab22ab7aa3137d806b..b99d4006204042a526f28292c14558386e59dd2d 100644 (file)
@@ -267,7 +267,7 @@ static size_t
 asgeojson_poly_size(const LWPOLY *poly, char *srs, GBOX *bbox, int precision)
 {
        size_t size;
-       int i;
+       uint32_t i;
 
        size = sizeof("{\"type\":\"Polygon\",");
        if (srs) size += asgeojson_srs_size(srs);
@@ -287,7 +287,7 @@ asgeojson_poly_size(const LWPOLY *poly, char *srs, GBOX *bbox, int precision)
 static size_t
 asgeojson_poly_buf(const LWPOLY *poly, char *srs, char *output, GBOX *bbox, int precision)
 {
-       int i;
+       uint32_t i;
        char *ptr=output;
 
        ptr += sprintf(ptr, "{\"type\":\"Polygon\",");
@@ -330,7 +330,7 @@ asgeojson_multipoint_size(const LWMPOINT *mpoint, char *srs, GBOX *bbox, int pre
 {
        LWPOINT * point;
        int size;
-       int i;
+       uint32_t i;
 
        size = sizeof("{'type':'MultiPoint',");
        if (srs) size += asgeojson_srs_size(srs);
@@ -351,7 +351,7 @@ static size_t
 asgeojson_multipoint_buf(const LWMPOINT *mpoint, char *srs, char *output, GBOX *bbox, int precision)
 {
        LWPOINT *point;
-       int i;
+       uint32_t i;
        char *ptr=output;
 
        ptr += sprintf(ptr, "{\"type\":\"MultiPoint\",");
@@ -394,7 +394,7 @@ asgeojson_multiline_size(const LWMLINE *mline, char *srs, GBOX *bbox, int precis
 {
        LWLINE * line;
        int size;
-       int i;
+       uint32_t i;
 
        size = sizeof("{'type':'MultiLineString',");
        if (srs) size += asgeojson_srs_size(srs);
@@ -416,7 +416,7 @@ static size_t
 asgeojson_multiline_buf(const LWMLINE *mline, char *srs, char *output, GBOX *bbox, int precision)
 {
        LWLINE *line;
-       int i;
+       uint32_t i;
        char *ptr=output;
 
        ptr += sprintf(ptr, "{\"type\":\"MultiLineString\",");
@@ -462,7 +462,7 @@ asgeojson_multipolygon_size(const LWMPOLY *mpoly, char *srs, GBOX *bbox, int pre
 {
        LWPOLY *poly;
        int size;
-       int i, j;
+       uint32_t i, j;
 
        size = sizeof("{'type':'MultiPolygon',");
        if (srs) size += asgeojson_srs_size(srs);
@@ -489,7 +489,7 @@ static size_t
 asgeojson_multipolygon_buf(const LWMPOLY *mpoly, char *srs, char *output, GBOX *bbox, int precision)
 {
        LWPOLY *poly;
-       int i, j;
+       uint32_t i, j;
        char *ptr=output;
 
        ptr += sprintf(ptr, "{\"type\":\"MultiPolygon\",");
@@ -537,8 +537,8 @@ asgeojson_multipolygon(const LWMPOLY *mpoly, char *srs, GBOX *bbox, int precisio
 static size_t
 asgeojson_collection_size(const LWCOLLECTION *col, char *srs, GBOX *bbox, int precision)
 {
-       int i;
-       int size;
+       uint32_t i;
+       size_t size;
        LWGEOM *subgeom;
 
        size = sizeof("{'type':'GeometryCollection',");
@@ -560,7 +560,7 @@ asgeojson_collection_size(const LWCOLLECTION *col, char *srs, GBOX *bbox, int pr
 static size_t
 asgeojson_collection_buf(const LWCOLLECTION *col, char *srs, char *output, GBOX *bbox, int precision)
 {
-       int i;
+       uint32_t i;
        char *ptr=output;
        LWGEOM *subgeom;
 
@@ -712,7 +712,7 @@ lwprint_double(double d, int maxdd, char *buf, size_t bufsize)
 static size_t
 pointArray_to_geojson(POINTARRAY *pa, char *output, int precision)
 {
-       int i;
+       uint32_t i;
        char *ptr;
 #define BUFSIZE OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION
        char x[BUFSIZE+1];
index c008edce8b9a8a0910e7de8e1e6e79f42bda03c6..a2b58c043f381777b42a8b993006c087ef86a64c 100644 (file)
@@ -362,7 +362,7 @@ static size_t
 asgml2_poly_size(const LWPOLY *poly, const char *srs, int precision, const char *prefix)
 {
        size_t size;
-       int i;
+       uint32_t i;
        size_t prefixlen = strlen(prefix);
 
        size = sizeof("<polygon></polygon>") + prefixlen*2;
@@ -382,7 +382,7 @@ static size_t
 asgml2_poly_buf(const LWPOLY *poly, const char *srs, char *output, int precision,
                 const char *prefix)
 {
-       int i;
+       uint32_t i;
        char *ptr=output;
 
        ptr += sprintf(ptr, "<%sPolygon", prefix);
@@ -429,7 +429,7 @@ static size_t
 asgml2_multi_size(const LWCOLLECTION *col, const char *srs, int precision,
                   const char *prefix)
 {
-       int i;
+       uint32_t i;
        size_t size;
        size_t prefixlen = strlen(prefix);
        LWGEOM *subgeom;
@@ -472,7 +472,7 @@ asgml2_multi_buf(const LWCOLLECTION *col, const char *srs, char *output,
 {
        int type = col->type;
        char *ptr, *gmltype;
-       int i;
+       uint32_t i;
        LWGEOM *subgeom;
 
        ptr = output;
@@ -546,7 +546,7 @@ static size_t
 asgml2_collection_size(const LWCOLLECTION *col, const char *srs, int precision,
                        const char *prefix)
 {
-       int i;
+       uint32_t i;
        size_t size;
        size_t prefixlen = strlen(prefix);
        LWGEOM *subgeom;
@@ -592,7 +592,7 @@ static size_t
 asgml2_collection_buf(const LWCOLLECTION *col, const char *srs, char *output, int precision, const char *prefix)
 {
        char *ptr;
-       int i;
+       uint32_t i;
        LWGEOM *subgeom;
 
        ptr = output;
@@ -661,7 +661,7 @@ asgml2_collection(const LWCOLLECTION *col, const char *srs, int precision,
 static size_t
 pointArray_toGML2(POINTARRAY *pa, char *output, int precision)
 {
-       int i;
+       uint32_t i;
        char *ptr;
        char x[OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION+1];
        char y[OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION+1];
@@ -1015,7 +1015,7 @@ asgml3_poly_size(const LWPOLY *poly, const char *srs, int precision, int opts, c
 {
        size_t size;
        size_t prefixlen = strlen(prefix);
-       int i;
+       uint32_t i;
 
        size = ( sizeof("<PolygonPatch><exterior><LinearRing>///") + (prefixlen*3) ) * 2;
        size += ( sizeof("<interior><LinearRing>//") + (prefixlen*2) ) * 2 * (poly->nrings - 1);
@@ -1033,7 +1033,7 @@ asgml3_poly_size(const LWPOLY *poly, const char *srs, int precision, int opts, c
 static size_t
 asgml3_poly_buf(const LWPOLY *poly, const char *srs, char *output, int precision, int opts, int is_patch, const char *prefix, const char *id)
 {
-       int i;
+       uint32_t i;
        char *ptr=output;
        int dimension=2;
 
@@ -1095,7 +1095,7 @@ asgml3_poly(const LWPOLY *poly, const char *srs, int precision, int opts, int is
 static size_t
 asgml3_compound_size(const LWCOMPOUND *col, const char *srs, int precision, int opts, const char *prefix, const char *id )
 {
-       int i;
+       uint32_t i;
        size_t size;
        LWGEOM *subgeom;
        size_t prefixlen = strlen(prefix);
@@ -1138,7 +1138,7 @@ static size_t
 asgml3_compound_buf(const LWCOMPOUND *col, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
 {
        LWGEOM *subgeom;
-       int i;
+       uint32_t i;
        char* ptr = output;
        int dimension=2;
 
@@ -1215,7 +1215,7 @@ static size_t asgml3_curvepoly_size(const LWCURVEPOLY* poly, const char *srs, in
        size_t size = sizeof( "<Polygon></Polygon" ) + 2 * prefixlen;
        if (srs) size += strlen(srs) + sizeof(" srsName=..");
        if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
-       int i;
+       uint32_t i;
 
        for( i = 0; i < poly->nrings; ++i )
        {
@@ -1257,7 +1257,7 @@ static size_t asgml3_curvepoly_size(const LWCURVEPOLY* poly, const char *srs, in
 
 static size_t asgml3_curvepoly_buf(const LWCURVEPOLY* poly, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
 {
-       int i;
+       uint32_t i;
        LWGEOM* subgeom;
        char *ptr=output;
        int dimension=2;
@@ -1409,7 +1409,7 @@ asgml3_triangle(const LWTRIANGLE *triangle, const char *srs, int precision, int
 static size_t
 asgml3_multi_size(const LWCOLLECTION *col, const char *srs, int precision, int opts, const char *prefix, const char *id)
 {
-       int i;
+       uint32_t i;
        size_t size;
        size_t prefixlen = strlen(prefix);
        LWGEOM *subgeom;
@@ -1451,7 +1451,7 @@ asgml3_multi_buf(const LWCOLLECTION *col, const char *srs, char *output, int pre
 {
        int type = col->type;
        char *ptr, *gmltype;
-       int i;
+       uint32_t i;
        LWGEOM *subgeom;
 
        ptr = output;
@@ -1521,7 +1521,7 @@ asgml3_multi(const LWCOLLECTION *col, const char *srs, int precision, int opts,
 static size_t
 asgml3_psurface_size(const LWPSURFACE *psur, const char *srs, int precision, int opts, const char *prefix, const char *id)
 {
-       int i;
+       uint32_t i;
        size_t size;
        size_t prefixlen = strlen(prefix);
 
@@ -1545,7 +1545,7 @@ static size_t
 asgml3_psurface_buf(const LWPSURFACE *psur, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
 {
        char *ptr;
-       int i;
+       uint32_t i;
 
        ptr = output;
 
@@ -1586,7 +1586,7 @@ asgml3_psurface(const LWPSURFACE *psur, const char *srs, int precision, int opts
 static size_t
 asgml3_tin_size(const LWTIN *tin, const char *srs, int precision, int opts, const char *prefix, const char *id)
 {
-       int i;
+       uint32_t i;
        size_t size;
        size_t prefixlen = strlen(prefix);
 
@@ -1610,7 +1610,7 @@ static size_t
 asgml3_tin_buf(const LWTIN *tin, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
 {
        char *ptr;
-       int i;
+       uint32_t i;
 
        ptr = output;
 
@@ -1650,7 +1650,7 @@ asgml3_tin(const LWTIN *tin, const char *srs, int precision, int opts, const cha
 static size_t
 asgml3_collection_size(const LWCOLLECTION *col, const char *srs, int precision, int opts, const char *prefix, const char *id)
 {
-       int i;
+       uint32_t i;
        size_t size;
        size_t prefixlen = strlen(prefix);
        LWGEOM *subgeom;
@@ -1691,7 +1691,7 @@ static size_t
 asgml3_collection_buf(const LWCOLLECTION *col, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
 {
        char *ptr;
-       int i;
+       uint32_t i;
        LWGEOM *subgeom;
 
        ptr = output;
@@ -1765,7 +1765,7 @@ static size_t asgml3_multicurve_size( const LWMCURVE* cur, const char *srs, int
        if (srs) size += strlen(srs) + sizeof(" srsName=..");
        if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
        LWGEOM* subgeom;
-       int i;
+       uint32_t i;
 
        for( i = 0; i < cur->ngeoms; ++i )
        {
@@ -1791,7 +1791,7 @@ static size_t asgml3_multicurve_buf( const LWMCURVE* cur, const char *srs, char
 {
        char* ptr = output;
        LWGEOM* subgeom;
-       int i;
+       uint32_t i;
 
        ptr += sprintf(ptr, "<%sMultiCurve", prefix );
        if (srs)
@@ -1842,7 +1842,7 @@ static size_t asgml3_multisurface_size(const LWMSURFACE *sur, const char *srs, i
        if (srs) size += strlen(srs) + sizeof(" srsName=..");
        if (id)  size += strlen(id) + strlen(prefix) + sizeof(" id=..");
        LWGEOM* subgeom;
-       int i;
+       uint32_t i;
 
        for( i = 0; i < sur->ngeoms; ++i )
        {
@@ -1862,7 +1862,7 @@ static size_t asgml3_multisurface_size(const LWMSURFACE *sur, const char *srs, i
 static size_t asgml3_multisurface_buf(const LWMSURFACE *sur, const char *srs, char *output, int precision, int opts, const char *prefix, const char *id)
 {
        char* ptr = output;
-       int i;
+       uint32_t i;
        LWGEOM* subgeom;
 
        ptr += sprintf( ptr, "<%sMultiSurface", prefix );
@@ -1908,7 +1908,7 @@ static char *asgml3_multisurface(const LWMSURFACE *sur, const char *srs, int pre
 static size_t
 pointArray_toGML3(POINTARRAY *pa, char *output, int precision, int opts)
 {
-       int i;
+       uint32_t i;
        char *ptr;
        char x[OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION+1];
        char y[OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION+1];
index c97bf27d0883f5f1afe94f0bfc037514987f95c1..fa8912df18752559289d8392dbf6efd22b56f389 100644 (file)
@@ -93,8 +93,8 @@ lwgeom_to_kml2_sb(const LWGEOM *geom, int precision, const char *prefix, stringb
 static int
 ptarray_to_kml2_sb(const POINTARRAY *pa, int precision, stringbuffer_t *sb)
 {
-       int i, j;
-       int dims = FLAGS_GET_Z(pa->flags) ? 3 : 2;
+       uint32_t i, j;
+       uint32_t dims = FLAGS_GET_Z(pa->flags) ? 3 : 2;
        POINT4D pt;
        double *d;
 
@@ -149,7 +149,8 @@ lwline_to_kml2_sb(const LWLINE *line, int precision, const char *prefix, stringb
 static int
 lwpoly_to_kml2_sb(const LWPOLY *poly, int precision, const char *prefix, stringbuffer_t *sb)
 {
-       int i, rv;
+       uint32_t i;
+       int rv;
 
        /* Open polygon */
        if ( stringbuffer_aprintf(sb, "<%sPolygon>", prefix) < 0 ) return LW_FAILURE;
@@ -181,7 +182,8 @@ lwpoly_to_kml2_sb(const LWPOLY *poly, int precision, const char *prefix, stringb
 static int
 lwcollection_to_kml2_sb(const LWCOLLECTION *col, int precision, const char *prefix, stringbuffer_t *sb)
 {
-       int i, rv;
+       uint32_t i;
+       int rv;
 
        /* Open geometry */
        if ( stringbuffer_aprintf(sb, "<%sMultiGeometry>", prefix) < 0 ) return LW_FAILURE;
index a73e9b9d8eb58f149b45dbdc39aa9c0e42b0e332..7c309b507eb117c7fc1813a6da1a51abcbdaec9d 100644 (file)
@@ -26,7 +26,7 @@
 /** @file
 *
 * SVG output routines.
-* Originally written by: Klaus Förster <klaus@svg.cc>
+* Originally written by: Klaus Frster <klaus@svg.cc>
 * Refactored by: Olivier Courtin (Camptocamp)
 *
 * BNF SVG Path: <http://www.w3.org/TR/SVG/paths.html#PathDataBNF>
@@ -209,7 +209,7 @@ assvg_line(const LWLINE *line, int relative, int precision)
 static size_t
 assvg_polygon_size(const LWPOLY *poly, int relative, int precision)
 {
-       int i;
+       uint32_t i;
        size_t size=0;
 
        for (i=0; i<poly->nrings; i++)
@@ -222,7 +222,7 @@ assvg_polygon_size(const LWPOLY *poly, int relative, int precision)
 static size_t
 assvg_polygon_buf(const LWPOLY *poly, char * output, int relative, int precision)
 {
-       int i;
+       uint32_t i;
        char *ptr=output;
 
        for (i=0; i<poly->nrings; i++)
@@ -268,7 +268,7 @@ assvg_multipoint_size(const LWMPOINT *mpoint, int relative, int precision)
 {
        const LWPOINT *point;
        size_t size=0;
-       int i;
+       uint32_t i;
 
        for (i=0 ; i<mpoint->ngeoms ; i++)
        {
@@ -284,7 +284,7 @@ static size_t
 assvg_multipoint_buf(const LWMPOINT *mpoint, char *output, int relative, int precision)
 {
        const LWPOINT *point;
-       int i;
+       uint32_t i;
        char *ptr=output;
 
        for (i=0 ; i<mpoint->ngeoms ; i++)
@@ -320,7 +320,7 @@ assvg_multiline_size(const LWMLINE *mline, int relative, int precision)
 {
        const LWLINE *line;
        size_t size=0;
-       int i;
+       uint32_t i;
 
        for (i=0 ; i<mline->ngeoms ; i++)
        {
@@ -336,7 +336,7 @@ static size_t
 assvg_multiline_buf(const LWMLINE *mline, char *output, int relative, int precision)
 {
        const LWLINE *line;
-       int i;
+       uint32_t i;
        char *ptr=output;
 
        for (i=0 ; i<mline->ngeoms ; i++)
@@ -372,7 +372,7 @@ assvg_multipolygon_size(const LWMPOLY *mpoly, int relative, int precision)
 {
        const LWPOLY *poly;
        size_t size=0;
-       int i;
+       uint32_t i;
 
        for (i=0 ; i<mpoly->ngeoms ; i++)
        {
@@ -388,7 +388,7 @@ static size_t
 assvg_multipolygon_buf(const LWMPOLY *mpoly, char *output, int relative, int precision)
 {
        const LWPOLY *poly;
-       int i;
+       uint32_t i;
        char *ptr=output;
 
        for (i=0 ; i<mpoly->ngeoms ; i++)
@@ -422,7 +422,7 @@ assvg_multipolygon(const LWMPOLY *mpoly, int relative, int precision)
 static size_t
 assvg_collection_size(const LWCOLLECTION *col, int relative, int precision)
 {
-       int i = 0;
+       uint32_t i = 0;
        size_t size=0;
        const LWGEOM *subgeom;
 
@@ -443,7 +443,7 @@ assvg_collection_size(const LWCOLLECTION *col, int relative, int precision)
 static size_t
 assvg_collection_buf(const LWCOLLECTION *col, char *output, int relative, int precision)
 {
-       int i;
+       uint32_t i;
        char *ptr=output;
        const LWGEOM *subgeom;
 
index bc2739f38bf07d00e240e2328e7eb503a6177fc0..1bf9ed46c9d32f1b0cf3ddeae0885b7c8525ead3 100644 (file)
@@ -103,10 +103,10 @@ static void write_bbox(TWKB_STATE *ts, int ndims)
 * @register_npoints, controls whether an npoints entry is added to the buffer (used to skip npoints for point types)
 * @dimension, states the dimensionality of object this array is part of (0 = point, 1 = linear, 2 = areal)
 */
-static int ptarray_to_twkb_buf(const POINTARRAY *pa, TWKB_GLOBALS *globals, TWKB_STATE *ts, int register_npoints, int minpoints)
+static int ptarray_to_twkb_buf(const POINTARRAY *pa, TWKB_GLOBALS *globals, TWKB_STATE *ts, int register_npoints, uint32_t minpoints)
 {
-       int ndims = FLAGS_NDIMS(pa->flags);
-       int i, j;
+       uint32_t ndims = FLAGS_NDIMS(pa->flags);
+       uint32_t i, j;
        bytebuffer_t b;
        bytebuffer_t *b_p;
        int64_t nextdelta[MAX_N_DIMS];
@@ -256,7 +256,7 @@ static int lwline_to_twkb_buf(const LWLINE *line, TWKB_GLOBALS *globals, TWKB_ST
 
 static int lwpoly_to_twkb_buf(const LWPOLY *poly, TWKB_GLOBALS *globals, TWKB_STATE *ts)
 {
-       int i;
+       uint32_t i;
 
        /* Set the number of rings */
        bytebuffer_append_uvarint(ts->geom_buf, (uint64_t) poly->nrings);
@@ -278,7 +278,7 @@ static int lwpoly_to_twkb_buf(const LWPOLY *poly, TWKB_GLOBALS *globals, TWKB_ST
 
 static int lwmulti_to_twkb_buf(const LWCOLLECTION *col, TWKB_GLOBALS *globals, TWKB_STATE *ts)
 {
-       int i;
+       uint32_t i;
        int nempty = 0;
 
        LWDEBUGF(2, "Entered %s", __func__);
@@ -328,7 +328,7 @@ static int lwmulti_to_twkb_buf(const LWCOLLECTION *col, TWKB_GLOBALS *globals, T
 
 static int lwcollection_to_twkb_buf(const LWCOLLECTION *col, TWKB_GLOBALS *globals, TWKB_STATE *ts)
 {
-       int i;
+       uint32_t i;
 
        LWDEBUGF(2, "Entered %s", __func__);
        LWDEBUGF(4, "Number of geometries in collection is %d", col->ngeoms);
index f74cb09be2539f06f343f830634d5cc05a56daeb..91730a30776628db2b881889805b566ab6320b8f 100644 (file)
@@ -39,7 +39,7 @@ static char *hexchr = "0123456789ABCDEF";
 char* hexbytes_from_bytes(const uint8_t *bytes, size_t size)
 {
        char *hex;
-       int i;
+       uint32_t i;
        if ( ! bytes || ! size )
        {
                lwerror("hexbutes_from_bytes: invalid input");
@@ -370,9 +370,9 @@ static size_t ptarray_to_wkb_size(const POINTARRAY *pa, uint8_t variant)
 
 static uint8_t* ptarray_to_wkb_buf(const POINTARRAY *pa, uint8_t *buf, uint8_t variant)
 {
-       int dims = 2;
-       int pa_dims = FLAGS_NDIMS(pa->flags);
-       int i, j;
+       uint32_t dims = 2;
+       uint32_t pa_dims = FLAGS_NDIMS(pa->flags);
+       uint32_t i, j;
        double *dbl_ptr;
 
        /* SFSQL is always 2-d. Extended and ISO use all available dimensions */
@@ -548,7 +548,7 @@ static size_t lwpoly_to_wkb_size(const LWPOLY *poly, uint8_t variant)
 {
        /* endian flag + type number + number of rings */
        size_t size = WKB_BYTE_SIZE + WKB_INT_SIZE + WKB_INT_SIZE;
-       int i = 0;
+       uint32_t i = 0;
 
        /* Only process empty at this level in the EXTENDED case */
        if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)poly) )
@@ -569,7 +569,7 @@ static size_t lwpoly_to_wkb_size(const LWPOLY *poly, uint8_t variant)
 
 static uint8_t* lwpoly_to_wkb_buf(const LWPOLY *poly, uint8_t *buf, uint8_t variant)
 {
-       int i;
+       uint32_t i;
 
        /* Only process empty at this level in the EXTENDED case */
        if ( (variant & WKB_EXTENDED) && lwgeom_is_empty((LWGEOM*)poly) )
@@ -603,7 +603,7 @@ static size_t lwcollection_to_wkb_size(const LWCOLLECTION *col, uint8_t variant)
 {
        /* Endian flag + type number + number of subgeoms */
        size_t size = WKB_BYTE_SIZE + WKB_INT_SIZE + WKB_INT_SIZE;
-       int i = 0;
+       uint32_t i = 0;
 
        /* Extended WKB needs space for optional SRID integer */
        if ( lwgeom_wkb_needs_srid((LWGEOM*)col, variant) )
@@ -620,7 +620,7 @@ static size_t lwcollection_to_wkb_size(const LWCOLLECTION *col, uint8_t variant)
 
 static uint8_t* lwcollection_to_wkb_buf(const LWCOLLECTION *col, uint8_t *buf, uint8_t variant)
 {
-       int i;
+       uint32_t i;
 
        /* Set the endian flag */
        buf = endian_to_wkb_buf(buf, variant);
@@ -831,7 +831,7 @@ uint8_t* lwgeom_to_wkb(const LWGEOM *geom, uint8_t variant, size_t *size_out)
        LWDEBUGF(4,"buf (%p) - wkb_out (%p) = %d", buf, wkb_out, buf - wkb_out);
 
        /* The buffer pointer should now land at the end of the allocated buffer space. Let's check. */
-       if ( buf_size != (buf - wkb_out) )
+       if ( buf_size != (size_t) (buf - wkb_out) )
        {
                LWDEBUG(4,"Output WKB is not the same size as the allocated buffer.");
                lwerror("Output WKB is not the same size as the allocated buffer.");
index e9d4a4dabf495e3aea27fa1559228735f6075bcc..c021dac85e382950248cb18943650d6ab781355b 100644 (file)
@@ -83,8 +83,8 @@ static void empty_to_wkt_sb(stringbuffer_t *sb)
 static void ptarray_to_wkt_sb(const POINTARRAY *ptarray, stringbuffer_t *sb, int precision, uint8_t variant)
 {
        /* OGC only includes X/Y */
-       int dimensions = 2;
-       int i, j;
+       uint32_t dimensions = 2;
+       uint32_t i, j;
 
        /* ISO and extended formats include all dimensions */
        if ( variant & ( WKT_ISO | WKT_EXTENDED ) )
@@ -168,7 +168,7 @@ static void lwline_to_wkt_sb(const LWLINE *line, stringbuffer_t *sb, int precisi
 */
 static void lwpoly_to_wkt_sb(const LWPOLY *poly, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
        if ( ! (variant & WKT_NO_TYPE) )
        {
                stringbuffer_append(sb, "POLYGON"); /* "POLYGON" */
@@ -215,7 +215,7 @@ static void lwcircstring_to_wkt_sb(const LWCIRCSTRING *circ, stringbuffer_t *sb,
 */
 static void lwmpoint_to_wkt_sb(const LWMPOINT *mpoint, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
        if ( ! (variant & WKT_NO_TYPE) )
        {
                stringbuffer_append(sb, "MULTIPOINT"); /* "MULTIPOINT" */
@@ -243,7 +243,7 @@ static void lwmpoint_to_wkt_sb(const LWMPOINT *mpoint, stringbuffer_t *sb, int p
 */
 static void lwmline_to_wkt_sb(const LWMLINE *mline, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
@@ -273,7 +273,7 @@ static void lwmline_to_wkt_sb(const LWMLINE *mline, stringbuffer_t *sb, int prec
 */
 static void lwmpoly_to_wkt_sb(const LWMPOLY *mpoly, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
@@ -305,7 +305,7 @@ static void lwmpoly_to_wkt_sb(const LWMPOLY *mpoly, stringbuffer_t *sb, int prec
 */
 static void lwcompound_to_wkt_sb(const LWCOMPOUND *comp, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
@@ -350,7 +350,7 @@ static void lwcompound_to_wkt_sb(const LWCOMPOUND *comp, stringbuffer_t *sb, int
 */
 static void lwcurvepoly_to_wkt_sb(const LWCURVEPOLY *cpoly, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
@@ -398,7 +398,7 @@ static void lwcurvepoly_to_wkt_sb(const LWCURVEPOLY *cpoly, stringbuffer_t *sb,
 */
 static void lwmcurve_to_wkt_sb(const LWMCURVE *mcurv, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
@@ -446,7 +446,7 @@ static void lwmcurve_to_wkt_sb(const LWMCURVE *mcurv, stringbuffer_t *sb, int pr
 */
 static void lwmsurface_to_wkt_sb(const LWMSURFACE *msurf, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
@@ -489,7 +489,7 @@ static void lwmsurface_to_wkt_sb(const LWMSURFACE *msurf, stringbuffer_t *sb, in
 */
 static void lwcollection_to_wkt_sb(const LWCOLLECTION *collection, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
@@ -538,7 +538,7 @@ static void lwtriangle_to_wkt_sb(const LWTRIANGLE *tri, stringbuffer_t *sb, int
 */
 static void lwtin_to_wkt_sb(const LWTIN *tin, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
@@ -567,7 +567,7 @@ static void lwtin_to_wkt_sb(const LWTIN *tin, stringbuffer_t *sb, int precision,
 */
 static void lwpsurface_to_wkt_sb(const LWPSURFACE *psurf, stringbuffer_t *sb, int precision, uint8_t variant)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( ! (variant & WKT_NO_TYPE) )
        {
index e66f838224008f0a6cca30e517950b97f18985ee..2265f7d05144c2d140ea0f7ebe07060744480236 100644 (file)
@@ -129,9 +129,9 @@ static int
 asx3d3_mline_coordindex_sb(const LWMLINE *mgeom, stringbuffer_t *sb)
 {
        LWLINE *geom;
-       int i, j, k, si;
+       uint32_t i, j, k, si;
        POINTARRAY *pa;
-       int np;
+       uint32_t np;
 
        j = 0;
        for (i=0; i < mgeom->ngeoms; i++)
@@ -151,12 +151,12 @@ asx3d3_mline_coordindex_sb(const LWMLINE *mgeom, stringbuffer_t *sb)
                        *    and don't increment the index **/
                        if (!lwline_is_closed(geom) || k < (np -1) )
                        {
-                               stringbuffer_aprintf(sb, "%d", j);
+                               stringbuffer_aprintf(sb, "%u", j);
                                j += 1;
                        }
                        else
                        {
-                               stringbuffer_aprintf(sb,"%d", si);
+                               stringbuffer_aprintf(sb,"%u", si);
                        }
                }
                if (i < (mgeom->ngeoms - 1) )
@@ -174,8 +174,8 @@ static int
 asx3d3_mpoly_coordindex_sb(const LWMPOLY *psur, stringbuffer_t *sb)
 {
        LWPOLY *patch;
-       int i, j, k, l;
-       int np;
+       uint32_t i, j, k, l;
+       uint32_t np;
        j = 0;
        for (i=0; i<psur->ngeoms; i++)
        {
@@ -243,7 +243,7 @@ asx3d3_line_sb(const LWLINE *line, char *srs, int precision, int opts, const cha
 static int
 asx3d3_poly_sb(const LWPOLY *poly, char *srs, int precision, int opts, int is_patch, const char *defid, stringbuffer_t *sb)
 {
-       int i;
+       uint32_t i;
        for (i=0; i<poly->nrings; i++)
        {
                if (i) stringbuffer_aprintf(sb, " "); /* inner ring points start */
@@ -266,7 +266,7 @@ static int
 asx3d3_multi_sb(const LWCOLLECTION *col, char *srs, int precision, int opts, const char *defid, stringbuffer_t *sb)
 {
        char *x3dtype;
-       int i;
+       uint32_t i;
        int dimension=2;
 
        if (FLAGS_GET_Z(col->flags)) dimension = 3;
@@ -344,10 +344,10 @@ asx3d3_multi_sb(const LWCOLLECTION *col, char *srs, int precision, int opts, con
 static int
 asx3d3_psurface_sb(const LWPSURFACE *psur, char *srs, int precision, int opts, const char *defid, stringbuffer_t *sb)
 {
-       int i;
-       int j;
-       int k;
-       int np;
+       uint32_t i;
+       uint32_t j;
+       uint32_t k;
+       uint32_t np;
        LWPOLY *patch;
 
        /* Open outmost tag */
@@ -397,8 +397,8 @@ asx3d3_psurface_sb(const LWPSURFACE *psur, char *srs, int precision, int opts, c
 static int
 asx3d3_tin_sb(const LWTIN *tin, char *srs,  int precision, int opts, const char *defid, stringbuffer_t *sb)
 {
-       int i;
-       int k;
+       uint32_t i;
+       uint32_t k;
        /* int dimension=2; */
 
        stringbuffer_aprintf(sb,"<IndexedTriangleSet %s index='",defid);
@@ -435,7 +435,7 @@ asx3d3_tin_sb(const LWTIN *tin, char *srs,  int precision, int opts, const char
 static int
 asx3d3_collection_sb(const LWCOLLECTION *col, char *srs, int precision, int opts, const char *defid, stringbuffer_t *sb)
 {
-       int i;
+       uint32_t i;
        LWGEOM *subgeom;
 
        /* Open outmost tag */
@@ -497,7 +497,7 @@ asx3d3_collection_sb(const LWCOLLECTION *col, char *srs, int precision, int opts
 static int
 ptarray_to_x3d3_sb(POINTARRAY *pa, int precision, int opts, int is_closed, stringbuffer_t *sb )
 {
-       int i;
+       uint32_t i;
        char x[OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION+1];
        char y[OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION+1];
        char z[OUT_MAX_DIGS_DOUBLE+OUT_MAX_DOUBLE_PRECISION+1];
index f6593976d5a4f258be54971fa891d508e0833985..c0aefb6e6fa6d728da6b2153ff972d2f7839b7ba 100644 (file)
@@ -119,7 +119,7 @@ lwpoly_construct_envelope(int srid, double x1, double y1, double x2, double y2)
 LWPOLY*
 lwpoly_construct_circle(int srid, double x, double y, double radius, uint32_t segments_per_quarter, char exterior)
 {
-       const int segments = 4*segments_per_quarter;
+       const uint32_t segments = 4*segments_per_quarter;
        const double theta = 2*M_PI / segments;
        LWPOLY *lwpoly;
        POINTARRAY *pa;
@@ -171,7 +171,7 @@ lwpoly_construct_empty(int srid, char hasz, char hasm)
 
 void lwpoly_free(LWPOLY  *poly)
 {
-       int t;
+       uint32_t t;
 
        if( ! poly ) return;
 
@@ -192,7 +192,7 @@ void lwpoly_free(LWPOLY  *poly)
 
 void printLWPOLY(LWPOLY *poly)
 {
-       int t;
+       uint32_t t;
        lwnotice("LWPOLY {");
        lwnotice("    ndims = %i", (int)FLAGS_NDIMS(poly->flags));
        lwnotice("    SRID = %i", (int)poly->srid);
@@ -212,7 +212,7 @@ void printLWPOLY(LWPOLY *poly)
 LWPOLY *
 lwpoly_clone(const LWPOLY *g)
 {
-       int i;
+       uint32_t i;
        LWPOLY *ret = lwalloc(sizeof(LWPOLY));
        memcpy(ret, g, sizeof(LWPOLY));
        ret->rings = lwalloc(sizeof(POINTARRAY *)*g->nrings);
@@ -227,7 +227,7 @@ lwpoly_clone(const LWPOLY *g)
 LWPOLY *
 lwpoly_clone_deep(const LWPOLY *g)
 {
-       int i;
+       uint32_t i;
        LWPOLY *ret = lwalloc(sizeof(LWPOLY));
        memcpy(ret, g, sizeof(LWPOLY));
        if ( g->bbox ) ret->bbox = gbox_copy(g->bbox);
@@ -267,7 +267,7 @@ lwpoly_add_ring(LWPOLY *poly, POINTARRAY *pa)
 void
 lwpoly_force_clockwise(LWPOLY *poly)
 {
-       int i;
+       uint32_t i;
 
        /* No-op empties */
        if ( lwpoly_is_empty(poly) )
@@ -287,7 +287,7 @@ lwpoly_force_clockwise(LWPOLY *poly)
 int
 lwpoly_is_clockwise(LWPOLY *poly)
 {
-       int i;
+       uint32_t i;
 
        if ( lwpoly_is_empty(poly) )
                return LW_TRUE;
@@ -318,8 +318,11 @@ lwpoly_segmentize2d(const LWPOLY *poly, double dist)
        for (i=0; i<poly->nrings; i++)
        {
                newrings[i] = ptarray_segmentize2d(poly->rings[i], dist);
-               if ( ! newrings[i] ) {
-                       while (i--) ptarray_free(newrings[i]);
+               if ( ! newrings[i] )
+               {
+                       uint32_t j = 0;
+                       for (j = 0; j < i; j++)
+                               ptarray_free(newrings[j]);
                        lwfree(newrings);
                        return NULL;
                }
@@ -400,7 +403,7 @@ lwpoly_force_dims(const LWPOLY *poly, int hasz, int hasm)
        else
        {
                POINTARRAY **rings = NULL;
-               int i;
+               uint32_t i;
                rings = lwalloc(sizeof(POINTARRAY*) * poly->nrings);
                for( i = 0; i < poly->nrings; i++ )
                {
@@ -419,10 +422,10 @@ int lwpoly_is_empty(const LWPOLY *poly)
        return LW_FALSE;
 }
 
-int lwpoly_count_vertices(LWPOLY *poly)
+uint32_t lwpoly_count_vertices(LWPOLY *poly)
 {
-       int i = 0;
-       int v = 0; /* vertices */
+       uint32_t i = 0;
+       uint32_t v = 0; /* vertices */
        assert(poly);
        for ( i = 0; i < poly->nrings; i ++ )
        {
@@ -438,7 +441,7 @@ double
 lwpoly_area(const LWPOLY *poly)
 {
        double poly_area = 0.0;
-       int i;
+       uint32_t i;
 
        if ( ! poly )
                lwerror("lwpoly_area called with null polygon pointer!");
@@ -471,7 +474,7 @@ double
 lwpoly_perimeter(const LWPOLY *poly)
 {
        double result=0.0;
-       int i;
+       uint32_t i;
 
        LWDEBUGF(2, "in lwgeom_polygon_perimeter (%d rings)", poly->nrings);
 
@@ -489,7 +492,7 @@ double
 lwpoly_perimeter_2d(const LWPOLY *poly)
 {
        double result=0.0;
-       int i;
+       uint32_t i;
 
        LWDEBUGF(2, "in lwgeom_polygon_perimeter (%d rings)", poly->nrings);
 
@@ -502,7 +505,7 @@ lwpoly_perimeter_2d(const LWPOLY *poly)
 int
 lwpoly_is_closed(const LWPOLY *poly)
 {
-       int i = 0;
+       uint32_t i = 0;
 
        if ( poly->nrings == 0 )
                return LW_TRUE;
@@ -535,7 +538,7 @@ lwpoly_startpoint(const LWPOLY* poly, POINT4D* pt)
 int
 lwpoly_contains_point(const LWPOLY *poly, const POINT2D *pt)
 {
-       int i;
+       uint32_t i;
 
        if ( lwpoly_is_empty(poly) )
                return LW_FALSE;
index 4e575a806a83d5ce93f417f393575770e6e2f9f9..0c0887c10f30c4d986c3d4562acc825c66e99239 100644 (file)
@@ -38,7 +38,7 @@ LWPSURFACE* lwpsurface_add_lwpoly(LWPSURFACE *mobj, const LWPOLY *obj)
 
 void lwpsurface_free(LWPSURFACE *psurf)
 {
-       int i;
+       uint32_t i;
        if ( ! psurf ) return;
        if ( psurf->bbox )
                lwfree(psurf->bbox);
@@ -56,7 +56,7 @@ void lwpsurface_free(LWPSURFACE *psurf)
 
 void printLWPSURFACE(LWPSURFACE *psurf)
 {
-       int i, j;
+       uint32_t i, j;
        LWPOLY *patch;
 
        if (psurf->type != POLYHEDRALSURFACETYPE)
@@ -90,7 +90,7 @@ struct struct_psurface_arcs
 {
        double ax, ay, az;
        double bx, by, bz;
-       int cnt, face;
+       uint32_t cnt, face;
 };
 typedef struct struct_psurface_arcs *psurface_arcs;
 
@@ -98,8 +98,8 @@ typedef struct struct_psurface_arcs *psurface_arcs;
    we could have wrong result if not */
 int lwpsurface_is_closed(const LWPSURFACE *psurface)
 {
-       int i, j, k;
-       int narcs, carc;
+       uint32_t i, j, k;
+       uint32_t narcs, carc;
        int found;
        psurface_arcs arcs;
        POINT4D pa, pb;
index 2d24f250f1c39632a3b541e8ff3dd30dd4026888..7637ddc8e52f901b83ac54647b49eba56a0a8bc7 100644 (file)
@@ -144,7 +144,7 @@ static double ptarray_area_spheroid(const POINTARRAY *pa, const SPHEROID *sphero
        geod_init(&gd, spheroid->a, spheroid->f);
        struct geod_polygon poly;
        geod_polygon_init(&poly, 0);
-       int i;
+       uint32_t i;
        double area; /* returned polygon area */
        POINT2D p; /* long/lat units are degrees */
 
@@ -660,7 +660,7 @@ double lwgeom_area_spheroid(const LWGEOM *lwgeom, const SPHEROID *spheroid)
        if ( type == POLYGONTYPE )
        {
                LWPOLY *poly = (LWPOLY*)lwgeom;
-               int i;
+               uint32_t i;
                double area = 0.0;
 
                /* Just in case there's no rings */
@@ -682,7 +682,7 @@ double lwgeom_area_spheroid(const LWGEOM *lwgeom, const SPHEROID *spheroid)
        if ( type == MULTIPOLYGONTYPE || type == COLLECTIONTYPE )
        {
                LWCOLLECTION *col = (LWCOLLECTION*)lwgeom;
-               int i;
+               uint32_t i;
                double area = 0.0;
 
                for ( i = 0; i < col->ngeoms; i++ )
index 5ffabc278425f88107a01f0dad5e5d72efaedbd6..ded6d4f298a75296ae295debb3333202c0d616f7 100644 (file)
@@ -54,7 +54,7 @@ int
 lwgeom_has_arc(const LWGEOM *geom)
 {
        LWCOLLECTION *col;
-       int i;
+       uint32_t i;
 
        LWDEBUG(2, "lwgeom_has_arc called.");
 
@@ -489,7 +489,7 @@ lwcurvepoly_linearize(const LWCURVEPOLY *curvepoly, double tol,
        LWGEOM *tmp;
        LWLINE *line;
        POINTARRAY **ptarray;
-       int i;
+       uint32_t i;
 
        LWDEBUG(2, "lwcurvepoly_linearize called.");
 
@@ -549,7 +549,7 @@ lwmcurve_linearize(const LWMCURVE *mcurve, double tol,
 {
        LWMLINE *ogeom;
        LWGEOM **lines;
-       int i;
+       uint32_t i;
 
        LWDEBUGF(2, "lwmcurve_linearize called, geoms=%d, dim=%d.", mcurve->ngeoms, FLAGS_NDIMS(mcurve->flags));
 
@@ -599,7 +599,7 @@ lwmsurface_linearize(const LWMSURFACE *msurface, double tol,
        LWPOLY *poly;
        LWGEOM **polys;
        POINTARRAY **ptarray;
-       int i, j;
+       uint32_t i, j;
 
        LWDEBUG(2, "lwmsurface_linearize called.");
 
@@ -643,7 +643,7 @@ lwcollection_linearize(const LWCOLLECTION *collection, double tol,
        LWCOLLECTION *ocol;
        LWGEOM *tmp;
        LWGEOM **geoms;
-       int i;
+       uint32_t i;
 
        LWDEBUG(2, "lwcollection_linearize called.");
 
@@ -1001,7 +1001,7 @@ LWGEOM *
 lwpolygon_unstroke(const LWPOLY *poly)
 {
        LWGEOM **geoms;
-       int i, hascurve = 0;
+       uint32_t i, hascurve = 0;
 
        LWDEBUG(2, "lwpolygon_unstroke called.");
 
@@ -1030,7 +1030,7 @@ LWGEOM *
 lwmline_unstroke(const LWMLINE *mline)
 {
        LWGEOM **geoms;
-       int i, hascurve = 0;
+       uint32_t i, hascurve = 0;
 
        LWDEBUG(2, "lwmline_unstroke called.");
 
@@ -1058,7 +1058,7 @@ LWGEOM *
 lwmpolygon_unstroke(const LWMPOLY *mpoly)
 {
        LWGEOM **geoms;
-       int i, hascurve = 0;
+       uint32_t i, hascurve = 0;
 
        LWDEBUG(2, "lwmpoly_unstroke called.");
 
index 98af4d7a4101ad537b74e6555d4ae9de8e28def9..52a7c551056ad7b32970c69a689feb27b56fb2ff 100644 (file)
@@ -38,7 +38,7 @@ LWTIN* lwtin_add_lwtriangle(LWTIN *mobj, const LWTRIANGLE *obj)
 
 void lwtin_free(LWTIN *tin)
 {
-       int i;
+       uint32_t i;
        if ( ! tin ) return;
        if ( tin->bbox )
                lwfree(tin->bbox);
@@ -56,7 +56,7 @@ void lwtin_free(LWTIN *tin)
 
 void printLWTIN(LWTIN *tin)
 {
-       int i;
+       uint32_t i;
        LWTRIANGLE *triangle;
 
        if (tin->type != TINTYPE)
@@ -84,7 +84,7 @@ struct struct_tin_arcs
 {
        double ax, ay, az;
        double bx, by, bz;
-       int cnt, face;
+       uint32_t cnt, face;
 };
 typedef struct struct_tin_arcs *tin_arcs;
 
@@ -92,8 +92,8 @@ typedef struct struct_tin_arcs *tin_arcs;
    we could have wrong result if not */
 int lwtin_is_closed(const LWTIN *tin)
 {
-       int i, j, k;
-       int narcs, carc;
+       uint32_t i, j, k;
+       uint32_t narcs, carc;
        int found;
        tin_arcs arcs;
        POINT4D pa, pb;
index a5916c8bfe76970db536296d02380d02b769604d..842dd8a15a7adc334afa8f93c19624cb670c19ef 100644 (file)
@@ -185,7 +185,7 @@ double
 lwtriangle_area(const LWTRIANGLE *triangle)
 {
        double area=0.0;
-       int i;
+       uint32_t i;
        POINT2D p1;
        POINT2D p2;
 
index 155b1a42ebde974e18c12cd2906fa7aead6452e8..f5cf7fa7649d4a894e5587b098a9e3cbeca2661a 100644 (file)
@@ -611,7 +611,7 @@ int
 lw_dist2d_point_poly(LWPOINT *point, LWPOLY *poly, DISTPTS *dl)
 {
        const POINT2D *p;
-       int i;
+       uint32_t i;
 
        LWDEBUG(2, "lw_dist2d_point_poly called");
 
@@ -659,7 +659,7 @@ int
 lw_dist2d_point_curvepoly(LWPOINT *point, LWCURVEPOLY *poly, DISTPTS *dl)
 {
        const POINT2D *p;
-       int i;
+       uint32_t i;
 
        p = getPoint2d_cp(point->point, 0);
 
@@ -733,7 +733,7 @@ int
 lw_dist2d_line_poly(LWLINE *line, LWPOLY *poly, DISTPTS *dl)
 {
        const POINT2D *pt;
-       int i;
+       uint32_t i;
 
        LWDEBUGF(2, "lw_dist2d_line_poly called (%d rings)", poly->nrings);
 
@@ -796,7 +796,7 @@ int
 lw_dist2d_line_curvepoly(LWLINE *line, LWCURVEPOLY *poly, DISTPTS *dl)
 {
        const POINT2D *pt = getPoint2d_cp(line->points, 0);
-       int i;
+       uint32_t i;
 
        if ( lwgeom_contains_point(poly->rings[0], pt) == LW_OUTSIDE )
        {
@@ -844,7 +844,7 @@ lw_dist2d_poly_poly(LWPOLY *poly1, LWPOLY *poly2, DISTPTS *dl)
 {
 
        const POINT2D *pt;
-       int i;
+       uint32_t i;
 
        LWDEBUG(2, "lw_dist2d_poly_poly called");
 
@@ -970,7 +970,7 @@ int
 lw_dist2d_curvepoly_curvepoly(LWCURVEPOLY *poly1, LWCURVEPOLY *poly2, DISTPTS *dl)
 {
        const POINT2D *pt;
-       int i;
+       uint32_t i;
 
        LWDEBUG(2, "lw_dist2d_curvepoly_curvepoly called");
 
@@ -1048,7 +1048,7 @@ lw_dist2d_curvepoly_curvepoly(LWCURVEPOLY *poly1, LWCURVEPOLY *poly2, DISTPTS *d
 int
 lw_dist2d_pt_ptarray(const POINT2D *p, POINTARRAY *pa,DISTPTS *dl)
 {
-       int t;
+       uint32_t t;
        const POINT2D *start, *end;
        int twist = dl->twisted;
 
@@ -1078,7 +1078,7 @@ lw_dist2d_pt_ptarray(const POINT2D *p, POINTARRAY *pa,DISTPTS *dl)
 int
 lw_dist2d_pt_ptarrayarc(const POINT2D *p, const POINTARRAY *pa, DISTPTS *dl)
 {
-       int t;
+       uint32_t t;
        const POINT2D *A1;
        const POINT2D *A2;
        const POINT2D *A3;
@@ -1130,7 +1130,7 @@ lw_dist2d_pt_ptarrayarc(const POINT2D *p, const POINTARRAY *pa, DISTPTS *dl)
 int
 lw_dist2d_ptarray_ptarray(POINTARRAY *l1, POINTARRAY *l2,DISTPTS *dl)
 {
-       int t,u;
+       uint32_t t,u;
        const POINT2D   *start, *end;
        const POINT2D   *start2, *end2;
        int twist = dl->twisted;
@@ -1182,7 +1182,7 @@ lw_dist2d_ptarray_ptarray(POINTARRAY *l1, POINTARRAY *l2,DISTPTS *dl)
 int
 lw_dist2d_ptarray_ptarrayarc(const POINTARRAY *pa, const POINTARRAY *pb, DISTPTS *dl)
 {
-       int t, u;
+       uint32_t t, u;
        const POINT2D *A1;
        const POINT2D *A2;
        const POINT2D *B1;
@@ -1236,7 +1236,7 @@ lw_dist2d_ptarray_ptarrayarc(const POINTARRAY *pa, const POINTARRAY *pb, DISTPTS
 int
 lw_dist2d_ptarrayarc_ptarrayarc(const POINTARRAY *pa, const POINTARRAY *pb, DISTPTS *dl)
 {
-       int t, u;
+       uint32_t t, u;
        const POINT2D *A1;
        const POINT2D *A2;
        const POINT2D *A3;
index 6cfaedc53b943e98fd69e925256320be0f09733e..591dd689f858a2e4d3e8ccae66635f9fb3bba14d 100644 (file)
@@ -716,7 +716,7 @@ int lw_dist3d_poly_poly(LWPOLY *poly1, LWPOLY *poly2, DISTPTS3D *dl)
 int
 lw_dist3d_pt_ptarray(POINT3DZ *p, POINTARRAY *pa,DISTPTS3D *dl)
 {
-       int t;
+       uint32_t t;
        POINT3DZ        start, end;
        int twist = dl->twisted;
 
@@ -843,7 +843,7 @@ Finds all combinationes of segments between two pointarrays
 int
 lw_dist3d_ptarray_ptarray(POINTARRAY *l1, POINTARRAY *l2,DISTPTS3D *dl)
 {
-       int t,u;
+       uint32_t t,u;
        POINT3DZ        start, end;
        POINT3DZ        start2, end2;
        int twist = dl->twisted;
@@ -1019,7 +1019,7 @@ If the projected point is inside a hole of the polygon we check the distance to
 int
 lw_dist3d_pt_poly(POINT3DZ *p, LWPOLY *poly, PLANE3D *plane,POINT3DZ *projp, DISTPTS3D *dl)
 {
-       int i;
+       uint32_t i;
 
        LWDEBUG(2, "lw_dist3d_point_poly called");
 
@@ -1055,7 +1055,7 @@ int lw_dist3d_ptarray_poly(POINTARRAY *pa, LWPOLY *poly,PLANE3D *plane, DISTPTS3
 {
 
 
-       int i,j,k;
+       uint32_t i,j,k;
        double f, s1, s2;
        VECTOR3D projp1_projp2;
        POINT3DZ p1, p2,projp1, projp2, intersectionp;
@@ -1136,7 +1136,7 @@ the plane is stored as a pont in plane (plane.pop) and a normal vector (plane.pv
 int
 define_plane(POINTARRAY *pa, PLANE3D *pl)
 {
-       int i,j, numberofvectors, pointsinslice;
+       uint32_t i,j, numberofvectors, pointsinslice;
        POINT3DZ p, p1, p2;
 
        double sumx=0;
@@ -1152,7 +1152,7 @@ define_plane(POINTARRAY *pa, PLANE3D *pl)
        }
        else
        {
-               pointsinslice=(int) floor((pa->npoints-1)/4); /*divide the pointarray into 4 slices*/
+               pointsinslice=(uint32_t) floor((pa->npoints-1)/4); /*divide the pointarray into 4 slices*/
        }
 
        /*find the avg point*/
@@ -1241,8 +1241,8 @@ int
 pt_in_ring_3d(const POINT3DZ *p, const POINTARRAY *ring,PLANE3D *plane)
 {
 
-       int cn = 0;    /* the crossing number counter */
-       int i;
+       uint32_t cn = 0;    /* the crossing number counter */
+       uint32_t i;
        POINT3DZ v1, v2;
 
        POINT3DZ        first, last;
index b1857dabb0a8fde42621c33b5bf89bdb7bd3622e..84be41a756c4f59ec56c1b05bd5273c6bcbaa45b 100644 (file)
@@ -50,7 +50,7 @@ ptarray_has_m(const POINTARRAY *pa)
  * Size of point represeneted in the POINTARRAY
  * 16 for 2d, 24 for 3d, 32 for 4d
  */
-int inline
+inline size_t
 ptarray_point_size(const POINTARRAY *pa)
 {
        LWDEBUGF(5, "ptarray_point_size: FLAGS_NDIMS(pa->flags)=%x",FLAGS_NDIMS(pa->flags));
@@ -93,7 +93,7 @@ ptarray_construct_empty(char hasz, char hasm, uint32_t maxpoints)
 * pointarray supports.
 */
 int
-ptarray_insert_point(POINTARRAY *pa, const POINT4D *p, int where)
+ptarray_insert_point(POINTARRAY *pa, const POINT4D *p, uint32_t where)
 {
        size_t point_size = ptarray_point_size(pa);
        LWDEBUGF(5,"pa = %p; p = %p; where = %d", pa, p, where);
@@ -106,7 +106,7 @@ ptarray_insert_point(POINTARRAY *pa, const POINT4D *p, int where)
        }
 
        /* Error on invalid offset value */
-       if ( where > pa->npoints || where < 0)
+       if ( where > pa->npoints )
        {
                lwerror("ptarray_insert_point: offset out of range (%d)", where);
                return LW_FAILURE;
@@ -258,7 +258,7 @@ ptarray_append_ptarray(POINTARRAY *pa1, POINTARRAY *pa2, double gap_tolerance)
 * pointarray supports.
 */
 int
-ptarray_remove_point(POINTARRAY *pa, int where)
+ptarray_remove_point(POINTARRAY *pa, uint32_t where)
 {
        size_t ptsize = ptarray_point_size(pa);
 
@@ -270,7 +270,7 @@ ptarray_remove_point(POINTARRAY *pa, int where)
        }
 
        /* Error on invalid offset value */
-       if ( where >= pa->npoints || where < 0)
+       if ( where >= pa->npoints )
        {
                lwerror("ptarray_remove_point: offset out of range (%d)", where);
                return LW_FAILURE;
@@ -369,7 +369,7 @@ ptarray_reverse_in_place(POINTARRAY *pa)
 POINTARRAY*
 ptarray_flip_coordinates(POINTARRAY *pa)
 {
-       int i;
+       uint32_t i;
        double d;
        POINT4D p;
 
@@ -388,7 +388,7 @@ ptarray_flip_coordinates(POINTARRAY *pa)
 void
 ptarray_swap_ordinates(POINTARRAY *pa, LWORD o1, LWORD o2)
 {
-       int i;
+       uint32_t i;
        double d, *dp1, *dp2;
        POINT4D p;
 
@@ -419,7 +419,7 @@ ptarray_segmentize2d(const POINTARRAY *ipa, double dist)
        POINT4D p1, p2;
        POINT4D pbuf;
        POINTARRAY *opa;
-       int ipoff=0; /* input point offset */
+       uint32_t ipoff=0; /* input point offset */
        int hasz = FLAGS_GET_Z(ipa->flags);
        int hasm = FLAGS_GET_M(ipa->flags);
 
@@ -535,7 +535,6 @@ ptarray_addPoint(const POINTARRAY *pa, uint8_t *p, size_t pdims, uint32_t where)
        ret = ptarray_construct(FLAGS_GET_Z(pa->flags),
                                FLAGS_GET_M(pa->flags), pa->npoints+1);
 
-       if ( where == -1 ) where = pa->npoints;
 
        if ( where )
        {
@@ -736,7 +735,7 @@ int
 ptarray_contains_point_partial(const POINTARRAY *pa, const POINT2D *pt, int check_closed, int *winding_number)
 {
        int wn = 0;
-       int i;
+       uint32_t i;
        double side;
        const POINT2D *seg1;
        const POINT2D *seg2;
@@ -835,7 +834,8 @@ int
 ptarrayarc_contains_point_partial(const POINTARRAY *pa, const POINT2D *pt, int check_closed, int *winding_number)
 {
        int wn = 0;
-       int i, side;
+       uint32_t i;
+       int side;
        const POINT2D *seg1;
        const POINT2D *seg2;
        const POINT2D *seg3;
@@ -996,7 +996,7 @@ ptarray_signed_area(const POINTARRAY *pa)
        const POINT2D *P3;
        double sum = 0.0;
        double x0, x, y1, y2;
-       int i;
+       uint32_t i;
 
        if (! pa || pa->npoints < 3 )
                return 0.0;
@@ -1032,7 +1032,7 @@ POINTARRAY*
 ptarray_force_dims(const POINTARRAY *pa, int hasz, int hasm)
 {
        /* TODO handle zero-length point arrays */
-       int i;
+       uint32_t i;
        int in_hasz = FLAGS_GET_Z(pa->flags);
        int in_hasm = FLAGS_GET_M(pa->flags);
        POINT4D pt;
@@ -1299,9 +1299,9 @@ closest_point_on_segment(const POINT4D *p, const POINT4D *A, const POINT4D *B, P
 double
 ptarray_locate_point(const POINTARRAY *pa, const POINT4D *p4d, double *mindistout, POINT4D *proj4d)
 {
-       double mindist=-1;
+       double mindist=DBL_MAX;
        double tlen, plen;
-       int t, seg=-1;
+       uint32_t t, seg=0;
        POINT4D start4d, end4d, projtmp;
        POINT2D proj, p;
        const POINT2D *start = NULL, *end = NULL;
@@ -1312,18 +1312,19 @@ ptarray_locate_point(const POINTARRAY *pa, const POINT4D *p4d, double *mindistou
 
        if ( ! proj4d ) proj4d = &projtmp;
 
-       start = getPoint2d_cp(pa, 0);
-
-       /* If the pointarray has only one point, the nearest point is */
-       /* just that point */
-       if ( pa->npoints == 1 )
+       /* Check for special cases (length 0 and 1) */
+       if ( pa->npoints <= 1 )
        {
-               getPoint4d_p(pa, 0, proj4d);
-               if ( mindistout )
-                       *mindistout = distance2d_pt_pt(&p, start);
+               if ( pa->npoints == 1 )
+               {
+                       getPoint4d_p(pa, 0, proj4d);
+                       if ( mindistout )
+                               *mindistout = distance2d_pt_pt(&p, getPoint2d_cp(pa, 0));
+               }
                return 0.0;
        }
 
+       start = getPoint2d_cp(pa, 0);
        /* Loop through pointarray looking for nearest segment */
        for (t=1; t<pa->npoints; t++)
        {
@@ -1331,16 +1332,15 @@ ptarray_locate_point(const POINTARRAY *pa, const POINT4D *p4d, double *mindistou
                end = getPoint2d_cp(pa, t);
                dist = distance2d_pt_seg(&p, start, end);
 
-               if (t==1 || dist < mindist )
+               if ( dist < mindist )
                {
                        mindist = dist;
                        seg=t-1;
-               }
-
-               if ( mindist == 0 )
-               {
-                       LWDEBUG(3, "Breaking on mindist=0");
-                       break;
+                       if ( mindist == 0 )
+                       {
+                               LWDEBUG(3, "Breaking on mindist=0");
+                               break;
+                       }
                }
 
                start = end;
@@ -1410,7 +1410,7 @@ ptarray_locate_point(const POINTARRAY *pa, const POINT4D *p4d, double *mindistou
 void
 ptarray_longitude_shift(POINTARRAY *pa)
 {
-       int i;
+       uint32_t i;
        double x;
 
        for (i=0; i<pa->npoints; i++)
@@ -1445,14 +1445,16 @@ ptarray_remove_repeated_points(const POINTARRAY *in, double tolerance)
 
 
 void
-ptarray_remove_repeated_points_in_place(POINTARRAY *pa, double tolerance, int min_points)
+ptarray_remove_repeated_points_in_place(POINTARRAY *pa, double tolerance, uint32_t min_points)
 {
-       int i;
+       uint32_t i;
        double tolsq = tolerance * tolerance;
        const POINT2D *last = NULL;
        const POINT2D *pt;
-       int n_points = pa->npoints;
-       int n_points_out = 1;
+       uint32_t n_points = pa->npoints;
+       uint32_t n_points_out = 1;
+       size_t pt_size = ptarray_point_size(pa);
+
        double dsq = FLT_MAX;
 
        /* No-op on short inputs */
@@ -1467,7 +1469,7 @@ ptarray_remove_repeated_points_in_place(POINTARRAY *pa, double tolerance, int mi
                pt = getPoint2d_cp(pa, i);
 
                /* Don't drop points if we are running short of points */
-               if (n_points - i > min_points - n_points_out)
+               if (n_points + n_points_out > min_points + i)
                {
                        if (tolerance > 0.0)
                        {
@@ -1482,7 +1484,7 @@ ptarray_remove_repeated_points_in_place(POINTARRAY *pa, double tolerance, int mi
                        else
                        {
                                /* At tolerance zero, only skip exact dupes */
-                               if (memcmp((char*)pt, (char*)last, ptarray_point_size(pa)) == 0)
+                               if (memcmp((char*)pt, (char*)last, pt_size) == 0)
                                        continue;
                        }
 
@@ -1566,7 +1568,7 @@ int_cmp(const void *a, const void *b)
 }
 
 void
-ptarray_simplify_in_place(POINTARRAY *pa, double epsilon, unsigned int minpts)
+ptarray_simplify_in_place(POINTARRAY *pa, double epsilon, uint32_t minpts)
 {
        static size_t stack_size = 256;
        int *stack, *outlist; /* recursion stack */
@@ -1574,9 +1576,9 @@ ptarray_simplify_in_place(POINTARRAY *pa, double epsilon, unsigned int minpts)
        int outlist_static[stack_size];
        int sp = -1; /* recursion stack pointer */
        int p1, split;
-       int outn = 0;
+       uint32_t outn = 0;
        int pai = 0;
-       int i;
+       uint32_t i;
        double dist;
        double eps_sqr = epsilon * epsilon;
 
@@ -1655,7 +1657,7 @@ double
 ptarray_arc_length_2d(const POINTARRAY *pts)
 {
        double dist = 0.0;
-       int i;
+       uint32_t i;
        const POINT2D *a1;
        const POINT2D *a2;
        const POINT2D *a3;
@@ -1682,7 +1684,7 @@ double
 ptarray_length_2d(const POINTARRAY *pts)
 {
        double dist = 0.0;
-       int i;
+       uint32_t i;
        const POINT2D *frm;
        const POINT2D *to;
 
@@ -1710,7 +1712,7 @@ double
 ptarray_length(const POINTARRAY *pts)
 {
        double dist = 0.0;
-       int i;
+       uint32_t i;
        POINT3DZ frm;
        POINT3DZ to;
 
@@ -1740,7 +1742,7 @@ ptarray_length(const POINTARRAY *pts)
  * aligned to double boundary.
  */
 uint8_t *
-getPoint_internal(const POINTARRAY *pa, int n)
+getPoint_internal(const POINTARRAY *pa, uint32_t n)
 {
        size_t size;
        uint8_t *ptr;
@@ -1789,7 +1791,7 @@ getPoint_internal(const POINTARRAY *pa, int n)
 void
 ptarray_affine(POINTARRAY *pa, const AFFINE *a)
 {
-       int i;
+       uint32_t i;
        double x,y,z;
        POINT4D p4d;
 
@@ -1840,7 +1842,7 @@ ptarray_affine(POINTARRAY *pa, const AFFINE *a)
 void
 ptarray_scale(POINTARRAY *pa, const POINT4D *fact)
 {
-       int i;
+       uint32_t i;
        POINT4D p4d;
        LWDEBUG(3, "ptarray_scale start");
        for (i=0; i<pa->npoints; i++)
@@ -1873,7 +1875,7 @@ ptarray_startpoint(const POINTARRAY *pa, POINT4D *pt)
 void
 ptarray_grid_in_place(POINTARRAY *pa, const gridspec *grid)
 {
-       int i, j = 0;
+       uint32_t i, j = 0;
        POINT4D *p, *p_out = NULL;
        int ndims = FLAGS_NDIMS(pa->flags);
        int has_z = FLAGS_GET_Z(pa->flags);
@@ -1943,7 +1945,7 @@ ptarray_npoints_in_rect(const POINTARRAY *pa, const GBOX *gbox)
 {
        const POINT2D *pt;
        int n = 0;
-       int i;
+       uint32_t i;
        for ( i = 0; i < pa->npoints; i++ )
        {
                pt = getPoint2d_cp(pa, i);
index a762ad9dcfba818e227bdd1b2ecefdc8c73afe41..d7aeddb779c3367eec1b0d2d681f3ef12e0aa95e 100644 (file)
@@ -360,7 +360,7 @@ int gserialized_get_gidx_p(const GSERIALIZED *g, GIDX *gidx)
 */
 void gidx_expand(GIDX *a, float d)
 {
-       int i;
+       uint32_t i;
 
        POSTGIS_DEBUG(5, "entered function");
 
index 97762b33e8c73d6eb0bd1b988a2efa18fd9fca27..ffbc613c6b4f80d6826847ee34106d58296826b7 100644 (file)
@@ -108,7 +108,7 @@ create_multipoint(SHPDUMPERSTATE *state, LWMPOINT *lwmultipoint)
 {
        SHPObject *obj;
        POINT4D p4d;
-       int i;
+       uint32_t i;
 
        double *xpts, *ypts, *zpts, *mpts;
 
@@ -147,7 +147,7 @@ create_polygon(SHPDUMPERSTATE *state, LWPOLY *lwpolygon)
 {
        SHPObject *obj;
        POINT4D p4d;
-       int i, j;
+       uint32_t i, j;
 
        double *xpts, *ypts, *zpts, *mpts;
 
@@ -235,7 +235,7 @@ create_multipolygon(SHPDUMPERSTATE *state, LWMPOLY *lwmultipolygon)
 {
        SHPObject *obj;
        POINT4D p4d;
-       int i, j, k;
+       uint32_t i, j, k;
 
        double *xpts, *ypts, *zpts, *mpts;
 
@@ -339,7 +339,7 @@ create_linestring(SHPDUMPERSTATE *state, LWLINE *lwlinestring)
 {
        SHPObject *obj;
        POINT4D p4d;
-       int i;
+       uint32_t i;
 
        double *xpts, *ypts, *zpts, *mpts;
 
@@ -378,7 +378,7 @@ create_multilinestring(SHPDUMPERSTATE *state, LWMLINE *lwmultilinestring)
 {
        SHPObject *obj;
        POINT4D p4d;
-       int i, j;
+       uint32_t i, j;
 
        double *xpts, *ypts, *zpts, *mpts;
 
@@ -685,7 +685,7 @@ goodDBFValue(char *in, char fieldType)
 
 char *convert_bytes_to_hex(uint8_t *ewkb, size_t size)
 {
-       int i;
+       size_t i;
        char *hexewkb;
 
        /* Convert the byte stream to a hex string using liblwgeom's deparse_hex function */
@@ -1549,15 +1549,19 @@ ShpDumperOpenTable(SHPDUMPERSTATE *state)
                {
                        if (!strncasecmp(dbffieldname, state->dbffieldnames[j], 10))
                        {
-                               sprintf(dbffieldname, "%.7s_%.2d", ptr, tmpint++);
+                               sprintf(dbffieldname, "%.7s_%.2d", ptr, tmpint % 100);
+                               tmpint++;
                                continue;
                        }
                }
 
                /* make UPPERCASE if keep_fieldname_case = 0 */
                if (!state->config->keep_fieldname_case)
-                       for (j = 0; j < strlen(dbffieldname); j++)
-                               dbffieldname[j] = toupper(dbffieldname[j]);
+               {
+                       size_t nameit;
+                       for (nameit = 0; nameit < strlen(dbffieldname); nameit++)
+                               dbffieldname[nameit] = toupper(dbffieldname[nameit]);
+               }
 
                /* Issue warning if column has been renamed */
                if (strcasecmp(dbffieldname, pgfieldname))
index da4b136106f3dafcca60098ac8b90411cf6203f1..05586d8f6700b3444226b166fe8044fa57c74e67 100644 (file)
@@ -80,7 +80,7 @@ utf8(const char *fromcode, char *inputbuf, char **outputbuf)
        outputptr = *outputbuf;
 
        /* Does this string convert cleanly? */
-       if ( iconv(cd, &inputbuf, &inbytesleft, &outputptr, &outbytesleft) == -1 )
+       if ( iconv(cd, &inputbuf, &inbytesleft, &outputptr, &outbytesleft) == (size_t)-1 )
        {
 #ifdef HAVE_ICONVCTL
                int on = 1;
@@ -732,7 +732,7 @@ GeneratePolygonGeometry(SHPLOADERSTATE *state, SHPObject *obj, char **geometry)
 void
 strtolower(char *s)
 {
-       int j;
+       size_t j;
 
        for (j = 0; j < strlen(s); j++)
                s[j] = tolower(s[j]);
index 90d189e66174618212f006818c78dcece06b3530..160ec06d6e919e058af6e3c2403f7de248a08694 100644 (file)
@@ -1563,7 +1563,7 @@ SHPObject SHPAPI_CALL1(*)
 SHPReadObject( SHPHandle psSHP, int hEntity )
 
 {
-    int                  nEntitySize, nRequiredSize;
+    int32                nEntitySize, nRequiredSize;
     SHPObject           *psShape;
     char                 szErrorMsg[128];
 
@@ -1577,7 +1577,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
 /*      Ensure our record buffer is large enough.                       */
 /* -------------------------------------------------------------------- */
     nEntitySize = psSHP->panRecSize[hEntity]+8;
-    if( nEntitySize > psSHP->nBufSize )
+    if( nEntitySize > (int32) psSHP->nBufSize )
     {
         psSHP->pabyRec = (uchar *) SfRealloc(psSHP->pabyRec,nEntitySize);
         if (psSHP->pabyRec == NULL)
@@ -1668,7 +1668,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
         || psShape->nSHPType == SHPT_MULTIPATCH )
     {
         int32          nPoints, nParts;
-        int                    i, nOffset;
+        int32          i, nOffset;
 
         if ( 40 + 8 + 4 > nEntitySize )
         {
@@ -1885,7 +1885,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
              || psShape->nSHPType == SHPT_MULTIPOINTZ )
     {
         int32          nPoints;
-        int                    i, nOffset;
+        int32          i, nOffset;
 
         if ( 44 + 4 > nEntitySize )
         {
@@ -2020,7 +2020,7 @@ SHPReadObject( SHPHandle psSHP, int hEntity )
              || psShape->nSHPType == SHPT_POINTM
              || psShape->nSHPType == SHPT_POINTZ )
     {
-        int    nOffset;
+        int32  nOffset;
 
         psShape->nVertices = 1;
         psShape->padfX = (double *) calloc(1,sizeof(double));
index be06a983f6eb1fb74b5efff65fb0c52e11def521..79e133fccf86093e59c4bde5ce44bdfa8ee96025 100644 (file)
@@ -52,7 +52,7 @@ static TupleDesc get_tuple_desc(struct geobuf_agg_context *ctx)
 static void encode_keys(struct geobuf_agg_context *ctx)
 {
        TupleDesc tupdesc = get_tuple_desc(ctx);
-       int natts = tupdesc->natts;
+       uint32_t natts = (uint32_t) tupdesc->natts;
        char **keys = palloc(natts * sizeof(*keys));
        uint32_t i, k = 0;
        bool geom_found = false;
@@ -106,7 +106,7 @@ static void encode_properties(struct geobuf_agg_context *ctx,
        Data__Value **values;
        uint32_t i, k = 0, c = 0;
        TupleDesc tupdesc = get_tuple_desc(ctx);
-       int natts = tupdesc->natts;
+       uint32_t natts = (uint32_t) tupdesc->natts;
        properties = palloc(sizeof (*properties) * (natts - 1) * 2);
        values = palloc (sizeof (*values) * (natts - 1));
 
@@ -447,7 +447,7 @@ static void analyze_val(struct geobuf_agg_context *ctx, double val)
 
 static void analyze_pa(struct geobuf_agg_context *ctx, POINTARRAY *pa)
 {
-       int i;
+       uint32_t i;
        POINT4D pt;
        for (i = 0; i < pa->npoints; i++) {
                getPoint4d_p(pa, i, &pt);
@@ -462,7 +462,7 @@ static void analyze_pa(struct geobuf_agg_context *ctx, POINTARRAY *pa)
 
 static void analyze_geometry(struct geobuf_agg_context *ctx, LWGEOM *lwgeom)
 {
-       int i, type;
+       uint32_t i, type;
        LWLINE *lwline;
        LWPOLY *lwpoly;
        LWCOLLECTION *lwcollection;
@@ -606,7 +606,7 @@ void geobuf_agg_transfn(struct geobuf_agg_context *ctx)
  */
 uint8_t *geobuf_agg_finalfn(struct geobuf_agg_context *ctx)
 {
-       int i;
+       size_t i;
        Data *data;
        Data__FeatureCollection *fc;
 
index 82efadf2c9bac722ccb1b347abcbf7c9a678a222..c5c25610828c5d3a2757a0b2304aa8d96c79dfbd 100644 (file)
@@ -111,7 +111,7 @@ Datum geometry_to_path(PG_FUNCTION_ARGS)
        LWGEOM *lwgeom;
        GSERIALIZED *geom;
        POINTARRAY *pa;
-       int i;
+       uint32_t i;
        const POINT2D *pt;
        size_t size;
 
@@ -197,7 +197,7 @@ Datum geometry_to_polygon(PG_FUNCTION_ARGS)
        GSERIALIZED *geom;
        POINTARRAY *pa;
        GBOX gbox;
-       int i;
+       uint32_t i;
        size_t size;
 
        POSTGIS_DEBUG(2, "geometry_to_polygon called");
@@ -217,8 +217,8 @@ Datum geometry_to_polygon(PG_FUNCTION_ARGS)
 
        pa = lwpoly->rings[0];
 
-    size = offsetof(POLYGON, p[0]) + sizeof(polygon->p[0]) * pa->npoints;
-    polygon = (POLYGON*)palloc0(size); /* zero any holes */
+       size = offsetof(POLYGON, p[0]) + sizeof(polygon->p[0]) * pa->npoints;
+       polygon = (POLYGON*)palloc0(size); /* zero any holes */
        SET_VARSIZE(polygon, size);
 
        polygon->npts = pa->npoints;
index 8fa9f612bf1668287a46a3708374642b9ddd41d4..c6fea2303a36827e9d1cde26a38b0286c76dd0b0 100644 (file)
@@ -1732,7 +1732,7 @@ compute_gserialized_stats_mode(VacAttrStats *stats, AnalyzeAttrFetchFunc fetchfu
                 */
                do
                {
-                       ND_BOX nd_cell;
+                       ND_BOX nd_cell = { {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0} };
                        double ratio;
                        /* Create a box for this histogram cell */
                        for ( d = 0; d < nd_stats->ndims; d++ )
@@ -1990,7 +1990,7 @@ estimate_selectivity(const GBOX *box, const ND_STATS *nd_stats, int mode)
        do
        {
                float cell_count, ratio;
-               ND_BOX nd_cell;
+               ND_BOX nd_cell = { {0.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 0.0, 0.0} };
 
                /* We have to pro-rate partially overlapped cells. */
                for ( d = 0; d < nd_stats->ndims; d++ )
index 47143dada36387f22c087d831f52f07ac2d33105..a33dc0d693a902d00c9969b09db8710035d5318f 100644 (file)
@@ -135,7 +135,7 @@ GIDX* gidx_copy(GIDX *b)
 /* Ensure all minimums are below maximums. */
 static inline void gidx_validate(GIDX *b)
 {
-       int i;
+       uint32_t i;
        Assert(b);
        POSTGIS_DEBUGF(5,"validating gidx (%s)", gidx_to_string(b));
        for ( i = 0; i < GIDX_NDIMS(b); i++ )
@@ -217,7 +217,7 @@ void gidx_merge(GIDX **b_union, GIDX *b_new)
 static float gidx_volume(GIDX *a)
 {
        float result;
-       int i;
+       uint32_t i;
        if ( a == NULL || gidx_is_unknown(a) )
        {
                /* elog(ERROR, "gidx_volume received a null argument"); */
@@ -234,7 +234,7 @@ static float gidx_volume(GIDX *a)
 static float gidx_edge(GIDX *a)
 {
        float result;
-       int i;
+       uint32_t i;
        if ( a == NULL || gidx_is_unknown(a) )
        {
                return 0.0;
@@ -364,7 +364,7 @@ static float gidx_union_edge(GIDX *a, GIDX *b)
 /* Calculate the volume of the intersection of the boxes. */
 static float gidx_inter_volume(GIDX *a, GIDX *b)
 {
-       int i;
+       uint32_t i;
        float result;
 
        POSTGIS_DEBUG(5,"entered function");
@@ -495,7 +495,7 @@ bool gidx_contains(GIDX *a, GIDX *b)
 */
 static bool gidx_equals(GIDX *a, GIDX *b)
 {
-       int i;
+       uint32_t i;
 
        POSTGIS_DEBUG(5, "entered function");
 
@@ -1094,7 +1094,7 @@ Datum gserialized_gist_compress(PG_FUNCTION_ARGS)
        char gidxmem[GIDX_MAX_SIZE];
        GIDX *bbox_out = (GIDX*)gidxmem;
        int result = LW_SUCCESS;
-       int i;
+       uint32_t i;
 
        POSTGIS_DEBUG(4, "[GIST] 'compress' function called");
 
index 92777acd3b44e2de2cbfc38531729597b6894638..995fbb2473534b2b1fdefbb96361226983de0de0 100644 (file)
@@ -508,10 +508,10 @@ Datum BOX2D_to_LWGEOM(PG_FUNCTION_ARGS)
                LWPOLY *poly;
 
                /* Initialize the 4 vertices of the polygon */
-               points[0] = (POINT4D) { box->xmin, box->ymin };
-               points[1] = (POINT4D) { box->xmin, box->ymax };
-               points[2] = (POINT4D) { box->xmax, box->ymax };
-               points[3] = (POINT4D) { box->xmax, box->ymin };
+               points[0] = (POINT4D) { box->xmin, box->ymin, 0.0, 0.0 };
+               points[1] = (POINT4D) { box->xmin, box->ymax, 0.0, 0.0 };
+               points[2] = (POINT4D) { box->xmax, box->ymax, 0.0, 0.0 };
+               points[3] = (POINT4D) { box->xmax, box->ymin, 0.0, 0.0 };
 
                /* Construct polygon */
                poly = lwpoly_construct_rectangle(LW_FALSE, LW_FALSE, &points[0], &points[1],
index 5322e18028c7fa7bde7c40958465a29d38bba1bb..47df750b54d0020affe222a2187b191d0592d91a 100644 (file)
@@ -259,10 +259,10 @@ Datum BOX3D_to_LWGEOM(PG_FUNCTION_ARGS)
                LWPOLY *lwpoly;
 
                /* Initialize the 4 vertices of the polygon */
-               points[0] = (POINT4D) { box->xmin, box->ymin, box->zmin };
-               points[1] = (POINT4D) { box->xmin, box->ymax, box->zmin };
-               points[2] = (POINT4D) { box->xmin, box->ymax, box->zmax };
-               points[3] = (POINT4D) { box->xmin, box->ymin, box->zmax };
+               points[0] = (POINT4D) { box->xmin, box->ymin, box->zmin, 0.0 };
+               points[1] = (POINT4D) { box->xmin, box->ymax, box->zmin, 0.0 };
+               points[2] = (POINT4D) { box->xmin, box->ymax, box->zmax, 0.0 };
+               points[3] = (POINT4D) { box->xmin, box->ymin, box->zmax, 0.0 };
 
                lwpoly = lwpoly_construct_rectangle(LW_TRUE, LW_FALSE,
                                &points[0], &points[1], &points[2], &points[3]);
@@ -276,10 +276,10 @@ Datum BOX3D_to_LWGEOM(PG_FUNCTION_ARGS)
                LWPOLY *lwpoly;
 
                /* Initialize the 4 vertices of the polygon */
-               points[0] = (POINT4D) { box->xmin, box->ymin, box->zmin };
-               points[1] = (POINT4D) { box->xmax, box->ymin, box->zmin };
-               points[2] = (POINT4D) { box->xmax, box->ymin, box->zmax };
-               points[3] = (POINT4D) { box->xmin, box->ymin, box->zmax };
+               points[0] = (POINT4D) { box->xmin, box->ymin, box->zmin, 0.0 };
+               points[1] = (POINT4D) { box->xmax, box->ymin, box->zmin, 0.0 };
+               points[2] = (POINT4D) { box->xmax, box->ymin, box->zmax, 0.0 };
+               points[3] = (POINT4D) { box->xmin, box->ymin, box->zmax, 0.0 };
 
                lwpoly = lwpoly_construct_rectangle(LW_TRUE, LW_FALSE,
                                &points[0], &points[1], &points[2], &points[3]);
@@ -293,10 +293,10 @@ Datum BOX3D_to_LWGEOM(PG_FUNCTION_ARGS)
                LWPOLY *lwpoly;
 
                /* Initialize the 4 vertices of the polygon */
-               points[0] = (POINT4D) { box->xmin, box->ymin, box->zmin };
-               points[1] = (POINT4D) { box->xmin, box->ymax, box->zmin };
-               points[2] = (POINT4D) { box->xmax, box->ymax, box->zmin };
-               points[3] = (POINT4D) { box->xmax, box->ymin, box->zmin };
+               points[0] = (POINT4D) { box->xmin, box->ymin, box->zmin, 0.0 };
+               points[1] = (POINT4D) { box->xmin, box->ymax, box->zmin, 0.0 };
+               points[2] = (POINT4D) { box->xmax, box->ymax, box->zmin, 0.0 };
+               points[3] = (POINT4D) { box->xmax, box->ymin, box->zmin, 0.0 };
 
                lwpoly = lwpoly_construct_rectangle(LW_TRUE, LW_FALSE,
                                &points[0], &points[1], &points[2], &points[3]);
@@ -312,14 +312,14 @@ Datum BOX3D_to_LWGEOM(PG_FUNCTION_ARGS)
                LWGEOM *geom = NULL;
 
                /* Initialize the 8 vertices of the box */
-               points[0] = (POINT4D) { box->xmin, box->ymin, box->zmin };
-               points[1] = (POINT4D) { box->xmin, box->ymax, box->zmin };
-               points[2] = (POINT4D) { box->xmax, box->ymax, box->zmin };
-               points[3] = (POINT4D) { box->xmax, box->ymin, box->zmin };
-               points[4] = (POINT4D) { box->xmin, box->ymin, box->zmax };
-               points[5] = (POINT4D) { box->xmin, box->ymax, box->zmax };
-               points[6] = (POINT4D) { box->xmax, box->ymax, box->zmax };
-               points[7] = (POINT4D) { box->xmax, box->ymin, box->zmax };
+               points[0] = (POINT4D) { box->xmin, box->ymin, box->zmin, 0.0 };
+               points[1] = (POINT4D) { box->xmin, box->ymax, box->zmin, 0.0 };
+               points[2] = (POINT4D) { box->xmax, box->ymax, box->zmin, 0.0 };
+               points[3] = (POINT4D) { box->xmax, box->ymin, box->zmin, 0.0 };
+               points[4] = (POINT4D) { box->xmin, box->ymin, box->zmax, 0.0 };
+               points[5] = (POINT4D) { box->xmin, box->ymax, box->zmax, 0.0 };
+               points[6] = (POINT4D) { box->xmax, box->ymax, box->zmax, 0.0 };
+               points[7] = (POINT4D) { box->xmax, box->ymin, box->zmax, 0.0 };
 
                /* add bottom polygon */
                geoms[0] = lwpoly_as_lwgeom(lwpoly_construct_rectangle(LW_TRUE, LW_FALSE,
index e7d6dd5bfb3452ee3ce5330c625a12cf0862013e..e0632fe434e384d1ab1169d51ebc0bf426837e76 100644 (file)
@@ -48,7 +48,7 @@ Datum ST_Subdivide(PG_FUNCTION_ARGS);
 
 typedef struct GEOMDUMPNODE_T
 {
-       int idx;
+       uint32_t idx;
        LWGEOM *geom;
 }
 GEOMDUMPNODE;
@@ -83,7 +83,7 @@ Datum LWGEOM_dump(PG_FUNCTION_ARGS)
        Datum result;
        char address[256];
        char *ptr;
-       uint32 i;
+       int i;
        char *values[2];
 
        if (SRF_IS_FIRSTCALL())
@@ -210,7 +210,7 @@ Datum LWGEOM_dump(PG_FUNCTION_ARGS)
 
 struct POLYDUMPSTATE
 {
-       int ringnum;
+       uint32_t ringnum;
        LWPOLY *poly;
 };
 
index 17b9b4bd5049b5a72f4b4ecfc93fab07629ff51f..45842888988c4500060e9f2def221b35c328e208 100644 (file)
@@ -48,7 +48,7 @@ Datum LWGEOM_dumppoints(PG_FUNCTION_ARGS);
 
 struct dumpnode {
        LWGEOM *geom;
-       int idx; /* which member geom we're working on */
+       uint32_t idx; /* which member geom we're working on */
 } ;
 
 /* 32 is the max depth for st_dump, so it seems reasonable
@@ -67,8 +67,8 @@ struct dumpstate {
        bool    byval;
        char    align;
 
-       int ring; /* ring of top polygon */
-       int pt; /* point of top geom or current ring */
+       uint32_t ring; /* ring of top polygon */
+       uint32_t pt; /* point of top geom or current ring */
 };
 
 PG_FUNCTION_INFO_V1(LWGEOM_dumppoints);
index 1904f1994000df16fe64cd788980e05bcfda7874..d834194f2c2bf262d20ac29a555d1d9f5df51e93 100644 (file)
@@ -480,7 +480,7 @@ Datum LWGEOM_line_substring(PG_FUNCTION_ARGS)
        else if ( type == MULTILINETYPE )
        {
                LWMLINE *iline;
-               int i = 0, g = 0;
+               uint32_t i = 0, g = 0;
                int homogeneous = LW_TRUE;
                LWGEOM **geoms = NULL;
                double length = 0.0, sublength = 0.0, minprop = 0.0, maxprop = 0.0;
@@ -650,7 +650,7 @@ static int isOnSegment(const POINT2D *seg1, const POINT2D *seg2, const POINT2D *
 static int point_in_ring_rtree(RTREE_NODE *root, const POINT2D *point)
 {
        int wn = 0;
-       int i;
+       uint32_t i;
        double side;
        const POINT2D *seg1;
        const POINT2D *seg2;
@@ -733,14 +733,14 @@ static int point_in_ring_rtree(RTREE_NODE *root, const POINT2D *point)
 static int point_in_ring(POINTARRAY *pts, const POINT2D *point)
 {
        int wn = 0;
-       int i;
+       uint32_t i;
        double side;
        const POINT2D* seg1;
        const POINT2D* seg2;
 
        POSTGIS_DEBUG(2, "point_in_ring called.");
 
-    seg2 = getPoint2d_cp(pts, 0);
+       seg2 = getPoint2d_cp(pts, 0);
        for (i=0; i<pts->npoints-1; i++)
        {
                seg1 = seg2;
@@ -910,7 +910,8 @@ int point_in_multipolygon_rtree(RTREE_NODE **root, int polyCount, int *ringCount
  */
 int point_in_polygon(LWPOLY *polygon, LWPOINT *point)
 {
-       int i, result, in_ring;
+       uint32_t i;
+       int result, in_ring;
        POINT2D pt;
 
        POSTGIS_DEBUG(2, "point_in_polygon called.");
@@ -953,7 +954,8 @@ int point_in_polygon(LWPOLY *polygon, LWPOINT *point)
  */
 int point_in_multipolygon(LWMPOLY *mpolygon, LWPOINT *point)
 {
-       int i, j, result, in_ring;
+       uint32_t i, j;
+       int result, in_ring;
        POINT2D pt;
 
        POSTGIS_DEBUG(2, "point_in_polygon called.");
index 6606033ad79dd795c6fd0de391745f178720a19e..6cdc574bf037144edf800583a29d56c5a6f2aae2 100644 (file)
@@ -1560,7 +1560,10 @@ Datum LWGEOM_makepoly(PG_FUNCTION_ARGS)
                holes = lwalloc(sizeof(LWLINE *)*nholes);
                for (i=0; i<nholes; i++)
                {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wsign-compare"
                        GSERIALIZED *g = (GSERIALIZED *)(ARR_DATA_PTR(array)+offset);
+#pragma GCC diagnostic pop
                        LWLINE *hole;
                        offset += INTALIGN(VARSIZE(g));
                        if ( gserialized_get_type(g) != LINETYPE )
@@ -2160,17 +2163,13 @@ Datum LWGEOM_addpoint(PG_FUNCTION_ARGS)
        GSERIALIZED *pglwg1, *pglwg2, *result;
        LWPOINT *point;
        LWLINE *line, *linecopy;
-       int where = -1;
+       int32 where = -1;
 
        POSTGIS_DEBUGF(2, "%s called.", __func__);
 
        pglwg1 = PG_GETARG_GSERIALIZED_P(0);
        pglwg2 = PG_GETARG_GSERIALIZED_P(1);
 
-       if ( PG_NARGS() > 2 )
-       {
-               where = PG_GETARG_INT32(2);
-       }
 
        if ( gserialized_get_type(pglwg1) != LINETYPE )
        {
@@ -2186,8 +2185,16 @@ Datum LWGEOM_addpoint(PG_FUNCTION_ARGS)
 
        line = lwgeom_as_lwline(lwgeom_from_gserialized(pglwg1));
 
-       if ( where == -1 ) where = line->points->npoints;
-       else if ( where < 0 || where > line->points->npoints )
+       if ( PG_NARGS() > 2 )
+       {
+               where = PG_GETARG_INT32(2);
+       }
+       else
+       {
+               where = line->points->npoints;
+       }
+
+       if ( where < 0 || where > (int32) line->points->npoints )
        {
                elog(ERROR, "Invalid offset");
                PG_RETURN_NULL();
@@ -2197,7 +2204,7 @@ Datum LWGEOM_addpoint(PG_FUNCTION_ARGS)
        linecopy = lwgeom_as_lwline(lwgeom_clone_deep(lwline_as_lwgeom(line)));
        lwline_free(line);
 
-       if ( lwline_add_lwpoint(linecopy, point, where) == LW_FAILURE )
+       if ( lwline_add_lwpoint(linecopy, point, (uint32_t) where) == LW_FAILURE )
        {
                elog(ERROR, "Point insert failed");
                PG_RETURN_NULL();
@@ -2299,7 +2306,7 @@ Datum LWGEOM_setpoint_linestring(PG_FUNCTION_ARGS)
                /* Use backward indexing for negative values */
                which = which + line->points->npoints ;
        }
-       if ( which > line->points->npoints-1 || which < 0 )
+       if ( (uint32_t)which + 1 > line->points->npoints )
        {
                elog(ERROR, "abs(Point index) out of range (-)(%d..%d)", 0, line->points->npoints-1);
                PG_RETURN_NULL();
@@ -2308,7 +2315,7 @@ Datum LWGEOM_setpoint_linestring(PG_FUNCTION_ARGS)
        /*
         * This will change pointarray of the serialized pglwg1,
         */
-       lwline_setPoint4d(line, which, &newpoint);
+       lwline_setPoint4d(line, (uint32_t)which, &newpoint);
        result = geometry_serialize((LWGEOM *)line);
 
        /* Release memory */
index b17b21666ee649b1c57efc98e3fefca724072655..a60e1c691bcee3ba5536d4b57b2d4875d813b5bf 100644 (file)
@@ -437,7 +437,7 @@ ptarray_locate_between_m(POINTARRAY *ipa, double m0, double m1)
 {
        POINTARRAYSET ret;
        POINTARRAY *dpa=NULL;
-       int i;
+       uint32_t i;
 
        ret.nptarrays=0;
 
@@ -628,7 +628,7 @@ lwline_locate_between_m(LWLINE *lwline_in, double m0, double m1)
 static LWGEOM *
 lwcollection_locate_between_m(LWCOLLECTION *lwcoll, double m0, double m1)
 {
-       int i;
+       uint32_t i;
        int ngeoms=0;
        LWGEOM **geoms;
 
index 9a0be53d2eae60eae02b9cca584a6f5f581b9280..9236c918b54e2d0e009f55631392cefe3cda6b64 100644 (file)
@@ -420,7 +420,12 @@ Datum pgis_union_geometry_array(PG_FUNCTION_ARGS)
 
        /* One geom, good geom? Return it */
        if ( count == 1 && nelems == 1 )
+       {
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wsign-compare"
                PG_RETURN_POINTER((GSERIALIZED *)(ARR_DATA_PTR(array)));
+#pragma GCC diagnostic pop
+       }
 
        /* Ok, we really need GEOS now ;) */
        initGEOS(lwpgnotice, lwgeom_geos_error);
@@ -2648,7 +2653,7 @@ Datum relate_pattern(PG_FUNCTION_ARGS)
        char *patt;
        bool result;
        GEOSGeometry *g1, *g2;
-       int i;
+       size_t i;
 
        geom1 = PG_GETARG_GSERIALIZED_P(0);
        geom2 = PG_GETARG_GSERIALIZED_P(1);
index 5fcb3ead64e2a9ec868450090cbf6c4a5fcc3b51..7857213df33bf1d42691ee94551e5f5f471b07c4 100644 (file)
@@ -529,7 +529,7 @@ Datum TWKBFromLWGEOMArray(PG_FUNCTION_ARGS)
        Datum val_geom, val_id;
 
        int is_homogeneous = true;
-       int subtype = 0;
+       uint32_t subtype = 0;
        int has_z = 0;
        int has_m  = 0;
        LWCOLLECTION *col = NULL;
index 86881ecc832296c3262fdb8b46213cb6c177c327..39933495768a2939e86ffa9bb296733e1a86e85a 100644 (file)
@@ -276,7 +276,7 @@ Datum LWGEOM_geometryn_collection(PG_FUNCTION_ARGS)
        coll = lwgeom_as_lwcollection(lwgeom_from_gserialized(geom));
 
        if ( idx < 0 ) PG_RETURN_NULL();
-       if ( idx >= coll->ngeoms ) PG_RETURN_NULL();
+       if ( idx >= (int32) coll->ngeoms ) PG_RETURN_NULL();
 
        subgeom = coll->geoms[idx];
        subgeom->srid = coll->srid;
@@ -492,7 +492,7 @@ Datum LWGEOM_interiorringn_polygon(PG_FUNCTION_ARGS)
                poly = lwgeom_as_lwpoly(lwgeom_from_gserialized(geom));
 
                /* Ok, now we have a polygon. Let's see if it has enough holes */
-               if ( wanted_index >= poly->nrings )
+               if ( wanted_index >= (int32)poly->nrings )
                {
                        lwpoly_free(poly);
                        PG_FREE_IF_COPY(geom, 0);
@@ -520,7 +520,7 @@ Datum LWGEOM_interiorringn_polygon(PG_FUNCTION_ARGS)
        {
                curvepoly = lwgeom_as_lwcurvepoly(lwgeom_from_gserialized(geom));
 
-               if (wanted_index >= curvepoly->nrings)
+               if (wanted_index >= (int32)curvepoly->nrings)
                {
                        PG_FREE_IF_COPY(geom, 0);
                        lwgeom_release((LWGEOM *)curvepoly);
index 27169e9345e1e2a53bb2b25b8e995bfa73b62a8c..5e7d6fed8d11aa0408d1235cf4ae9390cb200e3e 100644 (file)
@@ -166,7 +166,7 @@ RTreeCreateInteriorNode(RTREE_NODE* left, RTREE_NODE* right)
 * Creates a leaf node given the pointer to the start point of the segment.
 */
 static RTREE_NODE*
-RTreeCreateLeafNode(POINTARRAY* pa, int startPoint)
+RTreeCreateLeafNode(POINTARRAY* pa, uint32_t startPoint)
 {
        RTREE_NODE *parent;
        LWLINE *line;
@@ -219,8 +219,8 @@ RTreeCreate(POINTARRAY* pointArray)
 {
        RTREE_NODE* root;
        RTREE_NODE** nodes = lwalloc(pointArray->npoints * sizeof(RTREE_NODE*));
-       int i, nodeCount;
-       int childNodes, parentNodes;
+       uint32_t i, nodeCount;
+       uint32_t childNodes, parentNodes;
 
        POSTGIS_DEBUGF(2, "RTreeCreate called with pointarray %p", pointArray);
 
@@ -283,7 +283,7 @@ RTreeMergeMultiLines(LWMLINE *line1, LWMLINE *line2)
 {
        LWGEOM **geoms;
        LWCOLLECTION *col;
-       int i, j, ngeoms;
+       uint32_t i, j, ngeoms;
 
        POSTGIS_DEBUGF(2, "RTreeMergeMultiLines called on %p, %d, %d; %p, %d, %d", line1, line1->ngeoms, line1->type, line2, line2->ngeoms, line2->type);
 
@@ -315,7 +315,7 @@ RTreeMergeMultiLines(LWMLINE *line1, LWMLINE *line2)
 static int
 RTreeBuilder(const LWGEOM* lwgeom, GeomCache* cache)
 {
-       int i, p, r;
+       uint32_t i, p, r;
        LWMPOLY *mpoly;
        LWPOLY *poly;
        int nrings;
index ae97d4ba8fd4d1bb19f16af3524a780da8a40f77..8cbb711f524e74cde9df56fa9842e46d5ea0d496 100644 (file)
@@ -286,7 +286,7 @@ static uint32_t get_key_index(mvt_agg_context *ctx, char *name)
        size_t size = strlen(name);
        HASH_FIND(hh, ctx->keys_hash, name, size, kv);
        if (!kv)
-               return -1;
+               return UINT32_MAX;
        return kv->id;
 }
 
@@ -304,7 +304,7 @@ static uint32_t add_key(mvt_agg_context *ctx, char *name)
 static void parse_column_keys(mvt_agg_context *ctx)
 {
        TupleDesc tupdesc = get_tuple_desc(ctx);
-       int natts = tupdesc->natts;
+       uint32_t natts = (uint32_t) tupdesc->natts;
        uint32_t i;
        bool geom_found = false;
        char *key;
@@ -513,7 +513,7 @@ static uint32_t *parse_jsonb(mvt_agg_context *ctx, Jsonb *jb,
                        key[v.val.string.len] = '\0';
 
                        k = get_key_index(ctx, key);
-                       if (k == -1) {
+                       if (k == UINT32_MAX) {
                                uint32_t newSize = ctx->keys_hash_i + 1;
                                tags = repalloc(tags, newSize * 2 * sizeof(*tags));
                                k = add_key(ctx, key);
@@ -561,7 +561,7 @@ static void parse_values(mvt_agg_context *ctx)
        bool isnull;
        uint32_t i, k;
        TupleDesc tupdesc = get_tuple_desc(ctx);
-       int natts = tupdesc->natts;
+       uint32_t natts = (uint32_t) tupdesc->natts;
        ctx->c = 0;
 
        POSTGIS_DEBUGF(3, "parse_values natts: %d", natts);
@@ -588,7 +588,7 @@ static void parse_values(mvt_agg_context *ctx)
                        continue;
                }
 #if POSTGIS_PGSQL_VERSION >= 94
-               if (k == -1 && typoid != JSONBOID)
+               if (k == UINT32_MAX && typoid != JSONBOID)
                        elog(ERROR, "parse_values: unexpectedly could not find parsed key name '%s'", key);
                if (typoid == JSONBOID) {
                        tags = parse_jsonb(ctx, DatumGetJsonbP(datum), tags);
@@ -655,7 +655,7 @@ lwgeom_to_basic_type(LWGEOM *geom)
                /* by finding the largest basic type available and */
                /* using that as the basis of a typed collection. */
                LWCOLLECTION *g = (LWCOLLECTION*)geom;
-               int i, maxtype = 0;
+               uint32_t i, maxtype = 0;
                for (i = 0; i < g->ngeoms; i++)
                {
                        LWGEOM *sg = g->geoms[i];
@@ -960,7 +960,7 @@ tile_value_copy(const VectorTile__Tile__Value *value)
 static VectorTile__Tile__Feature *
 tile_feature_copy(const VectorTile__Tile__Feature *feature, int key_offset, int value_offset)
 {
-       int i;
+       uint32_t i;
 
        /* Null in => Null out */
        if (!feature) return NULL;
@@ -1003,7 +1003,7 @@ tile_feature_copy(const VectorTile__Tile__Feature *feature, int key_offset, int
 static VectorTile__Tile__Layer *
 vectortile_layer_combine(const VectorTile__Tile__Layer *layer1, const VectorTile__Tile__Layer *layer2)
 {
-       int i, j;
+       uint32_t i, j;
        int key2_offset, value2_offset;
        VectorTile__Tile__Layer *layer = palloc(sizeof(VectorTile__Tile__Layer));
        vector_tile__tile__layer__init(layer);
@@ -1011,7 +1011,7 @@ vectortile_layer_combine(const VectorTile__Tile__Layer *layer1, const VectorTile
        /* Take globals from layer1 */
        layer->version = layer1->version;
        layer->name = pstrdup(layer1->name);
-    layer->has_extent = layer1->has_extent;
+       layer->has_extent = layer1->has_extent;
        layer->extent = layer1->extent;
 
        /* Copy keys into new layer */
@@ -1053,7 +1053,7 @@ vectortile_layer_combine(const VectorTile__Tile__Layer *layer1, const VectorTile
 static VectorTile__Tile *
 vectortile_tile_combine(VectorTile__Tile *tile1, VectorTile__Tile *tile2)
 {
-       int i, j;
+       uint32_t i, j;
 
        /* Hopelessly messing up memory ownership here */
        if (tile1->n_layers == 0 && tile2->n_layers == 0)
index 07c31dfdf6c4f0bd036de2a270c068610a5b5afc..49d3937e120236dac995c94a2036c7eb5663269b 100644 (file)
@@ -90,12 +90,12 @@ raster_destroy(rt_raster raster) {
 }
 
 static int
-array_range(int min, int max, int step, int **range, int *len) {
+array_range(int min, int max, int step, int **range, uint32_t *len) {
        int i = 0;
        int j = 0;
 
        step = abs(step);
-       *len = (abs(max - min) + 1 + (step / 2)) / step;
+       *len = (uint32_t) ((abs(max - min) + 1 + (step / 2)) / step);
        *range = rtalloc(sizeof(int) * *len);
 
        if (min < max) {
@@ -194,7 +194,7 @@ strtolower(char * str) {
 
 /* split a string based on a delimiter */
 static char**
-strsplit(const char *str, const char *delimiter, int *n) {
+strsplit(const char *str, const char *delimiter, uint32_t *n) {
        char *tmp = NULL;
        char **rtn = NULL;
        char *token = NULL;
@@ -599,7 +599,7 @@ copy_rastinfo(RASTERINFO *dst, RASTERINFO *src) {
 static void
 diff_rastinfo(RASTERINFO *x, RASTERINFO *ref) {
        static uint8_t msg[6] = {0};
-       int i = 0;
+       uint32_t i = 0;
 
        /* # of bands */
        if (
@@ -789,7 +789,7 @@ rtdealloc_stringbuffer(STRINGBUFFER *buffer, int freebuffer) {
 
 static void
 dump_stringbuffer(STRINGBUFFER *buffer) {
-       int i = 0;
+       uint32_t i = 0;
 
        for (i = 0; i < buffer->length; i++) {
                printf("%s\n", buffer->line[i]);
@@ -1347,14 +1347,14 @@ add_overview_constraints(
 }
 
 static int
-build_overview(int idx, RTLOADERCFG *config, RASTERINFO *info, int ovx, STRINGBUFFER *tileset, STRINGBUFFER *buffer) {
+build_overview(int idx, RTLOADERCFG *config, RASTERINFO *info, uint32_t ovx, STRINGBUFFER *tileset, STRINGBUFFER *buffer) {
        GDALDatasetH hdsSrc;
        VRTDatasetH hdsOv;
        VRTSourcedRasterBandH hbandOv;
        double gtOv[6] = {0.};
        int dimOv[2] = {0};
 
-       int j = 0;
+       uint32_t j = 0;
        int factor;
        const char *ovtable = NULL;
 
@@ -1564,7 +1564,7 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
        GDALDatasetH hdsSrc;
        GDALRasterBandH hbandSrc;
        int nband = 0;
-       int i = 0;
+       uint32_t i = 0;
        int ntiles[2] = {1, 1};
        int _tile_size[2] = {0, 0};
        int xtile = 0;
@@ -1574,7 +1574,7 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
        int tilesize = 0;
 
        rt_raster rast = NULL;
-       int numbands = 0;
+       uint32_t numbands = 0;
        rt_band band = NULL;
        char *hex;
        uint32_t hexlen = 0;
@@ -1732,9 +1732,9 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
                info->tile_size[1] = config->tile_size[1];
 
        /* number of tiles */
-       if (info->tile_size[0] != info->dim[0])
+       if ((uint32_t)info->tile_size[0] != info->dim[0])
                ntiles[0] = (info->dim[0] + info->tile_size[0]  - 1) / info->tile_size[0];
-       if (info->tile_size[1] != info->dim[1])
+       if ((uint32_t)info->tile_size[1] != info->dim[1])
                ntiles[1] = (info->dim[1] + info->tile_size[1]  - 1) / info->tile_size[1];
 
        /* estimate size of 1 tile */
@@ -2001,7 +2001,7 @@ convert_raster(int idx, RTLOADERCFG *config, RASTERINFO *info, STRINGBUFFER *til
 
 static int
 process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
-       int i = 0;
+       uint32_t i = 0;
 
        assert(config != NULL);
        assert(config->table != NULL);
@@ -2102,7 +2102,7 @@ process_rasters(RTLOADERCFG *config, STRINGBUFFER *buffer) {
 
                        /* overviews */
                        if (config->overview_count) {
-                               int j = 0;
+                               uint32_t j = 0;
 
                                for (j = 0; j < config->overview_count; j++) {
 
@@ -2273,12 +2273,13 @@ int
 main(int argc, char **argv) {
        RTLOADERCFG *config = NULL;
        STRINGBUFFER *buffer = NULL;
-       int i = 0;
-       int j = 0;
+       uint32_t i = 0;
+       uint32_t j = 0;
        char **elements = NULL;
-       int n = 0;
+       uint32_t n = 0;
        GDALDriverH drv = NULL;
        char *tmp = NULL;
+       int argit = 0;
 
        rt_init_allocators();
 
@@ -2306,11 +2307,12 @@ main(int argc, char **argv) {
        * parse arguments
        ****************************************************************************/
 
-       for (i = 1; i < argc; i++) {
+       for (argit = 1; argit < argc; argit++) {
                char *optarg, *ptr;
                /* srid */
-               if (CSEQUAL(argv[i], "-s") && i < argc - 1) {
-                       optarg = argv[++i];
+
+               if (CSEQUAL(argv[argit], "-s") && argit < argc - 1) {
+                       optarg = argv[++argit];
                        ptr = strchr(optarg, ':');
                        if (ptr) {
                                *ptr++ = '\0';
@@ -2321,8 +2323,8 @@ main(int argc, char **argv) {
                        }
                }
                /* band index */
-               else if (CSEQUAL(argv[i], "-b") && i < argc - 1) {
-                       elements = strsplit(argv[++i], ",", &n);
+               else if (CSEQUAL(argv[argit], "-b") && argit < argc - 1) {
+                       elements = strsplit(argv[++argit], ",", &n);
                        if (n < 1) {
                                rterror(_("Could not process -b"));
                                rtdealloc_config(config);
@@ -2334,10 +2336,10 @@ main(int argc, char **argv) {
                                char *t = trim(elements[j]);
                                char **minmax = NULL;
                                int *range = NULL;
-                               int p = 0;
-                               int l = 0;
+                               uint32_t p = 0;
+                               uint32_t l = 0;
                                int m = 0;
-                               int o = 0;
+                               uint32_t o = 0;
 
                                /* is t a range? */
                                minmax = strsplit(t, "-", &o);
@@ -2415,13 +2417,13 @@ main(int argc, char **argv) {
                        }
                }
                /* tile size */
-               else if (CSEQUAL(argv[i], "-t") && i < argc - 1) {
-                       if (CSEQUAL(argv[++i], "auto")) {
+               else if (CSEQUAL(argv[argit], "-t") && argit < argc - 1) {
+                       if (CSEQUAL(argv[++argit], "auto")) {
                                config->tile_size[0] = -1;
                                config->tile_size[1] = -1;
                        }
                        else {
-                               elements = strsplit(argv[i], "x", &n);
+                               elements = strsplit(argv[argit], "x", &n);
                                if (n != 2) {
                                        rterror(_("Could not process -t"));
                                        rtdealloc_config(config);
@@ -2448,57 +2450,57 @@ main(int argc, char **argv) {
                        }
                }
                /* pad tiles */
-               else if (CSEQUAL(argv[i], "-P")) {
+               else if (CSEQUAL(argv[argit], "-P")) {
                        config->pad_tile = 1;
                }
                /* out-of-db raster */
-               else if (CSEQUAL(argv[i], "-R")) {
+               else if (CSEQUAL(argv[argit], "-R")) {
                        config->outdb = 1;
                }
                /* drop table and recreate */
-               else if (CSEQUAL(argv[i], "-d")) {
+               else if (CSEQUAL(argv[argit], "-d")) {
                        config->opt = 'd';
                }
                /* append to table */
-               else if (CSEQUAL(argv[i], "-a")) {
+               else if (CSEQUAL(argv[argit], "-a")) {
                        config->opt = 'a';
                }
                /* create new table */
-               else if (CSEQUAL(argv[i], "-c")) {
+               else if (CSEQUAL(argv[argit], "-c")) {
                        config->opt = 'c';
                }
                /* prepare only */
-               else if (CSEQUAL(argv[i], "-p")) {
+               else if (CSEQUAL(argv[argit], "-p")) {
                        config->opt = 'p';
                }
                /* raster column name */
-               else if (CSEQUAL(argv[i], "-f") && i < argc - 1) {
-                       config->raster_column = rtalloc(sizeof(char) * (strlen(argv[++i]) + 1));
+               else if (CSEQUAL(argv[argit], "-f") && argit < argc - 1) {
+                       config->raster_column = rtalloc(sizeof(char) * (strlen(argv[++argit]) + 1));
                        if (config->raster_column == NULL) {
                                rterror(_("Could not allocate memory for storing raster column name"));
                                rtdealloc_config(config);
                                exit(1);
                        }
-                       strncpy(config->raster_column, argv[i], strlen(argv[i]) + 1);
+                       strncpy(config->raster_column, argv[argit], strlen(argv[argit]) + 1);
                }
                /* filename column */
-               else if (CSEQUAL(argv[i], "-F")) {
+               else if (CSEQUAL(argv[argit], "-F")) {
                        config->file_column = 1;
                }
                /* filename column name */
-               else if (CSEQUAL(argv[i], "-n") && i < argc - 1) {
-                       config->file_column_name = rtalloc(sizeof(char) * (strlen(argv[++i]) + 1));
+               else if (CSEQUAL(argv[argit], "-n") && argit < argc - 1) {
+                       config->file_column_name = rtalloc(sizeof(char) * (strlen(argv[++argit]) + 1));
                        if (config->file_column_name == NULL) {
                                rterror(_("Could not allocate memory for storing filename column name"));
                                rtdealloc_config(config);
                                exit(1);
                        }
-                       strncpy(config->file_column_name, argv[i], strlen(argv[i]) + 1);
+                       strncpy(config->file_column_name, argv[argit], strlen(argv[argit]) + 1);
                        config->file_column = 1;
                }
                /* overview factors */
-               else if (CSEQUAL(argv[i], "-l") && i < argc - 1) {
-                       elements = strsplit(argv[++i], ",", &n);
+               else if (CSEQUAL(argv[argit], "-l") && argit < argc - 1) {
+                       elements = strsplit(argv[++argit], ",", &n);
                        if (n < 1) {
                                rterror(_("Could not process -l"));
                                rtdealloc_config(config);
@@ -2522,7 +2524,7 @@ main(int argc, char **argv) {
                        elements = NULL;
                        n = 0;
 
-                       for (j = 0; j < config->overview_count; j++) {
+                       for (j = 0; j < (uint32_t)config->overview_count; j++) {
                                if (config->overview[j] < MINOVFACTOR || config->overview[j] > MAXOVFACTOR) {
                                        rterror(_("Overview factor %d is not between %d and %d"), config->overview[j], MINOVFACTOR, MAXOVFACTOR);
                                        rtdealloc_config(config);
@@ -2531,78 +2533,78 @@ main(int argc, char **argv) {
                        }
                }
                /* quote identifiers */
-               else if (CSEQUAL(argv[i], "-q")) {
+               else if (CSEQUAL(argv[argit], "-q")) {
                        config->quoteident = 1;
                }
                /* create index */
-               else if (CSEQUAL(argv[i], "-I")) {
+               else if (CSEQUAL(argv[argit], "-I")) {
                        config->idx = 1;
                }
                /* maintenance */
-               else if (CSEQUAL(argv[i], "-M")) {
+               else if (CSEQUAL(argv[argit], "-M")) {
                        config->maintenance = 1;
                }
                /* set constraints */
-               else if (CSEQUAL(argv[i], "-C")) {
+               else if (CSEQUAL(argv[argit], "-C")) {
                        config->constraints = 1;
                }
                /* disable extent constraint */
-               else if (CSEQUAL(argv[i], "-x")) {
+               else if (CSEQUAL(argv[argit], "-x")) {
                        config->max_extent = 0;
                }
                /* enable regular_blocking */
-               else if (CSEQUAL(argv[i], "-r")) {
+               else if (CSEQUAL(argv[argit], "-r")) {
                        config->regular_blocking = 1;
                }
                /* tablespace of new table */
-               else if (CSEQUAL(argv[i], "-T") && i < argc - 1) {
-                       config->tablespace = rtalloc(sizeof(char) * (strlen(argv[++i]) + 1));
+               else if (CSEQUAL(argv[argit], "-T") && argit < argc - 1) {
+                       config->tablespace = rtalloc(sizeof(char) * (strlen(argv[++argit]) + 1));
                        if (config->tablespace == NULL) {
                                rterror(_("Could not allocate memory for storing tablespace of new table"));
                                rtdealloc_config(config);
                                exit(1);
                        }
-                       strncpy(config->tablespace, argv[i], strlen(argv[i]) + 1);
+                       strncpy(config->tablespace, argv[argit], strlen(argv[argit]) + 1);
                }
                /* tablespace of new index */
-               else if (CSEQUAL(argv[i], "-X") && i < argc - 1) {
-                       config->idx_tablespace = rtalloc(sizeof(char) * (strlen(argv[++i]) + 1));
+               else if (CSEQUAL(argv[argit], "-X") && argit < argc - 1) {
+                       config->idx_tablespace = rtalloc(sizeof(char) * (strlen(argv[++argit]) + 1));
                        if (config->idx_tablespace == NULL) {
                                rterror(_("Could not allocate memory for storing tablespace of new indices"));
                                rtdealloc_config(config);
                                exit(1);
                        }
-                       strncpy(config->idx_tablespace, argv[i], strlen(argv[i]) + 1);
+                       strncpy(config->idx_tablespace, argv[argit], strlen(argv[argit]) + 1);
                }
                /* nodata value */
-               else if (CSEQUAL(argv[i], "-N") && i < argc - 1) {
+               else if (CSEQUAL(argv[argit], "-N") && argit < argc - 1) {
                        config->hasnodata = 1;
-                       config->nodataval = atof(argv[++i]);
+                       config->nodataval = atof(argv[++argit]);
                }
                /* skip NODATA value check for bands */
-               else if (CSEQUAL(argv[i], "-k")) {
+               else if (CSEQUAL(argv[argit], "-k")) {
                        config->skip_nodataval_check = 1;
                }
                /* endianness */
-               else if (CSEQUAL(argv[i], "-E") && i < argc - 1) {
-                       config->endian = atoi(argv[++i]);
+               else if (CSEQUAL(argv[argit], "-E") && argit < argc - 1) {
+                       config->endian = atoi(argv[++argit]);
                        config->endian = 1;
                }
                /* version */
-               else if (CSEQUAL(argv[i], "-V") && i < argc - 1) {
-                       config->version = atoi(argv[++i]);
+               else if (CSEQUAL(argv[argit], "-V") && argit < argc - 1) {
+                       config->version = atoi(argv[++argit]);
                        config->version = 0;
                }
                /* transaction */
-               else if (CSEQUAL(argv[i], "-e")) {
+               else if (CSEQUAL(argv[argit], "-e")) {
                        config->transaction = 0;
                }
                /* COPY statements */
-               else if (CSEQUAL(argv[i], "-Y")) {
+               else if (CSEQUAL(argv[argit], "-Y")) {
                        config->copy_statements = 1;
                }
                /* GDAL formats */
-               else if (CSEQUAL(argv[i], "-G")) {
+               else if (CSEQUAL(argv[argit], "-G")) {
                        uint32_t drv_count = 0;
                        rt_gdaldriver drv_set = rt_raster_gdal_drivers(&drv_count, 0);
                        if (drv_set == NULL || !drv_count) {
@@ -2624,7 +2626,7 @@ main(int argc, char **argv) {
                        exit(0);
                }
                /* help */
-               else if (CSEQUAL(argv[i], "-?")) {
+               else if (CSEQUAL(argv[argit], "-?")) {
                        usage();
                        rtdealloc_config(config);
                        exit(0);
@@ -2638,13 +2640,13 @@ main(int argc, char **argv) {
                                exit(1);
                        }
 
-                       config->rt_file[config->rt_file_count - 1] = rtalloc(sizeof(char) * (strlen(argv[i]) + 1));
+                       config->rt_file[config->rt_file_count - 1] = rtalloc(sizeof(char) * (strlen(argv[argit]) + 1));
                        if (config->rt_file[config->rt_file_count - 1] == NULL) {
                                rterror(_("Could not allocate memory for storing raster filename"));
                                rtdealloc_config(config);
                                exit(1);
                        }
-                       strncpy(config->rt_file[config->rt_file_count - 1], argv[i], strlen(argv[i]) + 1);
+                       strncpy(config->rt_file[config->rt_file_count - 1], argv[argit], strlen(argv[argit]) + 1);
                }
        }
 
index fc1002ea00f8beb19258705623ce0c20e2fbf674..7e8a574e9360e2c30c5c39e705c355d4a88699db 100644 (file)
@@ -71,7 +71,7 @@
 
 typedef struct raster_loader_config {
        /* raster filename */
-       int rt_file_count;
+       uint32_t rt_file_count;
        char **rt_file;
        char **rt_filename;
 
@@ -89,7 +89,7 @@ typedef struct raster_loader_config {
        char *file_column_name;
 
        /* overview factor */
-       int overview_count;
+       uint32_t overview_count;
        int *overview;
        char **overview_table;
 
@@ -104,7 +104,7 @@ typedef struct raster_loader_config {
 
        /* bands to extract */
        int *nband; /* 1-based */
-       int nband_count;
+       uint32_t nband_count;
 
        /* tile size */
        int tile_size[2];
@@ -173,7 +173,7 @@ typedef struct rasterinfo_t {
 
        /* number of bands */
        int *nband; /* 1-based */
-       int nband_count;
+       uint32_t nband_count;
 
        /* array of pixeltypes */
        GDALDataType *gdalbandtype;
index 1a08d1de7ee48b2f9fc2cbaef78c9cf7387e6597..d1437db2f188575371782a9a7da3d6454a12bb78 100644 (file)
@@ -386,7 +386,7 @@ rt_errorstate rt_pixtype_compare_clamped_values(
  * @return ES_NONE on success, ES_ERROR on error
  */
 rt_errorstate rt_pixel_set_to_array(
-       rt_pixel npixel,int count,
+       rt_pixel npixel,uint32_t count,
        rt_mask mask,
        int x, int y,
        uint16_t distancex, uint16_t distancey,
@@ -725,7 +725,7 @@ rt_errorstate rt_band_get_pixel(
  * @return -1 on error, otherwise the number of rt_pixel objects
  * in npixels
  */
-int rt_band_get_nearest_pixel(
+uint32_t rt_band_get_nearest_pixel(
        rt_band band,
        int x, int y,
        uint16_t distancex, uint16_t distancey,
@@ -838,7 +838,7 @@ rt_bandstats rt_band_get_summary_stats(
  */
 rt_histogram rt_band_get_histogram(
        rt_bandstats stats,
-       int bin_count, double *bin_widths, int bin_widths_count,
+       uint32_t bin_count, double *bin_widths, uint32_t bin_widths_count,
        int right, double min, double max,
        uint32_t *rtn_count
 );
@@ -895,7 +895,7 @@ rt_quantile rt_band_get_quantiles_stream(
        int exclude_nodata_value, double sample,
        uint64_t cov_count,
        struct quantile_llist **qlls, uint32_t *qlls_count,
-       double *quantiles, int quantiles_count,
+       double *quantiles, uint32_t quantiles_count,
        uint32_t *rtn_count
 );
 
@@ -1012,7 +1012,7 @@ char *rt_raster_to_hexwkb(rt_raster raster, int outasin, uint32_t *hexwkbsize);
 void rt_raster_destroy(rt_raster raster);
 
 /* Get number of bands */
-int rt_raster_get_num_bands(rt_raster raster);
+uint16_t rt_raster_get_num_bands(rt_raster raster);
 
 /**
  * Return Nth band, or NULL if unavailable
index 24e7708d9b7b03c4bebda7edf77ac9e65bd2ccb7..4dbf64bd9f0c335392780fd9d05cbbc296c5c7ac 100644 (file)
@@ -1238,7 +1238,7 @@ rt_band_get_pixel(
  * @return -1 on error, otherwise the number of rt_pixel objects
  * in npixels
  */
-int rt_band_get_nearest_pixel(
+uint32_t rt_band_get_nearest_pixel(
        rt_band band,
        int x, int y,
        uint16_t distancex, uint16_t distancey,
@@ -1249,7 +1249,7 @@ int rt_band_get_nearest_pixel(
        int extent[4] = {0};
        int max_extent[4] = {0};
        int d0 = 0;
-       int distance[2] = {0};
+       uint32_t distance[2] = {0};
        uint32_t _d[2] = {0};
        uint32_t i = 0;
        uint32_t j = 0;
@@ -1307,8 +1307,8 @@ int rt_band_get_nearest_pixel(
                        if distances won't capture extent of band, return 0
                */
                else if (
-                       ((x < 0 && abs(x) > distance[0]) || (x - band->width >= distance[0])) ||
-                       ((y < 0 && abs(y) > distance[1]) || (y - band->height >= distance[1]))
+                       ((x < 0 && (uint32_t) abs(x) > distance[0]) || (x - band->width >= (int)distance[0])) ||
+                       ((y < 0 && (uint32_t) abs(y) > distance[1]) || (y - band->height >= (int)distance[1]))
                ) {
                        RASTER_DEBUG(4, "No nearest pixels possible for provided pixel and distances");
                        return 0;
@@ -1419,7 +1419,7 @@ int rt_band_get_nearest_pixel(
                                }
 
                                RASTER_DEBUGF(4, "_min, _max: %d, %d", *_min, _max);
-                               for (k = 0; k < _max; k++) {
+                               for (k = 0; k < (uint32_t) _max; k++) {
                                        /* check that _x and _y are not outside max extent */
                                        if (
                                                _x < max_extent[0] || _x > max_extent[2] ||
index 8eaaab65d4c1a0ff50579b5681b4c494a257ca4c..a893306bc43f0a2fd34ffd29a3dcd96cdb992b7a 100644 (file)
@@ -384,7 +384,7 @@ rt_band_reclass(
 
 typedef struct _rti_iterator_arg_t* _rti_iterator_arg;
 struct _rti_iterator_arg_t {
-       int count;
+       uint32_t count;
 
        rt_raster *raster;
        int *isempty;
@@ -458,7 +458,7 @@ _rti_iterator_arg_init() {
 
 static void
 _rti_iterator_arg_destroy(_rti_iterator_arg _param) {
-       int i = 0;
+       uint32_t i = 0;
 
        if (_param->raster != NULL)
                rtdealloc(_param->raster);
@@ -668,8 +668,8 @@ _rti_iterator_arg_populate(
 
 static int
 _rti_iterator_arg_empty_init(_rti_iterator_arg _param) {
-       int x = 0;
-       int y = 0;
+       uint32_t x = 0;
+       uint32_t y = 0;
 
        _param->empty.values = rtalloc(sizeof(double *) * _param->dimension.rows);
        _param->empty.nodata = rtalloc(sizeof(int *) * _param->dimension.rows);
@@ -698,7 +698,7 @@ _rti_iterator_arg_empty_init(_rti_iterator_arg _param) {
 
 static int
 _rti_iterator_arg_callback_init(_rti_iterator_arg _param) {
-       int i = 0;
+       uint32_t i = 0;
 
        _param->arg = rtalloc(sizeof(struct rt_iterator_arg_t));
        if (_param->arg == NULL) {
@@ -744,8 +744,8 @@ _rti_iterator_arg_callback_init(_rti_iterator_arg _param) {
 
 static void
 _rti_iterator_arg_callback_clean(_rti_iterator_arg _param) {
-       int i = 0;
-       int y = 0;
+       uint32_t i = 0;
+       uint32_t y = 0;
 
        for (i = 0; i < _param->count; i++) {
                RASTER_DEBUGF(5, "empty at @ %p", _param->empty.values);
index 8d849062dd75bead54951d1cb5f1f60b72cc772a..68c907a1299cba98f1dfa9b659387d19187e3b93 100644 (file)
@@ -284,7 +284,7 @@ rt_errorstate rt_pixtype_compare_clamped_values(
  * @return ES_NONE on success, ES_ERROR on error
  */
 rt_errorstate rt_pixel_set_to_array(
-       rt_pixel npixel, int count, rt_mask mask,
+       rt_pixel npixel, uint32_t count, rt_mask mask,
        int x, int y,
        uint16_t distancex, uint16_t distancey,
        double ***value,
index eeae81aae001d66023b7b3d8a453cbf2d18877f8..3cec50ed187112b5e78d7bf4952c87a84423f951 100644 (file)
@@ -368,7 +368,7 @@ rt_raster_set_srid(rt_raster raster, int32_t srid) {
        _rt_raster_geotransform_warn_offline_band(raster);
 }
 
-int
+uint16_t
 rt_raster_get_num_bands(rt_raster raster) {
 
 
@@ -1850,7 +1850,7 @@ rt_raster_to_gdal_mem(
        int allocNodataValues = 0;
 
        int i;
-       int numBands;
+       uint32_t numBands;
        uint32_t width = 0;
        uint32_t height = 0;
        rt_band rtband = NULL;
@@ -2044,9 +2044,9 @@ rt_raster_to_gdal_mem(
 
                /* PT_8BSI requires manual setting of pixels */
                if (pt == PT_8BSI) {
-                       int nXBlocks, nYBlocks;
+                       uint32_t nXBlocks, nYBlocks;
                        int nXBlockSize, nYBlockSize;
-                       int iXBlock, iYBlock;
+                       uint32_t iXBlock, iYBlock;
                        int nXValid, nYValid;
                        int iX, iY;
                        int iXMax, iYMax;
@@ -2190,7 +2190,7 @@ rt_raster_from_gdal_dataset(GDALDatasetH ds) {
        uint32_t width = 0;
        uint32_t height = 0;
        uint32_t numBands = 0;
-       int i = 0;
+       uint32_t i = 0;
        char *authname = NULL;
        char *authcode = NULL;
 
@@ -2206,11 +2206,11 @@ rt_raster_from_gdal_dataset(GDALDatasetH ds) {
        int x;
        int y;
 
-       int nXBlocks, nYBlocks;
+       uint32_t nXBlocks, nYBlocks;
        int nXBlockSize, nYBlockSize;
-       int iXBlock, iYBlock;
-       int nXValid, nYValid;
-       int iY;
+       uint32_t iXBlock, iYBlock;
+       uint32_t nXValid, nYValid;
+       uint32_t iY;
 
        uint8_t *values = NULL;
        uint32_t valueslen = 0;
@@ -2524,7 +2524,7 @@ rt_raster_gdal_rasterize(
        char **options
 ) {
        rt_raster rast = NULL;
-       int i = 0;
+       uint32_t i = 0;
        int err = 0;
 
        _rti_rasterize_arg arg = NULL;
index f7d41f72f6abe7f50288b07002eb5bd67ac517b9..13903363f2b9fddc606c51d60a50e4b71e6e958f 100644 (file)
@@ -411,14 +411,14 @@ rt_band_get_summary_stats(
 rt_histogram
 rt_band_get_histogram(
        rt_bandstats stats,
-       int bin_count, double *bin_width, int bin_width_count,
+       uint32_t bin_count, double *bin_width, uint32_t bin_width_count,
        int right, double min, double max,
        uint32_t *rtn_count
 ) {
        rt_histogram bins = NULL;
        int init_width = 0;
-       int i;
-       int j;
+       uint32_t i;
+       uint32_t j;
        double tmp;
        double value;
        int sum = 0;
@@ -1012,7 +1012,7 @@ rt_band_get_quantiles_stream(
        int exclude_nodata_value, double sample,
        uint64_t cov_count,
        struct quantile_llist **qlls, uint32_t *qlls_count,
-       double *quantiles, int quantiles_count,
+       double *quantiles, uint32_t quantiles_count,
        uint32_t *rtn_count
 ) {
        rt_quantile rtn = NULL;
@@ -1618,7 +1618,7 @@ rt_band_get_value_count(
        int scale = 0;
        int doround = 0;
        double tmpd = 0;
-       int i = 0;
+       uint32_t i = 0;
 
        uint32_t x = 0;
        uint32_t y = 0;
@@ -1627,8 +1627,8 @@ rt_band_get_value_count(
        int isnodata = 0;
        double rpxlval;
        uint32_t total = 0;
-       int vcnts_count = 0;
-       int new_valuecount = 0;
+       uint32_t vcnts_count = 0;
+       uint32_t new_valuecount = 0;
 
 #if POSTGIS_DEBUG_LEVEL > 0
        clock_t start, stop;
@@ -1669,7 +1669,7 @@ rt_band_get_value_count(
        }
        /* tenths, hundredths, thousandths, etc */
        else if (roundto < 1) {
-    switch (pixtype) {
+       switch (pixtype) {
                        /* integer band types don't have digits after the decimal place */
                        case PT_1BB:
                        case PT_2BUI:
index 7d9fa82bfbdf4d9d1a29ea04d49c88cef439cc9d..a51e898dd2def143ec7bc75f1f48ba2028f402f3 100644 (file)
@@ -139,7 +139,7 @@ rtpg_chartrim(const char *input, char *remove) {
 
 /* split a string based on a delimiter */
 char**
-rtpg_strsplit(const char *str, const char *delimiter, int *n) {
+rtpg_strsplit(const char *str, const char *delimiter, uint32_t *n) {
        char *tmp = NULL;
        char **rtn = NULL;
        char *token = NULL;
index 725552161d60650d0d287f9464a8bd00ce84016c..f738088ae9569ba11eb88b4a87932466f5bb1181 100644 (file)
@@ -52,7 +52,7 @@ char *
 rtpg_chartrim(const char* input, char *remove);
 
 char **
-rtpg_strsplit(const char *str, const char *delimiter, int *n);
+rtpg_strsplit(const char *str, const char *delimiter, uint32_t *n);
 
 char *
 rtpg_removespaces(char *str);
index 6629c9466ef7feb1be4b7aa256f724a1b4c34dcf..275baf3bf0d5035a4d7a9945a969b109a5c56705 100644 (file)
@@ -369,8 +369,8 @@ static int rtpg_nmapalgebra_callback(
        bool *_null = NULL;
 
        int i = 0;
-       int x = 0;
-       int y = 0;
+       uint32_t x = 0;
+       uint32_t y = 0;
        int z = 0;
        int dim[3] = {0};
        int lbound[3] = {1, 1, 1};
@@ -1431,7 +1431,7 @@ Datum RASTER_nMapAlgebraExpr(PG_FUNCTION_ARGS)
                char *expr = NULL;
                char *tmp = NULL;
                char *sql = NULL;
-               char place[5] = "$1";
+               char place[12] = "$1";
 
                if (PG_ARGISNULL(exprpos[i]))
                        continue;
@@ -3454,9 +3454,9 @@ Datum RASTER_reclass(PG_FUNCTION_ARGS) {
        int j = 0;
        int k = 0;
 
-       int a = 0;
-       int b = 0;
-       int c = 0;
+       uint32_t a = 0;
+       uint32_t b = 0;
+       uint32_t c = 0;
 
        rt_reclassexpr *exprset = NULL;
        HeapTupleHeader tup;
@@ -3476,11 +3476,11 @@ Datum RASTER_reclass(PG_FUNCTION_ARGS) {
        bool hasnodata = FALSE;
 
        char **comma_set = NULL;
-       int comma_n = 0;
+       uint32_t comma_n = 0;
        char **colon_set = NULL;
-       int colon_n = 0;
+       uint32_t colon_n = 0;
        char **dash_set = NULL;
-       int dash_n = 0;
+       uint32_t dash_n = 0;
 
        POSTGIS_RT_DEBUG(3, "RASTER_reclass: Starting");
 
@@ -3681,6 +3681,7 @@ Datum RASTER_reclass(PG_FUNCTION_ARGS) {
                                                        strchr(dash_set[c], ']') != NULL
                                                )
                                        ) {
+                                               uint32_t dash_it;
                                                junk = palloc(sizeof(char) * (strlen(dash_set[c + 1]) + 2));
                                                if (NULL == junk) {
                                                        for (k = 0; k <= j; k++) pfree(exprset[k]);
@@ -3699,9 +3700,9 @@ Datum RASTER_reclass(PG_FUNCTION_ARGS) {
                                                pfree(junk);
 
                                                /* rebuild dash_set */
-                                               for (k = 1; k < dash_n; k++) {
-                                                       dash_set[k - 1] = repalloc(dash_set[k - 1], (strlen(dash_set[k]) + 1) * sizeof(char));
-                                                       strcpy(dash_set[k - 1], dash_set[k]);
+                                               for (dash_it = 1; dash_it < dash_n; dash_it++) {
+                                                       dash_set[dash_it - 1] = repalloc(dash_set[dash_it - 1], (strlen(dash_set[dash_it]) + 1) * sizeof(char));
+                                                       strcpy(dash_set[dash_it - 1], dash_set[dash_it]);
                                                }
                                                dash_n--;
                                                c--;
@@ -3983,9 +3984,9 @@ struct rtpg_colormap_arg_t {
        int nodataentry;
 
        char **entry;
-       int nentry;
+       uint32_t nentry;
        char **element;
-       int nelement;
+       uint32_t nelement;
 };
 
 static rtpg_colormap_arg
@@ -4024,7 +4025,7 @@ rtpg_colormap_arg_init() {
 
 static void
 rtpg_colormap_arg_destroy(rtpg_colormap_arg arg) {
-       int i = 0;
+       uint32_t i = 0;
        if (arg->raster != NULL)
                rt_raster_destroy(arg->raster);
 
@@ -4165,8 +4166,8 @@ Datum RASTER_colorMap(PG_FUNCTION_ARGS)
                char *colormap = text_to_cstring(PG_GETARG_TEXT_P(2));
                char *_entry;
                char *_element;
-               int i = 0;
-               int j = 0;
+               uint32_t i = 0;
+               uint32_t j = 0;
 
                POSTGIS_RT_DEBUGF(4, "colormap = %s", colormap);
 
@@ -4232,7 +4233,7 @@ Datum RASTER_colorMap(PG_FUNCTION_ARGS)
                        }
 
                        /* smallest # of colors */
-                       if ((arg->nelement - 1) < arg->colormap->ncolor)
+                       if (((int)arg->nelement - 1) < arg->colormap->ncolor)
                                arg->colormap->ncolor = arg->nelement - 1;
 
                        /* each element of entry */
@@ -4434,7 +4435,7 @@ Datum RASTER_mapAlgebraExpr(PG_FUNCTION_ARGS)
     int argcount = 0;
     Oid argtype[] = { FLOAT8OID, INT4OID, INT4OID };
     uint8_t argpos[3] = {0};
-    char place[5];
+    char place[12];
     int idx = 0;
     int ret = -1;
     TupleDesc tupdesc;
@@ -6076,8 +6077,8 @@ Datum RASTER_mapAlgebraFctNgb(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_mapAlgebra2);
 Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
-       rt_pgraster *pgrast[2];
+       const uint32_t set_count = 2;
+       rt_pgraster *pgrast[2] = { NULL, NULL };
        int pgrastpos[2] = {-1, -1};
        rt_pgraster *pgrtn;
        rt_raster rast[2] = {NULL};
@@ -6109,7 +6110,7 @@ Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS)
 
        Oid calltype = InvalidOid;
 
-       const int spi_count = 3;
+       const uint32_t spi_count = 3;
        uint16_t spi_exprpos[3] = {4, 7, 8};
        uint32_t spi_argcount[3] = {0};
        char *expr = NULL;
@@ -6117,7 +6118,7 @@ Datum RASTER_mapAlgebra2(PG_FUNCTION_ARGS)
        SPIPlanPtr spi_plan[3] = {NULL};
        uint16_t spi_empty = 0;
        Oid *argtype = NULL;
-       const int argkwcount = 8;
+       const uint32_t argkwcount = 8;
        uint8_t argpos[3][8] = {{0}};
        char *argkw[] = {"[rast1.x]", "[rast1.y]", "[rast1.val]", "[rast1]", "[rast2.x]", "[rast2.y]", "[rast2.val]", "[rast2]"};
        Datum values[argkwcount];
index 9bc406477aa5ae606d4aab91c75b5c7e0626a613..22260657fb1a1a0092a0c69d7acc6c3e38f0b22e 100644 (file)
@@ -1216,7 +1216,7 @@ Datum RASTER_setPixelValuesGeomval(PG_FUNCTION_ARGS)
        size_t wkb_len;
 
        int i = 0;
-       int j = 0;
+       uint32_t j = 0;
        int noerr = 1;
 
        /* pgraster is null, return null */
index 2e2d9502a9440a4e82491bcd1b18bc117b93ace7..b5df8c0246d47b2e80f9f859f4a7f76a1e0e7846 100644 (file)
@@ -72,7 +72,7 @@ Datum RASTER_notSameAlignmentReason(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(RASTER_intersects);
 Datum RASTER_intersects(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -168,8 +168,8 @@ Datum RASTER_intersects(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_intersects(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                &result
        );
        for (k = 0; k < set_count; k++) {
@@ -191,7 +191,7 @@ Datum RASTER_intersects(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_overlaps);
 Datum RASTER_overlaps(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -287,8 +287,8 @@ Datum RASTER_overlaps(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_overlaps(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                &result
        );
        for (k = 0; k < set_count; k++) {
@@ -310,7 +310,7 @@ Datum RASTER_overlaps(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_touches);
 Datum RASTER_touches(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -406,8 +406,8 @@ Datum RASTER_touches(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_touches(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                &result
        );
        for (k = 0; k < set_count; k++) {
@@ -429,7 +429,7 @@ Datum RASTER_touches(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_contains);
 Datum RASTER_contains(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -525,8 +525,8 @@ Datum RASTER_contains(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_contains(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                &result
        );
        for (k = 0; k < set_count; k++) {
@@ -548,7 +548,7 @@ Datum RASTER_contains(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_containsProperly);
 Datum RASTER_containsProperly(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -644,8 +644,8 @@ Datum RASTER_containsProperly(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_contains_properly(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                &result
        );
        for (k = 0; k < set_count; k++) {
@@ -667,7 +667,7 @@ Datum RASTER_containsProperly(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_covers);
 Datum RASTER_covers(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -763,8 +763,8 @@ Datum RASTER_covers(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_covers(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                &result
        );
        for (k = 0; k < set_count; k++) {
@@ -786,7 +786,7 @@ Datum RASTER_covers(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_coveredby);
 Datum RASTER_coveredby(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -882,8 +882,8 @@ Datum RASTER_coveredby(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_coveredby(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                &result
        );
        for (k = 0; k < set_count; k++) {
@@ -905,7 +905,7 @@ Datum RASTER_coveredby(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_dwithin);
 Datum RASTER_dwithin(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -1022,8 +1022,8 @@ Datum RASTER_dwithin(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_within_distance(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                distance,
                &result
        );
@@ -1046,7 +1046,7 @@ Datum RASTER_dwithin(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_dfullywithin);
 Datum RASTER_dfullywithin(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -1163,8 +1163,8 @@ Datum RASTER_dfullywithin(PG_FUNCTION_ARGS)
        }
 
        rtn = rt_raster_fully_within_distance(
-               rast[0], (hasbandindex[0] ? bandindex[0] - 1 : -1),
-               rast[1], (hasbandindex[1] ? bandindex[1] - 1 : -1),
+               rast[0], (hasbandindex[0] ? (int)bandindex[0] - 1 : -1),
+               rast[1], (hasbandindex[1] ? (int)bandindex[1] - 1 : -1),
                distance,
                &result
        );
@@ -1187,7 +1187,7 @@ Datum RASTER_dfullywithin(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_sameAlignment);
 Datum RASTER_sameAlignment(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
@@ -1254,7 +1254,7 @@ Datum RASTER_sameAlignment(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(RASTER_notSameAlignmentReason);
 Datum RASTER_notSameAlignmentReason(PG_FUNCTION_ARGS)
 {
-       const int set_count = 2;
+       const uint32_t set_count = 2;
        rt_pgraster *pgrast[2];
        int pgrastpos[2] = {-1, -1};
        rt_raster rast[2] = {NULL};
index 67a4ac651571ed0aad453a407892f9b6bb672f5f..c74ab4b6a8de6468f78aa0550cefb26e48c79074 100644 (file)
@@ -1113,7 +1113,7 @@ Datum RASTER_histogram(PG_FUNCTION_ARGS)
                }
 
                /* get histogram */
-               hist = rt_band_get_histogram(stats, bin_count, bin_width, bin_width_count, right, min, max, &count);
+               hist = rt_band_get_histogram(stats, (uint32_t)bin_count, bin_width, bin_width_count, right, min, max, &count);
                if (bin_width_count) pfree(bin_width);
                pfree(stats);
                if (NULL == hist || !count) {
@@ -1196,7 +1196,7 @@ Datum RASTER_histogramCoverage(PG_FUNCTION_ARGS)
        FuncCallContext *funcctx;
        TupleDesc tupdesc;
 
-       int i;
+       uint32_t i;
        rt_histogram covhist = NULL;
        rt_histogram covhist2;
        int call_cntr;
@@ -1340,7 +1340,7 @@ Datum RASTER_histogramCoverage(PG_FUNCTION_ARGS)
                                &nulls, &n);
 
                        bin_width = palloc(sizeof(double) * n);
-                       for (i = 0, j = 0; i < n; i++) {
+                       for (i = 0, j = 0; i < (uint32_t) n; i++) {
                                if (nulls[i]) continue;
 
                                switch (etype) {
@@ -1977,7 +1977,7 @@ Datum RASTER_quantileCoverage(PG_FUNCTION_ARGS)
        FuncCallContext *funcctx;
        TupleDesc tupdesc;
 
-       int i;
+       uint32_t i;
        rt_quantile covquant = NULL;
        rt_quantile covquant2;
        int call_cntr;
@@ -2111,7 +2111,7 @@ Datum RASTER_quantileCoverage(PG_FUNCTION_ARGS)
                                &nulls, &n);
 
                        quantiles = palloc(sizeof(double) * n);
-                       for (i = 0, j = 0; i < n; i++) {
+                       for (i = 0, j = 0; i < (uint32_t) n; i++) {
                                if (nulls[i]) continue;
 
                                switch (etype) {
@@ -2618,7 +2618,7 @@ Datum RASTER_valueCountCoverage(PG_FUNCTION_ARGS) {
        FuncCallContext *funcctx;
        TupleDesc tupdesc;
 
-       int i;
+       uint32_t i;
        uint64_t covcount = 0;
        uint64_t covtotal = 0;
        rt_valuecount covvcnts = NULL;
@@ -2659,7 +2659,7 @@ Datum RASTER_valueCountCoverage(PG_FUNCTION_ARGS) {
                rt_valuecount vcnts = NULL;
                int exists = 0;
 
-               int j;
+               uint32_t j;
                int n;
 
                ArrayType *array;
@@ -2735,7 +2735,7 @@ Datum RASTER_valueCountCoverage(PG_FUNCTION_ARGS) {
                                &nulls, &n);
 
                        search_values = palloc(sizeof(double) * n);
-                       for (i = 0, j = 0; i < n; i++) {
+                       for (i = 0, j = 0; i < (uint32_t) n; i++) {
                                if (nulls[i]) continue;
 
                                switch (etype) {
index 543764c05df6fdd98314d6d5d1ae52553b0d61fc..8361b4a8f37c4156237fb2b226c7f4eac8e989b6 100644 (file)
@@ -280,7 +280,7 @@ rtpg_assignHookGDALEnabledDrivers(const char *enabled_drivers, void *extra) {
        int disable_all = 0;
 
        char **enabled_drivers_array = NULL;
-       int enabled_drivers_count = 0;
+       uint32_t enabled_drivers_count = 0;
        bool *enabled_drivers_found = NULL;
        char *gdal_skip = NULL;
 
index 4f218fa6be49515cb13330d9d663a8a1c08260c7..8340c50f13478a7936ba6bf58eacf5955d6642ed 100644 (file)
@@ -28,8 +28,8 @@
 static void test_band_get_nearest_pixel() {
        rt_raster rast;
        rt_band band;
-       uint32_t x, y;
-       int rtn;
+       int x, y;
+       uint32_t rtn;
        const int maxX = 10;
        const int maxY = 10;
        rt_pixel npixels = NULL;
@@ -371,7 +371,7 @@ static void test_pixel_set_to_array(){
        rt_raster rast;
        rt_band band;
        rt_mask mask = NULL;
-       uint32_t x, y;
+       int x, y;
        int rtn;
        const int maxX = 10;
        const int maxY = 10;
index 397939dccdf648b2c72211c9b9c3c2c7494ca6e5..75265bc82375c73abe0f72845998978c00449d48 100644 (file)
@@ -29,7 +29,7 @@ static void test_gdal_configured() {
 }
 
 static void test_gdal_drivers() {
-       int i;
+       uint32_t i;
        uint32_t size;
        rt_gdaldriver drv = NULL;
 
index 6d9e0e2aa25cc67eeb6496784fa768adcc95d546..7af944ac88494a4ddfa3742720ea360d70f36d5e 100644 (file)
@@ -139,7 +139,7 @@ DELETE FROM spatial_ref_sys WHERE srid = 4326;
 -- create table and load\r
 CREATE TABLE knn_recheck_geom_nd(gid serial primary key, geom geometry);\r
 INSERT INTO knn_recheck_geom_nd(gid,geom)\r
-SELECT ROW_NUMBER() OVER(ORDER BY x,y) AS gid, ST_MakePoint(x*0.777,y*0.887,z*1.05) As geom\r
+SELECT ROW_NUMBER() OVER(ORDER BY x,y,z) AS gid, ST_MakePoint(x*0.777,y*0.887,z*1.05) As geom\r
 FROM generate_series(-100,1000, 7) AS x , \r
     generate_series(-300,1000,9) As y,\r
  generate_series(1005,10000,5555) As z ;\r
index c280daaaa376b51592adece12506a75eed6e1e83..dd451671eb8a94b18c6bd4a6ced60b54f18af4e3 100644 (file)
 #2g|30512|25313.2118|25313.2118
 #3g|1000|t
 #3g|500000|t
-#1nd-3|290|260.6797|260.6797
+#1nd-3|289|260.6797|260.6797
 #1nd-3|287|264.3000|264.3000
 #1nd-3|579|265.4356|265.4356
 #1nd-3|285|268.1092|268.1092
-#1nd-3|578|268.9919|268.9919
+#1nd-3|577|268.9919|268.9919
 #2nd-3|9749|3.7272|3.7272
 #2nd-3|600001|3.9451|3.9451
 #2nd-3|600002|3.9950|3.9950
-#2nd-3|9748|4.1707|4.1707
-#2nd-3|10040|6.1761|6.1761
-#3nd-3|1|292|5.4390|5.4390
+#2nd-3|9747|4.1707|4.1707
+#2nd-3|10039|6.1761|6.1761
+#3nd-3|1|291|5.4390|5.4390
 #3nd-3|1|3|7.9830|7.9830
-#3nd-3|1|294|9.6598|9.6598
-#3nd-3|1|582|10.8780|10.8780
+#3nd-3|1|293|9.6598|9.6598
+#3nd-3|1|581|10.8780|10.8780
 #3nd-3|1|583|13.4929|13.4929
 #3nd-3|600001|600002|0.0000|0.0000
-#3nd-3|600001|9752|54.2730|54.2730
+#3nd-3|600001|9751|54.2730|54.2730
 #3nd-3|600001|9461|54.3900|54.3900
 #3nd-3|600001|9749|54.5453|54.5453
 #3nd-3|600001|10041|54.6233|54.6233
-#1nd-3|290|260.6797|260.6797
+#1nd-3|289|260.6797|260.6797
 #1nd-3|287|264.3000|264.3000
 #1nd-3|579|265.4356|265.4356
 #1nd-3|285|268.1092|268.1092
-#1nd-3|578|268.9919|268.9919
+#1nd-3|577|268.9919|268.9919
 #2nd-3|9749|3.7272|3.7272
 #2nd-3|600001|3.9451|3.9451
 #2nd-3|600002|3.9950|3.9950
-#2nd-3|9748|4.1707|4.1707
-#2nd-3|10040|6.1761|6.1761
-#3nd-3|1|292|5.4390|5.4390
+#2nd-3|9747|4.1707|4.1707
+#2nd-3|10039|6.1761|6.1761
+#3nd-3|1|291|5.4390|5.4390
 #3nd-3|1|3|7.9830|7.9830
-#3nd-3|1|294|9.6598|9.6598
-#3nd-3|1|582|10.8780|10.8780
+#3nd-3|1|293|9.6598|9.6598
+#3nd-3|1|581|10.8780|10.8780
 #3nd-3|1|583|13.4929|13.4929
 #3nd-3|600001|600002|0.0000|0.0000
-#3nd-3|600001|9752|54.2730|54.2730
+#3nd-3|600001|9751|54.2730|54.2730
 #3nd-3|600001|9461|54.3900|54.3900
 #3nd-3|600001|9749|54.5453|54.5453
 #3nd-3|600001|10041|54.6233|54.6233
index 13c5c269ed62f846f0f5809c0f90304128a3f272..2e86ece4933b3d58d091a9fbd0a6adabcbb3e36a 100644 (file)
@@ -94,7 +94,7 @@ SELECT r.topogeo_id, r.element_id
   FROM t.relation r, t.f f WHERE
   r.layer_id = layer_id(f.g) AND r.topogeo_id = id(f.g)
   AND r.topogeo_id in (2,3)
-  ORDER BY r.layer_id, r.topogeo_id;
+  ORDER BY r.layer_id, r.topogeo_id, r.element_id;
 
 -- This is fine, but will have to tweak definition of
 -- 'F+E3-E4' and 'F-E3+E4'
@@ -107,7 +107,7 @@ SELECT r.topogeo_id, r.element_id
   FROM t.relation r, t.f f WHERE
   r.layer_id = layer_id(f.g) AND r.topogeo_id = id(f.g)
   AND r.topogeo_id in (2,3)
-  ORDER BY r.layer_id, r.topogeo_id;
+  ORDER BY r.layer_id, r.topogeo_id, r.element_id;
 
 SELECT topology.DropTopology('t');
 
index f9fb8c39d5a1f18d9011c11c1fdb956406910c13..511331a371f0ce69fc0959c2766869288290512f 100644 (file)
@@ -113,8 +113,8 @@ E3
 E4
 2|-4
 2|3
-3|4
 3|-3
+3|4
 MH(3,4)|5
 ERROR:  SQL/MM Spatial exception - non-connected edges
 2|3
index c2fa9db979982da056952066a53d459e27eb17d4..8f545a08c29acd73939c48a8bb72ed11fb1b98d4 100644 (file)
@@ -94,7 +94,7 @@ SELECT r.topogeo_id, r.element_id
   FROM t.relation r, t.f f WHERE
   r.layer_id = layer_id(f.g) AND r.topogeo_id = id(f.g)
   AND r.topogeo_id in (2,3)
-  ORDER BY r.layer_id, r.topogeo_id;
+  ORDER BY r.layer_id, r.topogeo_id, r.element_id;
 
 -- This is fine, but will have to tweak definition of
 -- 'F+E3-E4' and 'F-E3+E4'
@@ -107,7 +107,7 @@ SELECT r.topogeo_id, r.element_id
   FROM t.relation r, t.f f WHERE
   r.layer_id = layer_id(f.g) AND r.topogeo_id = id(f.g)
   AND r.topogeo_id in (2,3)
-  ORDER BY r.layer_id, r.topogeo_id;
+  ORDER BY r.layer_id, r.topogeo_id, r.element_id;
 
 SELECT topology.DropTopology('t');
 
index 2e127b695f217b551d81deba0b519562ab07118b..7d99c5c51a211dba534eb90b3ce092ee29fca25f 100644 (file)
@@ -113,8 +113,8 @@ E3
 E4
 2|-4
 2|3
-3|4
 3|-3
+3|4
 MH(3,4)|5
 ERROR:  SQL/MM Spatial exception - non-connected edges
 2|5