aboutsummaryrefslogtreecommitdiff
path: root/src/backend/access/transam/multixact.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2015-02-20 17:32:01 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2015-02-20 17:32:01 -0500
commit33a3b03d636b529b27f869e332b6344d52635331 (patch)
treec5227d0a7013626e9fa9c0973075de224bd4fa33 /src/backend/access/transam/multixact.c
parentc110eff1324f5c882c737ad988191ed4a54c4936 (diff)
downloadpostgresql-33a3b03d636b529b27f869e332b6344d52635331.tar.gz
postgresql-33a3b03d636b529b27f869e332b6344d52635331.zip
Use FLEXIBLE_ARRAY_MEMBER in some more places.
Fix a batch of structs that are only visible within individual .c files. Michael Paquier
Diffstat (limited to 'src/backend/access/transam/multixact.c')
-rw-r--r--src/backend/access/transam/multixact.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c
index b2cf770f9f7..f9ca0283e25 100644
--- a/src/backend/access/transam/multixact.c
+++ b/src/backend/access/transam/multixact.c
@@ -258,7 +258,7 @@ typedef struct MultiXactStateData
* stored in pg_control and used as truncation point for pg_multixact. At
* checkpoint or restartpoint, unneeded segments are removed.
*/
- MultiXactId perBackendXactIds[1]; /* VARIABLE LENGTH ARRAY */
+ MultiXactId perBackendXactIds[FLEXIBLE_ARRAY_MEMBER];
} MultiXactStateData;
/*
@@ -1744,8 +1744,9 @@ MultiXactShmemSize(void)
{
Size size;
+ /* We need 2*MaxOldestSlot + 1 perBackendXactIds[] entries */
#define SHARED_MULTIXACT_STATE_SIZE \
- add_size(sizeof(MultiXactStateData), \
+ add_size(offsetof(MultiXactStateData, perBackendXactIds) + sizeof(MultiXactId), \
mul_size(sizeof(MultiXactId) * 2, MaxOldestSlot))
size = SHARED_MULTIXACT_STATE_SIZE;