Re: [PATCH v2 5/6] packfile: introduce macro to iterate through packs
- From
Justin Tobler <jltobler@gmail.com>
- Date
- Oct 14, 2025, 19:17 UTC
- Message-ID
- <6w2h4qvnwwci65puh6rmluy4br6m3xku3553473rn3k2dqnx2b@fs7gvglg4666>
- In-Reply-To
- <20251009-pks-packfiles-convert-get-all-v2-5-0d73b87ce711@pks.im>
On 25/10/09 10:01AM, Patrick Steinhardt wrote:
Show 9 quoted lines
> We have a bunch of different sites that want to iterate through all > packs of a given `struct packfile_store`. This pattern is somewhat > verbose and repetitive, which makes it somewhat cumbersome. > > Introduce a new macro `repo_for_each_pack()` that removes some of the > boilerplate. > > Signed-off-by: Patrick Steinhardt <ps@pks.im> > ---
[snip]
Show 15 quoted lines
> diff --git a/packfile.h b/packfile.h > index 3f38c63476..49484a9b09 100644 > --- a/packfile.h > +++ b/packfile.h > @@ -136,6 +136,14 @@ void packfile_store_reprepare(struct packfile_store *store); > void packfile_store_add_pack(struct packfile_store *store, > struct packed_git *pack); > > +/* > + * Load and iterate through all packs of the given repository. This helper > + * function will yield packfiles from all object sources connected to the > + * repository. > + */ > +#define repo_for_each_pack(repo, p) \ > + for (p = packfile_store_get_all_packs(repo->objects->packfiles); p; p = p->next)
The added macro here is a nice quality of life improvement and the updated call sites all look good.
-Justin