From: Justin Tobler Date: Tue, 14 Oct 2025 19:17:11 GMT Subject: Re: [PATCH v2 5/6] packfile: introduce macro to iterate through packs 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: > 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 > --- [snip] > 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