From 2094c8d24920276751c21597c6f272813bb42e28 Mon Sep 17 00:00:00 2001 From: Paul Ramsey Date: Wed, 1 Feb 2012 05:30:28 +0000 Subject: [PATCH] Try again to fix #1292 git-svn-id: http://svn.osgeo.org/postgis/trunk@8992 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/lwgeodetic.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/liblwgeom/lwgeodetic.c b/liblwgeom/lwgeodetic.c index 93e455778..9a36d2fcc 100644 --- a/liblwgeom/lwgeodetic.c +++ b/liblwgeom/lwgeodetic.c @@ -2663,6 +2663,7 @@ double lwgeom_length_spheroid(const LWGEOM *geom, const SPHEROID *s) static int ptarray_nudge_geodetic(POINTARRAY *pa) { + int i; POINT4D p; int altered = LW_FALSE; @@ -2680,17 +2681,17 @@ ptarray_nudge_geodetic(POINTARRAY *pa) p.x = -180.0; altered = LW_TRUE; } - else if ( p.x > 180.0 && (p.x - 180.0 < tolerance) ) + if ( p.x > 180.0 && (p.x - 180.0 < tolerance) ) { p.x = 180.0; altered = LW_TRUE; } - else if ( p.y < -90.0 && (-90.0 - p.y < tolerance) ) + if ( p.y < -90.0 && (-90.0 - p.y < tolerance) ) { p.y = -90.0; altered = LW_TRUE; } - else if ( p.y > 90.0 && (p.y - 90.0 < tolerance) ) + if ( p.y > 90.0 && (p.y - 90.0 < tolerance) ) { p.y = 90.0; altered = LW_TRUE; @@ -2737,7 +2738,8 @@ lwgeom_nudge_geodetic(LWGEOM *geom) LWPOLY *poly = (LWPOLY*)geom; for ( i = 0; i < poly->nrings; i++ ) { - rv = (rv == LW_TRUE ? rv : ptarray_nudge_geodetic(poly->rings[i])); + int n = ptarray_nudge_geodetic(poly->rings[i]); + rv = (rv == LW_TRUE ? rv : n); } return rv; } @@ -2751,7 +2753,8 @@ lwgeom_nudge_geodetic(LWGEOM *geom) for ( i = 0; i < col->ngeoms; i++ ) { - rv = (rv == LW_TRUE ? rv : lwgeom_nudge_geodetic(col->geoms[i])); + int n = lwgeom_nudge_geodetic(col->geoms[i]); + rv = (rv == LW_TRUE ? rv : n); } return rv; } -- 2.40.0