git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/6] find_pack_entry(): document last_found_pack

From
Nicolas Pitre <nico@fluxnic.net>
Date
Feb 21, 2014, 17:15 UTC
Message-ID
<alpine.LFD.2.11.1402211214290.17677@knanqh.ubzr>
In-Reply-To
<1393000327-11402-4-git-send-email-mhagger@alum.mit.edu>
On Fri, 21 Feb 2014, Michael Haggerty wrote:
Show 6 quoted lines
> Add a comment at the declaration of last_found_pack and where it is
> used in find_pack_entry().  In the latter, separate the cases (1) to
> make a place for the new comment and (2) to turn the success case into
> affirmative logic.
> 
> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
REviewed-by: Nicolas Pitre <nico@fluxnic.net>
Show 47 quoted lines
> ---
>  sha1_file.c | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/sha1_file.c b/sha1_file.c
> index 6e8c05d..0910939 100644
> --- a/sha1_file.c
> +++ b/sha1_file.c
> @@ -60,6 +60,12 @@ static struct cached_object empty_tree = {
>  	0
>  };
>  
> +/*
> + * A pointer to the last packed_git in which an object was found.
> + * When an object is sought, we look in this packfile first, because
> + * objects that are looked up at similar times are often in the same
> + * packfile as one another.
> + */
>  static struct packed_git *last_found_pack;
>  
>  static struct cached_object *find_cached_object(const unsigned char *sha1)
> @@ -2460,11 +2466,13 @@ static int find_pack_entry(const unsigned char *sha1, struct pack_entry *e)
>  		return 1;
>  
>  	for (p = packed_git; p; p = p->next) {
> -		if (p == last_found_pack || !fill_pack_entry(sha1, e, p))
> -			continue;
> +		if (p == last_found_pack)
> +			continue; /* we already checked this one */
>  
> -		last_found_pack = p;
> -		return 1;
> +		if (fill_pack_entry(sha1, e, p)) {
> +			last_found_pack = p;
> +			return 1;
> +		}
>  	}
>  	return 0;
>  }
> -- 
> 1.8.5.3
> 
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
Previous: Michael HaggertyNext: Michael Haggerty
Message 11 of 23 in “Add a bunch of docstrings and make a few minor cleanups”
  1. 0/6 Add a bunch of docstrings and make a few minor cleanupsMichael Haggerty, Feb 21, 2014
  2. 1/6 Add docstrings for lookup_replace_object() and do_lookup_replace_object()Michael Haggerty, Feb 21, 2014
  3. Junio C HamanoFeb 21, 2014
  4. Michael HaggertyFeb 24, 2014
  5. Christian CouderFeb 24, 2014
  6. Michael HaggertyFeb 24, 2014
  7. Junio C HamanoFeb 24, 2014
  8. 2/6 replace_object: use struct members instead of an arrayMichael Haggerty, Feb 21, 2014
  9. Junio C HamanoFeb 21, 2014
  10. 3/6 find_pack_entry(): document last_found_packMichael Haggerty, Feb 21, 2014
  11. Nicolas PitreFeb 21, 2014
  12. 4/6 sha1_file_name(): declare to return a const stringMichael Haggerty, Feb 21, 2014
  13. 5/6 Document a bunch of functions defined in sha1_file.cMichael Haggerty, Feb 21, 2014
  14. Nicolas PitreFeb 21, 2014
  15. Jakub NarębskiFeb 24, 2014
  16. Michael HaggertyFeb 24, 2014
  17. Jonathan NiederFeb 24, 2014
  18. Michael HaggertyFeb 25, 2014
  19. 6/6 Document some functions defined in object.cMichael Haggerty, Feb 21, 2014
  20. Nicolas PitreFeb 21, 2014
  21. Michael HaggertyFeb 24, 2014
  22. Junio C HamanoFeb 24, 2014
  23. Junio C HamanoFeb 24, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.