From 4e65430daf5a75bd0474ef0c509aa459c399068c Mon Sep 17 00:00:00 2001 From: Arman Date: Wed, 30 Mar 2022 13:54:07 +0200 Subject: [PATCH 1/2] to avoid **-Werror=vla** error using dynamic arrays to avoid **-Werror=vla** error --- path.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/path.c b/path.c index 45c8cb6..833bfe9 100644 --- a/path.c +++ b/path.c @@ -513,13 +513,14 @@ spherepath_in(PG_FUNCTION_ARGS) nelem = get_path_count(); if (nelem > 1) { - SPoint arr[nelem]; - + SPoint *arr=malloc(sizeof(SPoint)*nelem); + for (i = 0; i < nelem; i++) { get_path_elem(i, &arr[i].lng, &arr[i].lat); } path = spherepath_from_array(&arr[0], nelem); + free(arr); } else { From 85ffd5c6930ba48ef3bf69be675cb59fc400ea42 Mon Sep 17 00:00:00 2001 From: Arman Date: Wed, 30 Mar 2022 13:58:26 +0200 Subject: [PATCH 2/2] dynamic array to avoid -Werror=vla error moving to dynamic allocated array to avoid -Werror=vla error --- polygon.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/polygon.c b/polygon.c index ecc5f87..fd246a3 100644 --- a/polygon.c +++ b/polygon.c @@ -824,13 +824,14 @@ spherepoly_in(PG_FUNCTION_ARGS) nelem = get_path_count(); if (nelem > 2) { - SPoint arr[nelem]; + SPoint *arr=malloc(sizeof(SPoint)*nelem); for (i = 0; i < nelem; i++) { get_path_elem(i, &arr[i].lng, &arr[i].lat); } poly = spherepoly_from_array(&arr[0], nelem); + free(arr); } else { @@ -892,7 +893,7 @@ spherepoly_area(PG_FUNCTION_ARGS) { SPOLY *poly = PG_GETARG_SPOLY(0); int32 i; - SPoint s[poly->npts + 2]; + SPoint *s=malloc(sizeof(SPoint)*poly->npts + 2); SPoint stmp[2]; SEuler se; float8 sum = 0.0; @@ -935,7 +936,7 @@ spherepoly_area(PG_FUNCTION_ARGS) { sum = 0.0; } - + free(s); PG_RETURN_FLOAT8(sum); }