Skip to content

Commit 5740be6

Browse files
committed
Some more FLEXIBLE_ARRAY_MEMBER hacking.
1 parent 9aa53bb commit 5740be6

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

src/backend/utils/adt/rowtypes.c

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ typedef struct RecordIOData
4343
Oid record_type;
4444
int32 record_typmod;
4545
int ncolumns;
46-
ColumnIOData columns[1]; /* VARIABLE LENGTH ARRAY */
46+
ColumnIOData columns[FLEXIBLE_ARRAY_MEMBER];
4747
} RecordIOData;
4848

4949
/*
@@ -61,7 +61,7 @@ typedef struct RecordCompareData
6161
int32 record1_typmod;
6262
Oid record2_type;
6363
int32 record2_typmod;
64-
ColumnCompareData columns[1]; /* VARIABLE LENGTH ARRAY */
64+
ColumnCompareData columns[FLEXIBLE_ARRAY_MEMBER];
6565
} RecordCompareData;
6666

6767

@@ -120,8 +120,8 @@ record_in(PG_FUNCTION_ARGS)
120120
{
121121
fcinfo->flinfo->fn_extra =
122122
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
123-
sizeof(RecordIOData) - sizeof(ColumnIOData)
124-
+ ncolumns * sizeof(ColumnIOData));
123+
offsetof(RecordIOData, columns) +
124+
ncolumns * sizeof(ColumnIOData));
125125
my_extra = (RecordIOData *) fcinfo->flinfo->fn_extra;
126126
my_extra->record_type = InvalidOid;
127127
my_extra->record_typmod = 0;
@@ -131,8 +131,8 @@ record_in(PG_FUNCTION_ARGS)
131131
my_extra->record_typmod != tupTypmod)
132132
{
133133
MemSet(my_extra, 0,
134-
sizeof(RecordIOData) - sizeof(ColumnIOData)
135-
+ ncolumns * sizeof(ColumnIOData));
134+
offsetof(RecordIOData, columns) +
135+
ncolumns * sizeof(ColumnIOData));
136136
my_extra->record_type = tupType;
137137
my_extra->record_typmod = tupTypmod;
138138
my_extra->ncolumns = ncolumns;
@@ -334,8 +334,8 @@ record_out(PG_FUNCTION_ARGS)
334334
{
335335
fcinfo->flinfo->fn_extra =
336336
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
337-
sizeof(RecordIOData) - sizeof(ColumnIOData)
338-
+ ncolumns * sizeof(ColumnIOData));
337+
offsetof(RecordIOData, columns) +
338+
ncolumns * sizeof(ColumnIOData));
339339
my_extra = (RecordIOData *) fcinfo->flinfo->fn_extra;
340340
my_extra->record_type = InvalidOid;
341341
my_extra->record_typmod = 0;
@@ -345,8 +345,8 @@ record_out(PG_FUNCTION_ARGS)
345345
my_extra->record_typmod != tupTypmod)
346346
{
347347
MemSet(my_extra, 0,
348-
sizeof(RecordIOData) - sizeof(ColumnIOData)
349-
+ ncolumns * sizeof(ColumnIOData));
348+
offsetof(RecordIOData, columns) +
349+
ncolumns * sizeof(ColumnIOData));
350350
my_extra->record_type = tupType;
351351
my_extra->record_typmod = tupTypmod;
352352
my_extra->ncolumns = ncolumns;
@@ -489,8 +489,8 @@ record_recv(PG_FUNCTION_ARGS)
489489
{
490490
fcinfo->flinfo->fn_extra =
491491
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
492-
sizeof(RecordIOData) - sizeof(ColumnIOData)
493-
+ ncolumns * sizeof(ColumnIOData));
492+
offsetof(RecordIOData, columns) +
493+
ncolumns * sizeof(ColumnIOData));
494494
my_extra = (RecordIOData *) fcinfo->flinfo->fn_extra;
495495
my_extra->record_type = InvalidOid;
496496
my_extra->record_typmod = 0;
@@ -500,8 +500,8 @@ record_recv(PG_FUNCTION_ARGS)
500500
my_extra->record_typmod != tupTypmod)
501501
{
502502
MemSet(my_extra, 0,
503-
sizeof(RecordIOData) - sizeof(ColumnIOData)
504-
+ ncolumns * sizeof(ColumnIOData));
503+
offsetof(RecordIOData, columns) +
504+
ncolumns * sizeof(ColumnIOData));
505505
my_extra->record_type = tupType;
506506
my_extra->record_typmod = tupTypmod;
507507
my_extra->ncolumns = ncolumns;
@@ -677,8 +677,8 @@ record_send(PG_FUNCTION_ARGS)
677677
{
678678
fcinfo->flinfo->fn_extra =
679679
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
680-
sizeof(RecordIOData) - sizeof(ColumnIOData)
681-
+ ncolumns * sizeof(ColumnIOData));
680+
offsetof(RecordIOData, columns) +
681+
ncolumns * sizeof(ColumnIOData));
682682
my_extra = (RecordIOData *) fcinfo->flinfo->fn_extra;
683683
my_extra->record_type = InvalidOid;
684684
my_extra->record_typmod = 0;
@@ -688,8 +688,8 @@ record_send(PG_FUNCTION_ARGS)
688688
my_extra->record_typmod != tupTypmod)
689689
{
690690
MemSet(my_extra, 0,
691-
sizeof(RecordIOData) - sizeof(ColumnIOData)
692-
+ ncolumns * sizeof(ColumnIOData));
691+
offsetof(RecordIOData, columns) +
692+
ncolumns * sizeof(ColumnIOData));
693693
my_extra->record_type = tupType;
694694
my_extra->record_typmod = tupTypmod;
695695
my_extra->ncolumns = ncolumns;
@@ -829,8 +829,8 @@ record_cmp(FunctionCallInfo fcinfo)
829829
{
830830
fcinfo->flinfo->fn_extra =
831831
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
832-
sizeof(RecordCompareData) - sizeof(ColumnCompareData)
833-
+ ncols * sizeof(ColumnCompareData));
832+
offsetof(RecordCompareData, columns) +
833+
ncols * sizeof(ColumnCompareData));
834834
my_extra = (RecordCompareData *) fcinfo->flinfo->fn_extra;
835835
my_extra->ncolumns = ncols;
836836
my_extra->record1_type = InvalidOid;
@@ -1065,8 +1065,8 @@ record_eq(PG_FUNCTION_ARGS)
10651065
{
10661066
fcinfo->flinfo->fn_extra =
10671067
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
1068-
sizeof(RecordCompareData) - sizeof(ColumnCompareData)
1069-
+ ncols * sizeof(ColumnCompareData));
1068+
offsetof(RecordCompareData, columns) +
1069+
ncols * sizeof(ColumnCompareData));
10701070
my_extra = (RecordCompareData *) fcinfo->flinfo->fn_extra;
10711071
my_extra->ncolumns = ncols;
10721072
my_extra->record1_type = InvalidOid;
@@ -1324,8 +1324,8 @@ record_image_cmp(FunctionCallInfo fcinfo)
13241324
{
13251325
fcinfo->flinfo->fn_extra =
13261326
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
1327-
sizeof(RecordCompareData) - sizeof(ColumnCompareData)
1328-
+ ncols * sizeof(ColumnCompareData));
1327+
offsetof(RecordCompareData, columns) +
1328+
ncols * sizeof(ColumnCompareData));
13291329
my_extra = (RecordCompareData *) fcinfo->flinfo->fn_extra;
13301330
my_extra->ncolumns = ncols;
13311331
my_extra->record1_type = InvalidOid;
@@ -1601,8 +1601,8 @@ record_image_eq(PG_FUNCTION_ARGS)
16011601
{
16021602
fcinfo->flinfo->fn_extra =
16031603
MemoryContextAlloc(fcinfo->flinfo->fn_mcxt,
1604-
sizeof(RecordCompareData) - sizeof(ColumnCompareData)
1605-
+ ncols * sizeof(ColumnCompareData));
1604+
offsetof(RecordCompareData, columns) +
1605+
ncols * sizeof(ColumnCompareData));
16061606
my_extra = (RecordCompareData *) fcinfo->flinfo->fn_extra;
16071607
my_extra->ncolumns = ncols;
16081608
my_extra->record1_type = InvalidOid;

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy