]> granicus.if.org Git - postgis/commitdiff
Fix computed string length in Polygon with several rings for ST_AsGML with GML3....
authorOlivier Courtin <olivier.courtin@camptocamp.com>
Sat, 20 Feb 2010 19:09:30 +0000 (19:09 +0000)
committerOlivier Courtin <olivier.courtin@camptocamp.com>
Sat, 20 Feb 2010 19:09:30 +0000 (19:09 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@5269 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/lwgeom_gml.c

index 151357813b354a771b1ece4a48430148f2a067a6..47a7728b25f00896e037a39de6c989d1b0ff23a0 100644 (file)
@@ -774,16 +774,9 @@ asgml3_poly_size(LWPOLY *poly, char *srs, int precision)
        size_t size;
        int i;
 
-       size = sizeof("<gml:Polygon>");
-
-       size += sizeof("<gml:exterior><gml:LinearRing><gml:posList srsDimension='x'>");
-       size += sizeof("</gml:posList></gml:LinearRing></gml:exterior>");
-
-       size += sizeof("<gml:interior><gml:LinearRing><gml:posList>") * (poly->nrings - 1);
-       size += sizeof("</gml:posList></gml:LinearRing></gml:interior>") * (poly->nrings - 1);
-
-       size += sizeof("</gml:Polygon>");
-
+       size = sizeof("<gml:Polygon><gml:exterior><gml:LinearRing>///") * 2;
+       size += sizeof("<gml:interior><gml:LinearRing>//") * 2 * (poly->nrings - 1);
+       size += sizeof("<gml:posList srsDimension='x'></gml:posList>") * poly->nrings; 
        if ( srs ) size += strlen(srs) + sizeof(" srsName=..");
 
        for (i=0; i<poly->nrings; i++)