aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/storage/ipc/shmem.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c
index 4c590a2774b..0fa6c54256a 100644
--- a/src/backend/storage/ipc/shmem.c
+++ b/src/backend/storage/ipc/shmem.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.52 2000/06/28 03:31:57 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.53 2000/07/25 20:17:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -171,17 +171,18 @@ InitShmem(unsigned int key, unsigned int size)
/* get pointers to the dimensions of shared memory */
ShmemBase = (unsigned long) sharedRegion;
ShmemEnd = (unsigned long) sharedRegion + ShmemSize;
- currFreeSpace = 0;
- /* First long in shared memory is the count of available space */
+ /* First long in shared memory is the available-space pointer */
ShmemFreeStart = (unsigned long *) ShmemBase;
/* next is a shmem pointer to the shmem index */
ShmemIndexOffset = ShmemFreeStart + 1;
/* next is ShmemVariableCache */
ShmemVariableCache = (VariableCache) (ShmemIndexOffset + 1);
- currFreeSpace += sizeof(ShmemFreeStart) + sizeof(ShmemIndexOffset) +
- LONGALIGN(sizeof(VariableCacheData));
+ /* here is where to start dynamic allocation */
+ currFreeSpace = MAXALIGN(sizeof(*ShmemFreeStart) +
+ sizeof(*ShmemIndexOffset) +
+ sizeof(*ShmemVariableCache));
/*
* bootstrap initialize spin locks so we can start to use the
@@ -510,7 +511,7 @@ ShmemInitStruct(char *name, Size size, bool *foundPtr)
}
else
{
- Assert(ShmemIndexOffset);
+ Assert(*ShmemIndexOffset);
*foundPtr = TRUE;
return (void *) MAKE_PTR(*ShmemIndexOffset);