Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc110eff

Browse files
committed
Use FLEXIBLE_ARRAY_MEMBER in struct RecordIOData.
I (tgl) fixed this last night in rowtypes.c, but I missed that thecode had been copied into a couple of other places.Michael Paquier
1 parente38b1eb commitc110eff

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

‎contrib/hstore/hstore_io.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,7 @@ typedef struct RecordIOData
747747
Oidrecord_type;
748748
int32record_typmod;
749749
intncolumns;
750-
ColumnIODatacolumns[1];/* VARIABLE LENGTH ARRAY */
750+
ColumnIODatacolumns[FLEXIBLE_ARRAY_MEMBER];
751751
}RecordIOData;
752752

753753
PG_FUNCTION_INFO_V1(hstore_from_record);
@@ -805,8 +805,8 @@ hstore_from_record(PG_FUNCTION_ARGS)
805805
{
806806
fcinfo->flinfo->fn_extra=
807807
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
808-
sizeof(RecordIOData)-sizeof(ColumnIOData)
809-
+ncolumns*sizeof(ColumnIOData));
808+
offsetof(RecordIOData,columns)+
809+
ncolumns*sizeof(ColumnIOData));
810810
my_extra= (RecordIOData*)fcinfo->flinfo->fn_extra;
811811
my_extra->record_type=InvalidOid;
812812
my_extra->record_typmod=0;
@@ -816,8 +816,8 @@ hstore_from_record(PG_FUNCTION_ARGS)
816816
my_extra->record_typmod!=tupTypmod)
817817
{
818818
MemSet(my_extra,0,
819-
sizeof(RecordIOData)-sizeof(ColumnIOData)
820-
+ncolumns*sizeof(ColumnIOData));
819+
offsetof(RecordIOData,columns)+
820+
ncolumns*sizeof(ColumnIOData));
821821
my_extra->record_type=tupType;
822822
my_extra->record_typmod=tupTypmod;
823823
my_extra->ncolumns=ncolumns;
@@ -990,8 +990,8 @@ hstore_populate_record(PG_FUNCTION_ARGS)
990990
{
991991
fcinfo->flinfo->fn_extra=
992992
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
993-
sizeof(RecordIOData)-sizeof(ColumnIOData)
994-
+ncolumns*sizeof(ColumnIOData));
993+
offsetof(RecordIOData,columns)+
994+
ncolumns*sizeof(ColumnIOData));
995995
my_extra= (RecordIOData*)fcinfo->flinfo->fn_extra;
996996
my_extra->record_type=InvalidOid;
997997
my_extra->record_typmod=0;
@@ -1001,8 +1001,8 @@ hstore_populate_record(PG_FUNCTION_ARGS)
10011001
my_extra->record_typmod!=tupTypmod)
10021002
{
10031003
MemSet(my_extra,0,
1004-
sizeof(RecordIOData)-sizeof(ColumnIOData)
1005-
+ncolumns*sizeof(ColumnIOData));
1004+
offsetof(RecordIOData,columns)+
1005+
ncolumns*sizeof(ColumnIOData));
10061006
my_extra->record_type=tupType;
10071007
my_extra->record_typmod=tupTypmod;
10081008
my_extra->ncolumns=ncolumns;

‎src/backend/utils/adt/jsonfuncs.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ typedef struct RecordIOData
216216
Oidrecord_type;
217217
int32record_typmod;
218218
intncolumns;
219-
ColumnIODatacolumns[1];/* VARIABLE LENGTH ARRAY */
219+
ColumnIODatacolumns[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

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp