diff options
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/hstore/hstore_io.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/contrib/hstore/hstore_io.c b/contrib/hstore/hstore_io.c index 079f6627484..7d8986708fd 100644 --- a/contrib/hstore/hstore_io.c +++ b/contrib/hstore/hstore_io.c @@ -747,7 +747,7 @@ typedef struct RecordIOData Oid record_type; int32 record_typmod; int ncolumns; - ColumnIOData columns[1]; /* VARIABLE LENGTH ARRAY */ + ColumnIOData columns[FLEXIBLE_ARRAY_MEMBER]; } RecordIOData; PG_FUNCTION_INFO_V1(hstore_from_record); @@ -805,8 +805,8 @@ hstore_from_record(PG_FUNCTION_ARGS) { fcinfo->flinfo->fn_extra = MemoryContextAlloc(fcinfo->flinfo->fn_mcxt, - sizeof(RecordIOData) - sizeof(ColumnIOData) - + ncolumns * sizeof(ColumnIOData)); + offsetof(RecordIOData, columns) + + ncolumns * sizeof(ColumnIOData)); my_extra = (RecordIOData *) fcinfo->flinfo->fn_extra; my_extra->record_type = InvalidOid; my_extra->record_typmod = 0; @@ -816,8 +816,8 @@ hstore_from_record(PG_FUNCTION_ARGS) my_extra->record_typmod != tupTypmod) { MemSet(my_extra, 0, - sizeof(RecordIOData) - sizeof(ColumnIOData) - + ncolumns * sizeof(ColumnIOData)); + offsetof(RecordIOData, columns) + + ncolumns * sizeof(ColumnIOData)); my_extra->record_type = tupType; my_extra->record_typmod = tupTypmod; my_extra->ncolumns = ncolumns; @@ -990,8 +990,8 @@ hstore_populate_record(PG_FUNCTION_ARGS) { fcinfo->flinfo->fn_extra = MemoryContextAlloc(fcinfo->flinfo->fn_mcxt, - sizeof(RecordIOData) - sizeof(ColumnIOData) - + ncolumns * sizeof(ColumnIOData)); + offsetof(RecordIOData, columns) + + ncolumns * sizeof(ColumnIOData)); my_extra = (RecordIOData *) fcinfo->flinfo->fn_extra; my_extra->record_type = InvalidOid; my_extra->record_typmod = 0; @@ -1001,8 +1001,8 @@ hstore_populate_record(PG_FUNCTION_ARGS) my_extra->record_typmod != tupTypmod) { MemSet(my_extra, 0, - sizeof(RecordIOData) - sizeof(ColumnIOData) - + ncolumns * sizeof(ColumnIOData)); + offsetof(RecordIOData, columns) + + ncolumns * sizeof(ColumnIOData)); my_extra->record_type = tupType; my_extra->record_typmod = tupTypmod; my_extra->ncolumns = ncolumns; |
