From 5e2880e27cd35f215f7d0feb08952ca608582b5c Mon Sep 17 00:00:00 2001 From: Paul Melnikov Date: Wed, 25 Aug 2021 16:39:07 +0700 Subject: [PATCH] Fix bitWrite with parenthesis Current version does not wrap arguments in "()", so works incorrectly when used like this: ``` bitWrite(var, bit, cond?1:0); ``` --- api/Common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/Common.h b/api/Common.h index 0bcc46bb..1fd19300 100644 --- a/api/Common.h +++ b/api/Common.h @@ -65,7 +65,7 @@ typedef void (*voidFuncPtrParam)(void*); #define bitSet(value, bit) ((value) |= (1UL << (bit))) #define bitClear(value, bit) ((value) &= ~(1UL << (bit))) #define bitToggle(value, bit) ((value) ^= (1UL << (bit))) -#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit)) +#define bitWrite(value, bit, bitvalue) ((bitvalue) ? bitSet((value), (bit)) : bitClear((value), (bit))) #ifndef bit #define bit(b) (1UL << (b))