From git Wed Jul 22 21:34:34 2009 From: Pierre Habouzit Date: Wed, 22 Jul 2009 21:34:34 +0000 To: git Subject: [PATCH 2/3] refactor: use bitsizeof() instead of 8 * sizeof() Message-Id: <1248298475-2990-3-git-send-email-madcoder () debian ! org> X-MARC-Message: https://marc.info/?l=git&m=124829887308903 Signed-off-by: Pierre Habouzit --- git-compat-util.h | 3 ++- sha1_file.c | 2 +- xdiff/xdiffi.c | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/git-compat-util.h b/git-compat-util.h index 913f41a..6dfc0dd 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -26,6 +26,7 @@ #endif #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) +#define bitsizeof(x) (CHAR_BIT * sizeof(x)) #ifdef __GNUC__ #define TYPEOF(x) (__typeof__(x)) @@ -33,7 +34,7 @@ #define TYPEOF(x) #endif -#define MSB(x, bits) ((x) & TYPEOF(x)(~0ULL << (sizeof(x) * 8 - (bits)))) +#define MSB(x, bits) ((x) & TYPEOF(x)(~0ULL << (bitsizeof(x) - (bits)))) #define HAS_MULTI_BITS(i) ((i) & ((i) - 1)) /* checks if an integer has more than 1 bit set */ /* Approximation of the length of the decimal representation of this type. */ diff --git a/sha1_file.c b/sha1_file.c index b91a7dd..4ea0b18 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1170,7 +1170,7 @@ unsigned long unpack_object_header_buffer(const unsigned char *buf, size = c & 15; shift = 4; while (c & 0x80) { - if (len <= used || sizeof(long) * 8 <= shift) { + if (len <= used || bitsizeof(long) <= shift) { error("bad object header"); return 0; } diff --git a/xdiff/xdiffi.c b/xdiff/xdiffi.c index 1ebab68..da67c04 100644 --- a/xdiff/xdiffi.c +++ b/xdiff/xdiffi.c @@ -26,7 +26,7 @@ #define XDL_MAX_COST_MIN 256 #define XDL_HEUR_MIN_COST 256 -#define XDL_LINE_MAX (long)((1UL << (8 * sizeof(long) - 1)) - 1) +#define XDL_LINE_MAX (long)((1UL << (CHAR_BIT * sizeof(long) - 1)) - 1) #define XDL_SNAKE_CNT 20 #define XDL_K_HEUR 4 -- 1.6.4.rc1.192.g631f9 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html