Subject: Re: What's cooking in git.git (Oct 2025, #12; Thu, 30)

From: Jeff King <[email-masked]>
Date: Mon, 3 Nov 2025 16:30:59 -0500

On Mon, Nov 03, 2025 at 12:10:47PM -0800, Junio C Hamano wrote:

> Junio C Hamano <[email-masked]> writes:
> 
> > Bisect points at 054f5f45 (ref-filter: parse objects on demand,
> > 2025-10-23), which is unfortunate, as that is the motivating step of
> > the whole topic.
> 
> Here is a fairly simple reproduction.  It appears that this does not
> require the refs to be packed (i.e., "t7004-tag.sh -i -v" fails
> after saying "*** Loose ***" here, without moving to the packed
> test).

I think the issue is that nobody ever resets data->maybe_object. So it
is left cached with the very first object that gets looked up.

Something like this seems to fix it, but there may be a better place to
do the reset.

diff --git a/ref-filter.c b/ref-filter.c
index 7cfcd5c355..4c174f7ecc 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -2124,6 +2124,8 @@ static int grab_values(struct atom_value *val, int deref, struct expand_data *da
 	void *buf = data->content;
 	int ret;
 
+	data->maybe_object = NULL;
+
 	switch (data->type) {
 	case OBJ_TAG:
 		ret = grab_tag_values(val, deref, data, refname, err, eaten);

-Peff