Extend size_t support in pg_bitutils.h.
authorThomas Munro <[email protected]>
Thu, 21 Jul 2022 21:40:39 +0000 (09:40 +1200)
committerThomas Munro <[email protected]>
Thu, 21 Jul 2022 21:40:39 +0000 (09:40 +1200)
Use a more compact notation that allows us to add more size_t variants
as required.  This will be used by a later commit.

Reviewed-by: Tom Lane <[email protected]>
Discussion: https://postgr.es/m/CA%2BhUKG%2B7dSX1XF8yFGmYk-%3D48dbjH2kmzZj16XvhbrWP-9BzRg%40mail.gmail.com

src/include/port/pg_bitutils.h

index 04e58cd1c442c81a759930860b72ece558da99a7..814e0b2dba0ec5b6d7e6d8dac96ecece4c37c7aa 100644 (file)
@@ -175,16 +175,6 @@ pg_nextpower2_64(uint64 num)
    return ((uint64) 1) << (pg_leftmost_one_pos64(num) + 1);
 }
 
-/*
- * pg_nextpower2_size_t
- *     Returns the next higher power of 2 above 'num', for a size_t input.
- */
-#if SIZEOF_SIZE_T == 4
-#define pg_nextpower2_size_t(num) pg_nextpower2_32(num)
-#else
-#define pg_nextpower2_size_t(num) pg_nextpower2_64(num)
-#endif
-
 /*
  * pg_prevpower2_32
  *     Returns the next lower power of 2 below 'num', or 'num' if it's
@@ -211,16 +201,6 @@ pg_prevpower2_64(uint64 num)
    return ((uint64) 1) << pg_leftmost_one_pos64(num);
 }
 
-/*
- * pg_prevpower2_size_t
- *     Returns the next lower power of 2 below 'num', for a size_t input.
- */
-#if SIZEOF_SIZE_T == 4
-#define pg_prevpower2_size_t(num) pg_prevpower2_32(num)
-#else
-#define pg_prevpower2_size_t(num) pg_prevpower2_64(num)
-#endif
-
 /*
  * pg_ceil_log2_32
  *     Returns equivalent of ceil(log2(num))
@@ -299,4 +279,16 @@ pg_rotate_left32(uint32 word, int n)
    return (word << n) | (word >> (32 - n));
 }
 
+/* size_t variants of the above, as required */
+
+#if SIZEOF_SIZE_T == 4
+#define pg_leftmost_one_pos_size_t pg_leftmost_one_pos32
+#define pg_nextpower2_size_t pg_nextpower2_32
+#define pg_prevpower2_size_t pg_prevpower2_32
+#else
+#define pg_leftmost_one_pos_size_t pg_leftmost_one_pos64
+#define pg_nextpower2_size_t pg_nextpower2_64
+#define pg_prevpower2_size_t pg_prevpower2_64
+#endif
+
 #endif                         /* PG_BITUTILS_H */