git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/3] refactor: use bitsizeof() instead of 8 * sizeof()

From
Pierre Habouzit <madcoder@debian.org>
Date
Jul 22, 2009, 21:34 UTC
Message-ID
<1248298475-2990-3-git-send-email-madcoder@debian.org>
In-Reply-To
<1248298475-2990-2-git-send-email-madcoder@debian.org>
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
---
 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
Previous: Pierre HabouzitNext: Pierre Habouzit
Message 3 of 14 in “janitoring”
  1. Pierre HabouzitJul 22, 2009
  2. 1/3 janitor: use NULL and not 0 for pointers.Pierre Habouzit, Jul 22, 2009
  3. 2/3 refactor: use bitsizeof() instead of 8 * sizeof()Pierre Habouzit, Jul 22, 2009
  4. 3/3 janitor: add DIV_ROUND_UP and use it.Pierre Habouzit, Jul 22, 2009
  5. Jeff KingJul 23, 2009
  6. Junio C HamanoJul 23, 2009
  7. Jeff KingJul 23, 2009
  8. Junio C HamanoJul 23, 2009
  9. Pierre HabouzitJul 23, 2009
  10. Junio C HamanoJul 22, 2009
  11. Pierre HabouzitJul 22, 2009
  12. Junio C HamanoJul 22, 2009
  13. Johannes SchindelinJul 22, 2009
  14. Johannes SixtJul 23, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.