]> granicus.if.org Git - postgis/commitdiff
Fix GBT#69: ST_Translate crashes when fed circular string. lwgeom_affine_recursive...
authorMark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Fri, 7 Nov 2008 13:45:42 +0000 (13:45 +0000)
committerMark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Fri, 7 Nov 2008 13:45:42 +0000 (13:45 +0000)
git-svn-id: http://svn.osgeo.org/postgis/branches/1.3@3273 b70326c6-7e19-0410-871a-916f4a2858ee

lwgeom/lwgeom_functions_basic.c

index 43f18ef3a937f8c8134ff23cbbedd7fc235d68b1..39c9834a3d2ae8dd6a467c5226a25951b1b8e78f 100644 (file)
@@ -3325,6 +3325,7 @@ lwgeom_affine_recursive(uchar *serialized,
                LWLINE *line=NULL;
                LWPOINT *point=NULL;
                LWPOLY *poly=NULL;
+               LWCURVE *curve=NULL;
                uchar *subgeom=NULL;
 
                point = lwgeom_getpoint_inspected(inspected, i);
@@ -3366,6 +3367,18 @@ lwgeom_affine_recursive(uchar *serialized,
                        continue;
                }
 
+               curve = lwgeom_getcurve_inspected(inspected, i);
+               if (curve != NULL)
+               {
+                       lwgeom_affine_ptarray(curve->points,
+                               afac, bfac, cfac,
+                               dfac, efac, ffac,
+                               gfac, hfac, ifac,
+                               xoff, yoff, zoff);
+                       lwgeom_release((LWGEOM *)curve);
+                       continue;
+               }
+
                subgeom = lwgeom_getsubgeometry_inspected(inspected, i);
                if ( subgeom == NULL )
                {