]> granicus.if.org Git - postgis/commitdiff
Removed POINT4D=>POINT2D cast raising GCC warning
authorSandro Santilli <strk@keybit.net>
Mon, 9 Jan 2006 11:05:10 +0000 (11:05 +0000)
committerSandro Santilli <strk@keybit.net>
Mon, 9 Jan 2006 11:05:10 +0000 (11:05 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@2260 b70326c6-7e19-0410-871a-916f4a2858ee

lwgeom/ptarray.c

index e37f84d6b071baa3e00e250e17cd6e559cfd7900..c27c553fa1b66c47db2d5d589daff4fc4fe63577 100644 (file)
@@ -218,9 +218,19 @@ ptarray_segmentize2d(POINTARRAY *ipa, double dist)
 
        while (ipoff<ipa->npoints)
        {
+               POINT2D p2d1, p2d2;
+
                getPoint4d_p(ipa, ipoff, &p2);
 
-               segdist = distance2d_pt_pt((POINT2D *)&p1, (POINT2D *)&p2);
+               /*
+                * We used to have a POINT4D=>POINT2D cast here
+                * but GCC 3.3 kept warning about:
+                *   "dereferencing type-punned pointer
+                *   will break strict-aliasing rules"
+                */
+               p2d1.x=p1.x; p2d1.y=p1.y;
+               p2d2.x=p2.x; p2d2.y=p2.y;
+               segdist = distance2d_pt_pt(&p2d1, &p2d2);
 
                if (segdist > dist) // add an intermediate point
                {