From 33a3b03d636b529b27f869e332b6344d52635331 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 20 Feb 2015 17:32:01 -0500 Subject: Use FLEXIBLE_ARRAY_MEMBER in some more places. Fix a batch of structs that are only visible within individual .c files. Michael Paquier --- src/backend/access/transam/multixact.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/backend/access/transam/multixact.c') 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; -- cgit v1.2.3