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

Commitaeb767c

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

File tree

1 file changed

+73
-56
lines changed

1 file changed

+73
-56
lines changed

‎src/include/storage/itemptr.h

Lines changed: 73 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -71,85 +71,95 @@ typedef ItemPointerData *ItemPointer;
7171

7272

7373
/* ----------------
74-
*supportmacros
74+
*supportfunctions
7575
* ----------------
7676
*/
7777

7878
/*
7979
* ItemPointerIsValid
8080
*True iff the disk item pointer is not NULL.
8181
*/
82-
#defineItemPointerIsValid(pointer) \
83-
((bool) (PointerIsValid(pointer) && ((pointer)->ip_posid != 0)))
82+
staticinlinebool
83+
ItemPointerIsValid(constItemPointerData*pointer)
84+
{
85+
returnPointerIsValid(pointer)&&pointer->ip_posid!=0;
86+
}
8487

8588
/*
8689
* ItemPointerGetBlockNumberNoCheck
8790
*Returns the block number of a disk item pointer.
8891
*/
89-
#defineItemPointerGetBlockNumberNoCheck(pointer) \
90-
( \
91-
BlockIdGetBlockNumber(&(pointer)->ip_blkid) \
92-
)
92+
staticinlineBlockNumber
93+
ItemPointerGetBlockNumberNoCheck(constItemPointerData*pointer)
94+
{
95+
returnBlockIdGetBlockNumber(&pointer->ip_blkid);
96+
}
9397

9498
/*
9599
* ItemPointerGetBlockNumber
96100
*As above, but verifies that the item pointer looks valid.
97101
*/
98-
#defineItemPointerGetBlockNumber(pointer) \
99-
( \
100-
AssertMacro(ItemPointerIsValid(pointer)), \
101-
ItemPointerGetBlockNumberNoCheck(pointer) \
102-
)
102+
staticinlineBlockNumber
103+
ItemPointerGetBlockNumber(constItemPointerData*pointer)
104+
{
105+
Assert(ItemPointerIsValid(pointer));
106+
returnItemPointerGetBlockNumberNoCheck(pointer);
107+
}
103108

104109
/*
105110
* ItemPointerGetOffsetNumberNoCheck
106111
*Returns the offset number of a disk item pointer.
107112
*/
108-
#defineItemPointerGetOffsetNumberNoCheck(pointer) \
109-
( \
110-
(pointer)->ip_posid \
111-
)
113+
staticinlineOffsetNumber
114+
ItemPointerGetOffsetNumberNoCheck(constItemPointerData*pointer)
115+
{
116+
returnpointer->ip_posid;
117+
}
112118

113119
/*
114120
* ItemPointerGetOffsetNumber
115121
*As above, but verifies that the item pointer looks valid.
116122
*/
117-
#defineItemPointerGetOffsetNumber(pointer) \
118-
( \
119-
AssertMacro(ItemPointerIsValid(pointer)), \
120-
ItemPointerGetOffsetNumberNoCheck(pointer) \
121-
)
123+
staticinlineOffsetNumber
124+
ItemPointerGetOffsetNumber(constItemPointerData*pointer)
125+
{
126+
Assert(ItemPointerIsValid(pointer));
127+
returnItemPointerGetOffsetNumberNoCheck(pointer);
128+
}
122129

123130
/*
124131
* ItemPointerSet
125132
*Sets a disk item pointer to the specified block and offset.
126133
*/
127-
#defineItemPointerSet(pointer,blockNumber,offNum) \
128-
( \
129-
AssertMacro(PointerIsValid(pointer)), \
130-
BlockIdSet(&((pointer)->ip_blkid), blockNumber), \
131-
(pointer)->ip_posid = offNum \
132-
)
134+
staticinlinevoid
135+
ItemPointerSet(ItemPointerData*pointer,BlockNumberblockNumber,OffsetNumberoffNum)
136+
{
137+
Assert(PointerIsValid(pointer));
138+
BlockIdSet(&pointer->ip_blkid,blockNumber);
139+
pointer->ip_posid=offNum;
140+
}
133141

134142
/*
135143
* ItemPointerSetBlockNumber
136144
*Sets a disk item pointer to the specified block.
137145
*/
138-
#defineItemPointerSetBlockNumber(pointer,blockNumber) \
139-
( \
140-
AssertMacro(PointerIsValid(pointer)), \
141-
BlockIdSet(&((pointer)->ip_blkid), blockNumber) \
142-
)
146+
staticinlinevoid
147+
ItemPointerSetBlockNumber(ItemPointerData*pointer,BlockNumberblockNumber)
148+
{
149+
Assert(PointerIsValid(pointer));
150+
BlockIdSet(&pointer->ip_blkid,blockNumber);
151+
}
143152

144153
/*
145154
* ItemPointerSetOffsetNumber
146155
*Sets a disk item pointer to the specified offset.
147156
*/
148-
#defineItemPointerSetOffsetNumber(pointer,offsetNumber) \
149-
( \
150-
AssertMacro(PointerIsValid(pointer)), \
151-
(pointer)->ip_posid = (offsetNumber) \
152-
)
157+
staticinlinevoid
158+
ItemPointerSetOffsetNumber(ItemPointerData*pointer,OffsetNumberoffsetNumber)
159+
{
160+
Assert(PointerIsValid(pointer));
161+
pointer->ip_posid=offsetNumber;
162+
}
153163

154164
/*
155165
* ItemPointerCopy
@@ -158,42 +168,49 @@ typedef ItemPointerData *ItemPointer;
158168
* Should there ever be padding in an ItemPointer this would need to be handled
159169
* differently as it's used as hash key.
160170
*/
161-
#defineItemPointerCopy(fromPointer,toPointer) \
162-
( \
163-
AssertMacro(PointerIsValid(toPointer)), \
164-
AssertMacro(PointerIsValid(fromPointer)), \
165-
*(toPointer) = *(fromPointer) \
166-
)
171+
staticinlinevoid
172+
ItemPointerCopy(constItemPointerData*fromPointer,ItemPointerData*toPointer)
173+
{
174+
Assert(PointerIsValid(toPointer));
175+
Assert(PointerIsValid(fromPointer));
176+
*toPointer=*fromPointer;
177+
}
167178

168179
/*
169180
* ItemPointerSetInvalid
170181
*Sets a disk item pointer to be invalid.
171182
*/
172-
#defineItemPointerSetInvalid(pointer) \
173-
( \
174-
AssertMacro(PointerIsValid(pointer)), \
175-
BlockIdSet(&((pointer)->ip_blkid), InvalidBlockNumber), \
176-
(pointer)->ip_posid = InvalidOffsetNumber \
177-
)
183+
staticinlinevoid
184+
ItemPointerSetInvalid(ItemPointerData*pointer)
185+
{
186+
Assert(PointerIsValid(pointer));
187+
BlockIdSet(&pointer->ip_blkid,InvalidBlockNumber);
188+
pointer->ip_posid=InvalidOffsetNumber;
189+
}
178190

179191
/*
180192
* ItemPointerIndicatesMovedPartitions
181193
*True iff the block number indicates the tuple has moved to another
182194
*partition.
183195
*/
184-
#defineItemPointerIndicatesMovedPartitions(pointer) \
185-
( \
186-
ItemPointerGetOffsetNumber(pointer) == MovedPartitionsOffsetNumber && \
187-
ItemPointerGetBlockNumberNoCheck(pointer) == MovedPartitionsBlockNumber \
188-
)
196+
staticinlinebool
197+
ItemPointerIndicatesMovedPartitions(constItemPointerData*pointer)
198+
{
199+
return
200+
ItemPointerGetOffsetNumber(pointer)==MovedPartitionsOffsetNumber&&
201+
ItemPointerGetBlockNumberNoCheck(pointer)==MovedPartitionsBlockNumber;
202+
}
189203

190204
/*
191205
* ItemPointerSetMovedPartitions
192206
*Indicate that the item referenced by the itempointer has moved into a
193207
*different partition.
194208
*/
195-
#defineItemPointerSetMovedPartitions(pointer) \
196-
ItemPointerSet((pointer), MovedPartitionsBlockNumber, MovedPartitionsOffsetNumber)
209+
staticinlinevoid
210+
ItemPointerSetMovedPartitions(ItemPointerData*pointer)
211+
{
212+
ItemPointerSet(pointer,MovedPartitionsBlockNumber,MovedPartitionsOffsetNumber);
213+
}
197214

198215
/* ----------------
199216
*externs

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp