Convert macros to static inline functions (block.h)
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 7 Jul 2022 06:30:52 +0000 (08:30 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 7 Jul 2022 06:36:51 +0000 (08:36 +0200)
Remove BlockIdIsValid(), which wasn't used and is unnecessary.

Remove BlockIdCopy(), which wasn't used and can be done by struct
assignment.

(BlockIdEquals() also isn't used, but seems reasonable to keep
around.)

Reviewed-by: Amul Sul <sulamul@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/5b558da8-99fb-0a99-83dd-f72f05388517%40enterprisedb.com

src/include/storage/block.h

index d756e3fda5ea63ab9828c7398e4b4461e3570987..4d7b776f1c79f18788783e608cff2fe661b7b44b 100644 (file)
@@ -59,7 +59,7 @@ typedef struct BlockIdData
 typedef BlockIdData *BlockId;  /* block identifier */
 
 /* ----------------
- *     support macros
+ *     support functions
  * ----------------
  */
 
@@ -67,49 +67,42 @@ typedef BlockIdData *BlockId;   /* block identifier */
  * BlockNumberIsValid
  *     True iff blockNumber is valid.
  */
-#define BlockNumberIsValid(blockNumber) \
-   ((BlockNumber) (blockNumber) != InvalidBlockNumber)
-
-/*
- * BlockIdIsValid
- *     True iff the block identifier is valid.
- */
-#define BlockIdIsValid(blockId) \
-   PointerIsValid(blockId)
+static inline bool
+BlockNumberIsValid(BlockNumber blockNumber)
+{
+   return blockNumber != InvalidBlockNumber;
+}
 
 /*
  * BlockIdSet
  *     Sets a block identifier to the specified value.
  */
-#define BlockIdSet(blockId, blockNumber) \
-( \
-   (blockId)->bi_hi = (blockNumber) >> 16, \
-   (blockId)->bi_lo = (blockNumber) & 0xffff \
-)
-
-/*
- * BlockIdCopy
- *     Copy a block identifier.
- */
-#define BlockIdCopy(toBlockId, fromBlockId) \
-( \
-   (toBlockId)->bi_hi = (fromBlockId)->bi_hi, \
-   (toBlockId)->bi_lo = (fromBlockId)->bi_lo \
-)
+static inline void
+BlockIdSet(BlockIdData *blockId, BlockNumber blockNumber)
+{
+   blockId->bi_hi = blockNumber >> 16;
+   blockId->bi_lo = blockNumber & 0xffff;
+}
 
 /*
  * BlockIdEquals
  *     Check for block number equality.
  */
-#define BlockIdEquals(blockId1, blockId2) \
-   ((blockId1)->bi_hi == (blockId2)->bi_hi && \
-    (blockId1)->bi_lo == (blockId2)->bi_lo)
+static inline bool
+BlockIdEquals(const BlockIdData *blockId1, const BlockIdData *blockId2)
+{
+   return (blockId1->bi_hi == blockId2->bi_hi &&
+           blockId1->bi_lo == blockId2->bi_lo);
+}
 
 /*
  * BlockIdGetBlockNumber
  *     Retrieve the block number from a block identifier.
  */
-#define BlockIdGetBlockNumber(blockId) \
-   ((((BlockNumber) (blockId)->bi_hi) << 16) | ((BlockNumber) (blockId)->bi_lo))
+static inline BlockNumber
+BlockIdGetBlockNumber(const BlockIdData *blockId)
+{
+   return (((BlockNumber) blockId->bi_hi) << 16) | ((BlockNumber) blockId->bi_lo);
+}
 
 #endif                         /* BLOCK_H */