All of lore.kernel.org
 help / color / mirror / Atom feed
From: Taylor Blau <me@ttaylorr.com>
To: Jeff King <peff@peff.net>
Cc: fox <fox.gbr@townlong-yak.com>,
	Eric Sunshine <sunshine@sunshineco.com>,
	git@vger.kernel.org
Subject: Re: [PATCH 10/11] packfile: use object_id in find_pack_entry_one()
Date: Fri, 25 Oct 2024 17:33:39 -0400	[thread overview]
Message-ID: <ZxwOs23zYByRmMap@nand.local> (raw)
In-Reply-To: <20241025070606.GJ2110355@coredump.intra.peff.net>

On Fri, Oct 25, 2024 at 03:06:06AM -0400, Jeff King wrote:
> The one exception is get_delta_base() in packfile.c, when we are chasing
> a REF_DELTA from inside the pack (and thus we have a pointer directly to
> the mmap'd pack memory, not a struct). We can just bump the hashcpy()
> from inside find_pack_entry_one() to this one caller that needs it.

Makes sense.

> diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
> index 0fc0680b40..0800714267 100644
> --- a/builtin/pack-objects.c
> +++ b/builtin/pack-objects.c
> @@ -1556,7 +1556,7 @@ static int want_object_in_pack_one(struct packed_git *p,
>  	if (p == *found_pack)
>  		offset = *found_offset;
>  	else
> -		offset = find_pack_entry_one(oid->hash, p);
> +		offset = find_pack_entry_one(oid, p);

This and all of the similar changes that follow it are trivially correct
and pleasing to read.

> diff --git a/packfile.c b/packfile.c
> index c51eab15a5..005ca670b4 100644
> --- a/packfile.c
> +++ b/packfile.c
> @@ -1239,7 +1239,9 @@ off_t get_delta_base(struct packed_git *p,
>  		*curpos += used;
>  	} else if (type == OBJ_REF_DELTA) {
>  		/* The base entry _must_ be in the same pack */
> -		base_offset = find_pack_entry_one(base_info, p);
> +		struct object_id oid;
> +		hashcpy(oid.hash, base_info, the_repository->hash_algo);
> +		base_offset = find_pack_entry_one(&oid, p);

Here's the one that needed to turn its bare hash into an object_id that
it can pass a pointer to. And...

> @@ -1971,20 +1973,18 @@ off_t nth_packed_object_offset(const struct packed_git *p, uint32_t n)
>  	}
>  }
>
> -off_t find_pack_entry_one(const unsigned char *sha1,
> -				  struct packed_git *p)
> +off_t find_pack_entry_one(const struct object_id *oid,
> +			  struct packed_git *p)
>  {
>  	const unsigned char *index = p->index_data;
> -	struct object_id oid;
>  	uint32_t result;
>
>  	if (!index) {
>  		if (open_pack_index(p))
>  			return 0;
>  	}
>
> -	hashcpy(oid.hash, sha1, the_repository->hash_algo);

...here's the original location of that hashcpy() that moved to its only
useful caller in get_delta_base(). Makes sense.

The remaining conversions are trivial.

Thanks,
Taylor

  reply	other threads:[~2024-10-25 21:33 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-19 23:22 Bug report: v2.47.0 cannot fetch version 1 pack indexes fox
2024-10-20  0:37 ` Eric Sunshine
2024-10-21 20:06   ` Taylor Blau
2024-10-20  1:24 ` Jeff King
2024-10-20  2:40   ` Jeff King
2024-10-21 20:33     ` Taylor Blau
2024-10-22  5:14       ` Jeff King
2024-10-22 15:18         ` Taylor Blau
2024-10-25  6:41         ` [PATCH 0/11] dumb-http pack index v1 regression + cleanups Jeff King
2024-10-25  6:43           ` [PATCH 01/11] midx: avoid duplicate packed_git entries Jeff King
2024-10-25 21:09             ` Taylor Blau
2024-10-25  6:44           ` [PATCH 02/11] t5550: count fetches in "previously-fetched .idx" test Jeff King
2024-10-25  6:58           ` [PATCH 03/11] dumb-http: store downloaded pack idx as tempfile Jeff King
2024-10-25 21:18             ` Taylor Blau
2024-10-26  6:02               ` Jeff King
2024-10-28  0:14                 ` Taylor Blau
2024-10-25  7:00           ` [PATCH 04/11] packfile: drop has_pack_index() Jeff King
2024-10-25 21:27             ` Taylor Blau
2024-10-25  7:00           ` [PATCH 05/11] packfile: drop sha1_pack_name() Jeff King
2024-10-25  7:01           ` [PATCH 06/11] packfile: drop sha1_pack_index_name() Jeff King
2024-10-25  7:02           ` [PATCH 07/11] packfile: warn people away from parse_packed_git() Jeff King
2024-10-25 21:28             ` Taylor Blau
2024-10-25  7:03           ` [PATCH 08/11] http-walker: use object_id instead of bare hash Jeff King
2024-10-25  7:05           ` [PATCH 09/11] packfile: convert find_sha1_pack() to use object_id Jeff King
2024-10-25  7:06           ` [PATCH 10/11] packfile: use object_id in find_pack_entry_one() Jeff King
2024-10-25 21:33             ` Taylor Blau [this message]
2024-10-25  7:08           ` [PATCH 11/11] packfile: use oidread() instead of hashcpy() to fill object_id Jeff King
2024-10-25 21:35           ` [PATCH 0/11] dumb-http pack index v1 regression + cleanups Taylor Blau
2024-10-21 20:23   ` Bug report: v2.47.0 cannot fetch version 1 pack indexes Taylor Blau
2024-10-22  5:00     ` Jeff King
2024-10-22 15:50       ` Taylor Blau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZxwOs23zYByRmMap@nand.local \
    --to=me@ttaylorr.com \
    --cc=fox.gbr@townlong-yak.com \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.