Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9c72736

Browse files
committed
Convert macros to static inline functions (bufmgr.h)
Reviewed-by: Amul Sul <sulamul@gmail.com>Discussion:https://www.postgresql.org/message-id/flat/5b558da8-99fb-0a99-83dd-f72f05388517%40enterprisedb.com
1 parentaeb767c commit9c72736

File tree

1 file changed

+36
-23
lines changed

1 file changed

+36
-23
lines changed

‎src/include/storage/bufmgr.h

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ extern PGDLLIMPORT int32 *LocalRefCount;
9898
#defineBUFFER_LOCK_EXCLUSIVE2
9999

100100
/*
101-
* These routines are beaten on quite heavily, hencethe macroization.
101+
* These routines are beaten on quite heavily, henceinline.
102102
*/
103103

104104
/*
@@ -120,11 +120,14 @@ extern PGDLLIMPORT int32 *LocalRefCount;
120120
* even in non-assert-enabled builds can be significant. Thus, we've
121121
* now demoted the range checks to assertions within the macro itself.
122122
*/
123-
#defineBufferIsValid(bufnum) \
124-
( \
125-
AssertMacro((bufnum) <= NBuffers && (bufnum) >= -NLocBuffer), \
126-
(bufnum) != InvalidBuffer \
127-
)
123+
staticinlinebool
124+
BufferIsValid(Bufferbufnum)
125+
{
126+
Assert(bufnum <=NBuffers);
127+
Assert(bufnum >=-NLocBuffer);
128+
129+
returnbufnum!=InvalidBuffer;
130+
}
128131

129132
/*
130133
* BufferGetBlock
@@ -133,14 +136,16 @@ extern PGDLLIMPORT int32 *LocalRefCount;
133136
* Note:
134137
*Assumes buffer is valid.
135138
*/
136-
#defineBufferGetBlock(buffer) \
137-
( \
138-
AssertMacro(BufferIsValid(buffer)), \
139-
BufferIsLocal(buffer) ? \
140-
LocalBufferBlockPointers[-(buffer) - 1] \
141-
: \
142-
(Block) (BufferBlocks + ((Size) ((buffer) - 1)) * BLCKSZ) \
143-
)
139+
staticinlineBlock
140+
BufferGetBlock(Bufferbuffer)
141+
{
142+
Assert(BufferIsValid(buffer));
143+
144+
if (BufferIsLocal(buffer))
145+
returnLocalBufferBlockPointers[-buffer-1];
146+
else
147+
return (Block) (BufferBlocks+ ((Size) (buffer-1))*BLCKSZ);
148+
}
144149

145150
/*
146151
* BufferGetPageSize
@@ -153,11 +158,12 @@ extern PGDLLIMPORT int32 *LocalRefCount;
153158
*(formatted) disk page.
154159
*/
155160
/* XXX should dig out of buffer descriptor */
156-
#defineBufferGetPageSize(buffer) \
157-
( \
158-
AssertMacro(BufferIsValid(buffer)), \
159-
(Size)BLCKSZ \
160-
)
161+
staticinlineSize
162+
BufferGetPageSize(Bufferbuffer)
163+
{
164+
AssertMacro(BufferIsValid(buffer));
165+
return (Size)BLCKSZ;
166+
}
161167

162168
/*
163169
* BufferGetPage
@@ -166,7 +172,11 @@ extern PGDLLIMPORT int32 *LocalRefCount;
166172
* When this is called as part of a scan, there may be a need for a nearby
167173
* call to TestForOldSnapshot(). See the definition of that for details.
168174
*/
169-
#defineBufferGetPage(buffer) ((Page)BufferGetBlock(buffer))
175+
staticinlinePage
176+
BufferGetPage(Bufferbuffer)
177+
{
178+
return (Page)BufferGetBlock(buffer);
179+
}
170180

171181
/*
172182
* prototypes for functions in bufmgr.c
@@ -201,6 +211,12 @@ extern void CheckPointBuffers(int flags);
201211
externBlockNumberBufferGetBlockNumber(Bufferbuffer);
202212
externBlockNumberRelationGetNumberOfBlocksInFork(Relationrelation,
203213
ForkNumberforkNum);
214+
staticinlineBlockNumber
215+
RelationGetNumberOfBlocks(Relationreln)
216+
{
217+
returnRelationGetNumberOfBlocksInFork(reln,MAIN_FORKNUM);
218+
}
219+
204220
externvoidFlushOneBuffer(Bufferbuffer);
205221
externvoidFlushRelationBuffers(Relationrel);
206222
externvoidFlushRelationsAllBuffers(structSMgrRelationData**smgrs,intnrels);
@@ -215,9 +231,6 @@ extern void DropRelationsAllBuffers(struct SMgrRelationData **smgr_reln,
215231
intnlocators);
216232
externvoidDropDatabaseBuffers(Oiddbid);
217233

218-
#defineRelationGetNumberOfBlocks(reln) \
219-
RelationGetNumberOfBlocksInFork(reln, MAIN_FORKNUM)
220-
221234
externboolBufferIsPermanent(Bufferbuffer);
222235
externXLogRecPtrBufferGetLSNAtomic(Bufferbuffer);
223236

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp