# [PATCH] fetch-pack: Remove unused struct 'loose_object_iter'

5 messages from 2024-05-12 to 2024-05-15. Participants: Dr. David Alan Gilbert, Patrick Steinhardt, Junio C Hamano, Jeff King.
Thread: https://gitlist.dev/t/61459

## Dr. David Alan Gilbert, 2024-05-12 00:59

Subject: [PATCH] fetch-pack: Remove unused struct 'loose_object_iter'
Message-ID: <20240512005913.342287-1-dave@treblig.org>
URL: https://gitlist.dev/e/20240512005913.342287-1-dave%40treblig.org

```
'loose_object_iter' in fetch-pack.c is unused since
commit 97b2fa08b6b9ee3e ("fetch-pack: drop custom loose object cache")
Remove it.

Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org>
---
 fetch-pack.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/fetch-pack.c b/fetch-pack.c
index 091f9a80a9..28a62e502e 100644
--- a/fetch-pack.c
+++ b/fetch-pack.c
@@ -732,11 +732,6 @@ static void mark_alternate_complete(struct fetch_negotiator *negotiator UNUSED,
 	mark_complete(&obj->oid);
 }
 
-struct loose_object_iter {
-	struct oidset *loose_object_set;
-	struct ref *refs;
-};
-
 /*
  * Mark recent commits available locally and reachable from a local ref as
  * COMPLETE.
-- 
2.45.0


```

## Patrick Steinhardt, 2024-05-13 10:02

Subject: Re: [PATCH] fetch-pack: Remove unused struct 'loose_object_iter'
Message-ID: <ZkHlUkKtqbXSvVNS@tanuki>
URL: https://gitlist.dev/e/ZkHlUkKtqbXSvVNS%40tanuki
In-Reply-To: <20240512005913.342287-1-dave@treblig.org>

```
On Sun, May 12, 2024 at 01:59:13AM +0100, Dr. David Alan Gilbert wrote:

Tiny nit: we don't capitalize the first letter after the colon in the
subject. I don't think this warrants a reroll of this patch though.

> 'loose_object_iter' in fetch-pack.c is unused since
> commit 97b2fa08b6b9ee3e ("fetch-pack: drop custom loose object cache")
> Remove it.

Good catch, and thanks for providing historical context. The patch looks
obviously good to me.

Patrick

```

## Junio C Hamano, 2024-05-13 23:56

Subject: Re: [PATCH] fetch-pack: Remove unused struct 'loose_object_iter'
Message-ID: <xmqq34qlcllg.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqq34qlcllg.fsf%40gitster.g
In-Reply-To: <ZkHlUkKtqbXSvVNS@tanuki>

```
Patrick Steinhardt <ps@pks.im> writes:

> On Sun, May 12, 2024 at 01:59:13AM +0100, Dr. David Alan Gilbert wrote:
>
> Tiny nit: we don't capitalize the first letter after the colon in the
> subject. I don't think this warrants a reroll of this patch though.
>
>> 'loose_object_iter' in fetch-pack.c is unused since
>> commit 97b2fa08b6b9ee3e ("fetch-pack: drop custom loose object cache")
>> Remove it.
>
> Good catch, and thanks for providing historical context. The patch looks
> obviously good to me.

Thanks, both.  Will queue with a slight copy-editing of the proposed
log message.

```

## Jeff King, 2024-05-15 06:46

Subject: Re: [PATCH] fetch-pack: Remove unused struct 'loose_object_iter'
Message-ID: <20240515064658.GE110841@coredump.intra.peff.net>
URL: https://gitlist.dev/e/20240515064658.GE110841%40coredump.intra.peff.net
In-Reply-To: <20240512005913.342287-1-dave@treblig.org>

```
On Sun, May 12, 2024 at 01:59:13AM +0100, Dr. David Alan Gilbert wrote:

> 'loose_object_iter' in fetch-pack.c is unused since
> commit 97b2fa08b6b9ee3e ("fetch-pack: drop custom loose object cache")
> Remove it.

Thanks, this was my fault for leaving it in. The patch looks obviously
good.

I wish there was a good way to get the compiler to report on unused
types, but I don't think there is (it's a complicated problem in
general, but file-local ones like this feel like they should be easy to
spot).

Here's a really hacky (and quadratic) attempt to find defined structs
that aren't mentioned elsewhere:

  for i in $(git grep -ho '^struct [a-z_]* {' | cut -d' ' -f2)
  do
	used=$(git grep -Phc "\b$i\b" |
	       perl -ne '$x += $_; END { print $x }')
	echo "$used $i"
  done |
  sort -n

which finds exactly one unused struct, the one in this patch.

-Peff

```

## Dr. David Alan Gilbert, 2024-05-15 10:41

Subject: Re: [PATCH] fetch-pack: Remove unused struct 'loose_object_iter'
Message-ID: <ZkSRbSgQ-whUdms-@gallifrey>
URL: https://gitlist.dev/e/ZkSRbSgQ-whUdms-%40gallifrey
In-Reply-To: <20240515064658.GE110841@coredump.intra.peff.net>

```
* Jeff King (peff@peff.net) wrote:
> On Sun, May 12, 2024 at 01:59:13AM +0100, Dr. David Alan Gilbert wrote:
> 
> > 'loose_object_iter' in fetch-pack.c is unused since
> > commit 97b2fa08b6b9ee3e ("fetch-pack: drop custom loose object cache")
> > Remove it.
> 
> Thanks, this was my fault for leaving it in. The patch looks obviously
> good.

Thanks.
Most projects I've looked at seem to have one or more.

> I wish there was a good way to get the compiler to report on unused
> types, but I don't think there is (it's a complicated problem in
> general, but file-local ones like this feel like they should be easy to
> spot).

Alas not.

> Here's a really hacky (and quadratic) attempt to find defined structs
> that aren't mentioned elsewhere:
> 
>   for i in $(git grep -ho '^struct [a-z_]* {' | cut -d' ' -f2)
>   do
> 	used=$(git grep -Phc "\b$i\b" |
> 	       perl -ne '$x += $_; END { print $x }')
> 	echo "$used $i"
>   done |
>   sort -n
> 
> which finds exactly one unused struct, the one in this patch.

My similarly hacky script was:
  
  grep -r '^struct [^(=]* {'| tr ':' ' ' |
  while read FNAME STRUCT NAME TAIL
  do
    echo "$FNAME" | grep -q '[.]c$' || continue
  echo ">>>" $FNAME ' : ' $NAME
  echo -n "Count: "
  grep $NAME $FNAME | wc -l 
  #grep $VARNAME $FNAME
  done

(A count of 1 being the unused ones).

Dave


> 
> -Peff
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/

```
