[RFC,1/5] builtin/grep.c: change todo_* variables to unsigned
diff mbox series

Message ID 20190212222654.7432-2-rv@rasmusvillemoes.dk
State New
Headers show
Series
  • builtin/grep.c: fix a tiny logic flaw
Related show

Commit Message

Rasmus Villemoes Feb. 12, 2019, 10:26 p.m. UTC
In preparation for subsequent patches that make todo_* free-running
instead of reducing them mod TODO_SIZE, change their type to unsigned
to avoid undefined behaviour in case anybody ever greps more than 2
billion files.

Signed-off-by: Rasmus Villemoes <rv@rasmusvillemoes.dk>
---
 builtin/grep.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Patch
diff mbox series

diff --git a/builtin/grep.c b/builtin/grep.c
index 580fd38f41..6c1e90d43b 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -58,9 +58,9 @@  struct work_item {
  */
 #define TODO_SIZE 128
 static struct work_item todo[TODO_SIZE];
-static int todo_start;
-static int todo_end;
-static int todo_done;
+static unsigned int todo_start;
+static unsigned int todo_end;
+static unsigned int todo_done;
 
 /* Has all work items been added? */
 static int all_work_added;
@@ -132,7 +132,7 @@  static struct work_item *get_work(void)
 
 static void work_done(struct work_item *w)
 {
-	int old_done;
+	unsigned int old_done;
 
 	grep_lock();
 	w->done = 1;