From: Nicklas Avén Date: Sun, 16 Mar 2014 18:36:42 +0000 (+0000) Subject: Fix for #2671 X-Git-Tag: 2.2.0rc1~1190 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d72ac352f7ab6d3f2530d568190f2e5f5da396b4;p=postgis Fix for #2671 git-svn-id: http://svn.osgeo.org/postgis/trunk@12329 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/liblwgeom/lwout_twkb.c b/liblwgeom/lwout_twkb.c index 666707bbf..484576bb6 100644 --- a/liblwgeom/lwout_twkb.c +++ b/liblwgeom/lwout_twkb.c @@ -366,7 +366,7 @@ static size_t lwgeom_agg_to_twkbpoint_size(lwgeom_id *geom_array,uint8_t varian /*One byte for type declaration*/ size_t size = WKB_BYTE_SIZE; /*One integer holding number of geometries*/ - size += u_getvarint_size((uint64_t) 2); + size += u_getvarint_size((uint64_t) n); int i; for (i=0;igeoms = palloc(10*sizeof(geom_id)); + state->geoms = (geom_id*) palloc(10*sizeof(geom_id)); state->max_rows = 10; state->n_rows = 0; @@ -367,7 +367,7 @@ pgis_twkb_accum_finalfn(PG_FUNCTION_ARGS) { case POINTTYPE: if (lwgeom_arrays.n_points==0) - lwgeom_arrays.points = palloc(((state->n_rows)-i)*sizeof(geom_id)); + lwgeom_arrays.points = (lwgeom_id*)palloc(((state->n_rows)-i)*sizeof(lwgeom_id)); (lwgeom_arrays.points+lwgeom_arrays.n_points)->geom=lwgeom; (lwgeom_arrays.points+lwgeom_arrays.n_points)->id=(geom_array+i)->id; @@ -376,7 +376,7 @@ pgis_twkb_accum_finalfn(PG_FUNCTION_ARGS) /* LineString and CircularString both have 'points' elements */ case LINETYPE: if (lwgeom_arrays.n_linestrings==0) - lwgeom_arrays.linestrings = palloc(((state->n_rows)-i)*sizeof(geom_id)); + lwgeom_arrays.linestrings = (lwgeom_id*)palloc(((state->n_rows)-i)*sizeof(lwgeom_id)); (lwgeom_arrays.linestrings+lwgeom_arrays.n_linestrings)->geom=lwgeom; (lwgeom_arrays.linestrings+lwgeom_arrays.n_linestrings)->id=(geom_array+i)->id; @@ -386,7 +386,7 @@ pgis_twkb_accum_finalfn(PG_FUNCTION_ARGS) /* Polygon has 'nrings' and 'rings' elements */ case POLYGONTYPE: if (lwgeom_arrays.n_polygons==0) - lwgeom_arrays.polygons = palloc(((state->n_rows)-i)*sizeof(geom_id)); + lwgeom_arrays.polygons = (lwgeom_id*)palloc(((state->n_rows)-i)*sizeof(lwgeom_id)); (lwgeom_arrays.polygons+lwgeom_arrays.n_polygons)->geom=lwgeom; (lwgeom_arrays.polygons+lwgeom_arrays.n_polygons)->id=(geom_array+i)->id; @@ -403,7 +403,7 @@ pgis_twkb_accum_finalfn(PG_FUNCTION_ARGS) case MULTIPOLYGONTYPE: case COLLECTIONTYPE: if (lwgeom_arrays.n_collections==0) - lwgeom_arrays.collections = palloc(((state->n_rows)-i)*sizeof(geom_id)); + lwgeom_arrays.collections = (lwgeom_id*)palloc(((state->n_rows)-i)*sizeof(lwgeom_id)); (lwgeom_arrays.collections+lwgeom_arrays.n_collections)->geom=lwgeom; (lwgeom_arrays.collections+lwgeom_arrays.n_collections)->id=(geom_array+i)->id;