aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/storage/buffer/buf_init.c25
-rw-r--r--src/backend/storage/buffer/bufmgr.c4
-rw-r--r--src/include/storage/bufmgr.h6
3 files changed, 7 insertions, 28 deletions
diff --git a/src/backend/storage/buffer/buf_init.c b/src/backend/storage/buffer/buf_init.c
index 52e6ae02223..5051e762d85 100644
--- a/src/backend/storage/buffer/buf_init.c
+++ b/src/backend/storage/buffer/buf_init.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/buffer/buf_init.c,v 1.74 2005/08/08 03:11:44 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/buf_init.c,v 1.75 2005/08/12 05:05:50 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -19,11 +19,9 @@
BufferDesc *BufferDescriptors;
-Block *BufferBlockPointers;
+char *BufferBlocks;
int32 *PrivateRefCount;
-static char *BufferBlocks;
-
/* statistics counters */
long int ReadBufferCount;
long int ReadLocalBufferCount;
@@ -154,30 +152,11 @@ InitBufferPool(void)
void
InitBufferPoolAccess(void)
{
- char *block;
- int i;
-
/*
* Allocate and zero local arrays of per-buffer info.
*/
- BufferBlockPointers = (Block *) calloc(NBuffers,
- sizeof(*BufferBlockPointers));
PrivateRefCount = (int32 *) calloc(NBuffers,
sizeof(*PrivateRefCount));
-
- /*
- * Construct addresses for the individual buffer data blocks. We do
- * this just to speed up the BufferGetBlock() macro. (Since the
- * addresses should be the same in every backend, we could inherit
- * this data from the postmaster --- but in the EXEC_BACKEND case
- * that doesn't work.)
- */
- block = BufferBlocks;
- for (i = 0; i < NBuffers; i++)
- {
- BufferBlockPointers[i] = (Block) block;
- block += BLCKSZ;
- }
}
/*
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index f148a5ea005..6243f2481e4 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.192 2005/08/08 19:44:22 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/buffer/bufmgr.c,v 1.193 2005/08/12 05:05:50 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -54,7 +54,7 @@
/* Note: these two macros only work on shared buffers, not local ones! */
-#define BufHdrGetBlock(bufHdr) BufferBlockPointers[(bufHdr)->buf_id]
+#define BufHdrGetBlock(bufHdr) ((Block) (BufferBlocks + ((Size) (bufHdr)->buf_id) * BLCKSZ))
#define BufferGetLSN(bufHdr) (*((XLogRecPtr*) BufHdrGetBlock(bufHdr)))
/* Note: this macro only works on local buffers, not shared ones! */
diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h
index eb7268edfc7..a88565e1596 100644
--- a/src/include/storage/bufmgr.h
+++ b/src/include/storage/bufmgr.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/storage/bufmgr.h,v 1.94 2005/08/08 03:12:16 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/storage/bufmgr.h,v 1.95 2005/08/12 05:05:51 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -33,7 +33,7 @@ extern int bgwriter_lru_maxpages;
extern int bgwriter_all_maxpages;
/* in buf_init.c */
-extern DLLIMPORT Block *BufferBlockPointers;
+extern DLLIMPORT char *BufferBlocks;
extern DLLIMPORT int32 *PrivateRefCount;
/* in localbuf.c */
@@ -107,7 +107,7 @@ extern DLLIMPORT int32 *LocalRefCount;
BufferIsLocal(buffer) ? \
LocalBufferBlockPointers[-(buffer) - 1] \
: \
- BufferBlockPointers[(buffer) - 1] \
+ (Block) (BufferBlocks + ((Size) ((buffer) - 1)) * BLCKSZ) \
)
/*