# [PATCH 0/1] [GSOC] Use unsigned type for bit flags in commit-reach.c

3 messages from 2025-02-12 to 2025-02-12. Participants: Moumita, Junio C Hamano.
Thread: https://gitlist.dev/t/62944

## Moumita, 2025-02-12 19:28

Subject: [PATCH 0/1] [GSOC] Use unsigned type for bit flags in commit-reach.c
Message-ID: <20250212192841.8321-1-dhar61595@gmail.com>
URL: https://gitlist.dev/e/20250212192841.8321-1-dhar61595%40gmail.com

```
The `flags` variable  holds multiple bitwise flags (PARENT1, PARENT2, STALE),these flags are defined using (1u << N), so maybe there will be no issues if it is changed from `int` to `unsigned int`

Moumita (1):
  commit-reach: use unsigned int for flags in paint_down_to_common()

 commit-reach.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.48.0


```

## Moumita, 2025-02-12 19:28

Subject: [PATCH 1/1] commit-reach: use unsigned int for flags in paint_down_to_common()
Message-ID: <20250212192841.8321-2-dhar61595@gmail.com>
URL: https://gitlist.dev/e/20250212192841.8321-2-dhar61595%40gmail.com
In-Reply-To: <20250212192841.8321-1-dhar61595@gmail.com>

```
The `flags` variable in `paint_down_to_common()` stores bitwise flags
(PARENT1, PARENT2, and STALE), which are defined as `(1u << N)`.
Since these are already unsigned values,`flags` can also be declared as
`unsigned int` instead of `int`.

Signed-off-by: Moumita <dhar61595@gmail.com>
---
 commit-reach.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/commit-reach.c b/commit-reach.c
index a339e41aa4..a4aaae2737 100644
--- a/commit-reach.c
+++ b/commit-reach.c
@@ -79,7 +79,7 @@ static int paint_down_to_common(struct repository *r,
 	while (queue_has_nonstale(&queue)) {
 		struct commit *commit = prio_queue_get(&queue);
 		struct commit_list *parents;
-		int flags;
+		unsigned int flags;
 		timestamp_t generation = commit_graph_generation(commit);
 
 		if (min_generation && generation > last_gen)
-- 
2.48.0


```

## Junio C Hamano, 2025-02-12 21:16

Subject: Re: [PATCH 0/1] [GSOC] Use unsigned type for bit flags in commit-reach.c
Message-ID: <xmqqfrkiuan3.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqfrkiuan3.fsf%40gitster.g
In-Reply-To: <20250212192841.8321-1-dhar61595@gmail.com>

```
Moumita <dhar61595@gmail.com> writes:

> The `flags` variable holds multiple bitwise flags (PARENT1,
> PARENT2, STALE),these flags are defined using (1u << N), so maybe
> there will be no issues if it is changed from `int` to `unsigned
> int`

"This change will not break" is not a good reason to make the
change, though, as not making that change will not break anything,
either.

If you need to write something, say something that positively
justifies the change, explaining readers why it is a good thing to
do, and how the resulting code is _better_ than the original.

Thanks.


```
