Commit f790a1c1 authored by Sandro Santilli's avatar Sandro Santilli
Browse files

Avoid incompatible automatic variable length array

Patch by vmo
Closes #4059

git-svn-id: http://svn.osgeo.org/postgis/trunk@16508 b70326c6-7e19-0410-871a-916f4a2858ee
parent 4935dce5
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ Datum geography_centroid(PG_FUNCTION_ARGS)

        /* average between all points */
        uint32_t size = mpoints->ngeoms;
        POINT3DM points[size];
        POINT3DM* points = palloc(size*sizeof(POINT3DM));

		uint32_t i;
		for (i = 0; i < size; i++) {
@@ -115,6 +115,7 @@ Datum geography_centroid(PG_FUNCTION_ARGS)
        }

		lwpoint_out = geography_centroid_from_wpoints(srid, points, size);
        pfree(points);
        break;
    }

@@ -258,7 +259,7 @@ LWPOINT* geography_centroid_from_mline(const LWMLINE* mline, SPHEROID* s)
        size += (mline->geoms[i]->points->npoints - 1) * 2;
    }

    POINT3DM points[size];
    POINT3DM* points = palloc(size*sizeof(POINT3DM));
    uint32_t j = 0;

    for (i = 0; i < mline->ngeoms; i++) {
@@ -295,7 +296,9 @@ LWPOINT* geography_centroid_from_mline(const LWMLINE* mline, SPHEROID* s)
        }
    }

    return geography_centroid_from_wpoints(mline->srid, points, size);
    LWPOINT* result = geography_centroid_from_wpoints(mline->srid, points, size);
    pfree(points);
    return result;
}


@@ -313,7 +316,7 @@ LWPOINT* geography_centroid_from_mpoly(const LWMPOLY* mpoly, bool use_spheroid,
		}
    }

    POINT3DM points[size];
    POINT3DM* points = palloc(size*sizeof(POINT3DM));
    uint32_t j = 0;

    /* use first point as reference to create triangles */
@@ -379,6 +382,7 @@ LWPOINT* geography_centroid_from_mpoly(const LWMPOLY* mpoly, bool use_spheroid,
            }
        }
    }

    return geography_centroid_from_wpoints(mpoly->srid, points, size);
    LWPOINT* result = geography_centroid_from_wpoints(mpoly->srid, points, size);
    pfree(points);
    return result;
}