From cf62fe51dc1eeda83794f37fd67d4ff26c9e1aa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= Date: Sun, 13 Apr 2014 20:44:20 +0200 Subject: [PATCH] Add a bitCount() util function This function returns the number of bits set in an unsigned integer. --- utils.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/utils.h b/utils.h index 466d3b96ba..45944f7feb 100644 --- a/utils.h +++ b/utils.h @@ -163,6 +163,22 @@ Qt::KeyboardModifiers x11ToQtKeyboardModifiers(int state); void checkNonExistentClients(); +static inline int bitCount(uint32_t mask) +{ +#if defined(__GNUC__) + return __builtin_popcount(mask); +#else + int count = 0; + + while (mask) { + count += (mask & 1); + mask >>= 1; + } + + return count; +#endif +} + } // namespace // Must be outside namespace