@@ -216,7 +216,7 @@ typedef struct RecordIOData
216216 Oid record_type ;
217217 int32 record_typmod ;
218218 int ncolumns ;
219- ColumnIOData columns [1 ]; /* VARIABLE LENGTH ARRAY */
219+ ColumnIOData columns [FLEXIBLE_ARRAY_MEMBER ];
220220} RecordIOData ;
221221
222222/* state for populate_recordset */
@@ -2148,8 +2148,8 @@ populate_record_worker(FunctionCallInfo fcinfo, const char *funcname,
21482148 {
21492149 fcinfo -> flinfo -> fn_extra =
21502150 MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
2151- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
2152- + ncolumns * sizeof (ColumnIOData ));
2151+ offsetof (RecordIOData , columns ) +
2152+ ncolumns * sizeof (ColumnIOData ));
21532153 my_extra = (RecordIOData * ) fcinfo -> flinfo -> fn_extra ;
21542154 my_extra -> record_type = InvalidOid ;
21552155 my_extra -> record_typmod = 0 ;
@@ -2161,8 +2161,8 @@ populate_record_worker(FunctionCallInfo fcinfo, const char *funcname,
21612161 my_extra -> record_typmod != tupTypmod ))
21622162 {
21632163 MemSet (my_extra , 0 ,
2164- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
2165- + ncolumns * sizeof (ColumnIOData ));
2164+ offsetof (RecordIOData , columns ) +
2165+ ncolumns * sizeof (ColumnIOData ));
21662166 my_extra -> record_type = tupType ;
21672167 my_extra -> record_typmod = tupTypmod ;
21682168 my_extra -> ncolumns = ncolumns ;
@@ -2653,8 +2653,8 @@ populate_recordset_worker(FunctionCallInfo fcinfo, const char *funcname,
26532653 {
26542654 fcinfo -> flinfo -> fn_extra =
26552655 MemoryContextAlloc (fcinfo -> flinfo -> fn_mcxt ,
2656- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
2657- + ncolumns * sizeof (ColumnIOData ));
2656+ offsetof (RecordIOData , columns ) +
2657+ ncolumns * sizeof (ColumnIOData ));
26582658 my_extra = (RecordIOData * ) fcinfo -> flinfo -> fn_extra ;
26592659 my_extra -> record_type = InvalidOid ;
26602660 my_extra -> record_typmod = 0 ;
@@ -2664,8 +2664,8 @@ populate_recordset_worker(FunctionCallInfo fcinfo, const char *funcname,
26642664 my_extra -> record_typmod != tupTypmod )
26652665 {
26662666 MemSet (my_extra , 0 ,
2667- sizeof (RecordIOData ) - sizeof ( ColumnIOData )
2668- + ncolumns * sizeof (ColumnIOData ));
2667+ offsetof (RecordIOData , columns ) +
2668+ ncolumns * sizeof (ColumnIOData ));
26692669 my_extra -> record_type = tupType ;
26702670 my_extra -> record_typmod = tupTypmod ;
26712671 my_extra -> ncolumns = ncolumns ;
0 commit comments