summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Herrera2017-01-18 21:06:13 +0000
committerAlvaro Herrera2017-01-18 21:06:13 +0000
commit594e61a1de03ab93779e7e3d853edb7859d5c3cf (patch)
tree2b367413482060b73741bf587e76afed47287d36
parentd00ca333c338b40911e89939c3cc771025978595 (diff)
Change some test macros to return true booleans
These macros work fine when they are used directly in an "if" test or similar, but as soon as the return values are assigned to boolean variables (or passed as boolean arguments to some function), they become bugs, hopefully caught by compiler warnings. To avoid future problems, fix the definitions so that they return actual booleans. To further minimize the risk that somebody uses them in back-patched fixes that only work correctly in branches starting from the current master and not in old ones, back-patch the change to supported branches as appropriate. See also commit af4472bcb88ab36b9abbe7fd5858e570a65a2d1a, and the long discussion (and larger patch) in the thread mentioned in its commit message. Discussion: https://postgr.es/m/[email protected]
-rw-r--r--src/include/access/htup_details.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/include/access/htup_details.h b/src/include/access/htup_details.h
index fae955e983..a6c7e319a6 100644
--- a/src/include/access/htup_details.h
+++ b/src/include/access/htup_details.h
@@ -237,8 +237,8 @@ struct HeapTupleHeaderData
*/
#define HEAP_LOCKED_UPGRADED(infomask) \
( \
- ((infomask) & HEAP_XMAX_IS_MULTI) && \
- ((infomask) & HEAP_XMAX_LOCK_ONLY) && \
+ ((infomask) & HEAP_XMAX_IS_MULTI) != 0 && \
+ ((infomask) & HEAP_XMAX_LOCK_ONLY) != 0 && \
(((infomask) & (HEAP_XMAX_EXCL_LOCK | HEAP_XMAX_KEYSHR_LOCK)) == 0) \
)
@@ -317,7 +317,7 @@ struct HeapTupleHeaderData
#define HeapTupleHeaderXminCommitted(tup) \
( \
- (tup)->t_infomask & HEAP_XMIN_COMMITTED \
+ ((tup)->t_infomask & HEAP_XMIN_COMMITTED) != 0 \
)
#define HeapTupleHeaderXminInvalid(tup) \
@@ -501,7 +501,7 @@ do { \
#define HeapTupleHeaderIsHeapOnly(tup) \
( \
- (tup)->t_infomask2 & HEAP_ONLY_TUPLE \
+ ((tup)->t_infomask2 & HEAP_ONLY_TUPLE) != 0 \
)
#define HeapTupleHeaderSetHeapOnly(tup) \
@@ -516,7 +516,7 @@ do { \
#define HeapTupleHeaderHasMatch(tup) \
( \
- (tup)->t_infomask2 & HEAP_TUPLE_HAS_MATCH \
+ ((tup)->t_infomask2 & HEAP_TUPLE_HAS_MATCH) != 0 \
)
#define HeapTupleHeaderSetMatch(tup) \