From eae5bd77eea1f2f3c71015512e01ca6c070c6736 Mon Sep 17 00:00:00 2001 From: Andrea Shepard <andrea@persephoneslair.org> Date: Sun, 20 Nov 2016 08:56:53 +0000 Subject: [PATCH] Fix charset_isset()/charset_set() inlines --- src/internal.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/internal.h b/src/internal.h index dd40522d..24199e29 100644 --- a/src/internal.h +++ b/src/internal.h @@ -198,7 +198,8 @@ static inline void charset_complement(HCharset cs) { } static inline int charset_isset(HCharset cs, uint8_t pos) { - return !!(cs[CHARSET_BIT_IDX_TO_WORD(pos)] & CHARSET_BIT_POS_IN_WORD_MASK(pos)); + return !!(cs[CHARSET_BIT_IDX_TO_WORD(pos)] & + CHARSET_BIT_POS_IN_WORD_MASK(CHARSET_BIT_IDX_TO_BIT_IN_WORD(pos))); } static inline void charset_restrict_to_range(HCharset cs, uint8_t idx_start, uint8_t idx_end) { @@ -236,8 +237,10 @@ static inline void charset_restrict_to_range(HCharset cs, uint8_t idx_start, uin static inline void charset_set(HCharset cs, uint8_t pos, int val) { cs[CHARSET_BIT_IDX_TO_WORD(pos)] = val - ? cs[CHARSET_BIT_IDX_TO_WORD(pos)] | CHARSET_BIT_POS_IN_WORD_MASK(pos) - : cs[CHARSET_BIT_IDX_TO_WORD(pos)] & ~CHARSET_BIT_POS_IN_WORD_MASK(pos); + ? cs[CHARSET_BIT_IDX_TO_WORD(pos)] | CHARSET_BIT_POS_IN_WORD_MASK( + CHARSET_BIT_IDX_TO_BIT_IN_WORD(pos)) + : cs[CHARSET_BIT_IDX_TO_WORD(pos)] & ~CHARSET_BIT_POS_IN_WORD_MASK( + CHARSET_BIT_IDX_TO_BIT_IN_WORD(pos)); } typedef unsigned int HHashValue; -- GitLab