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

[PATCH v2 05/17] Do not check the same head_pos twice

From
mhagger@alum.mit.edu <mhagger@alum.mit.edu>
Date
Aug 25, 2012, 06:44 UTC
Message-ID
<1345877067-11841-6-git-send-email-mhagger@alum.mit.edu>
In-Reply-To
<1345877067-11841-1-git-send-email-mhagger@alum.mit.edu>
From: Michael Haggerty <mhagger@alum.mit.edu>

Once a match has been found at head_pos, the entry is zeroed and no future attempts will match that entry. So increment head_pos to avoid checking against the zeroed-out entry during the next iteration.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
---
 builtin/fetch-pack.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/builtin/fetch-pack.c b/builtin/fetch-pack.c
index 76288a2..bda3c0c 100644
--- a/builtin/fetch-pack.c
+++ b/builtin/fetch-pack.c
@@ -561,8 +561,8 @@ static void filter_refs(struct ref **refs, int nr_heads, char **heads)
 				if (cmp < 0) /* definitely do not have it */
 					break;
 				else if (cmp == 0) { /* definitely have it */
-					heads[head_pos][0] = '\0';
 					return_refs[head_pos] = ref;
+					heads[head_pos++][0] = '\0';
 					break;
 				}
 				else /* might have it; keep looking */
-- 
1.7.11.3
Previous: mhagger@alum.mit.eduNext: mhagger@alum.mit.edu
Message 6 of 19 in “Clean up how fetch_pack() handles the heads list”
  1. 00/17 Clean up how fetch_pack() handles the heads listmhagger@alum.mit.edu, Aug 25, 2012
  2. 01/17 t5500: add tests of error output for missing refsmhagger@alum.mit.edu, Aug 25, 2012
  3. 02/17 Rename static function fetch_pack() to http_fetch_pack()mhagger@alum.mit.edu, Aug 25, 2012
  4. 03/17 Fix formatting.mhagger@alum.mit.edu, Aug 25, 2012
  5. 04/17 Name local variables more consistentlymhagger@alum.mit.edu, Aug 25, 2012
  6. 05/17 Do not check the same head_pos twicemhagger@alum.mit.edu, Aug 25, 2012
  7. 06/17 Let fetch_pack() inform caller about number of unique headsmhagger@alum.mit.edu, Aug 25, 2012
  8. 07/17 Pass nr_heads to do_pack_ref() by referencemhagger@alum.mit.edu, Aug 25, 2012
  9. 08/17 Pass nr_heads to everything_local() by referencemhagger@alum.mit.edu, Aug 25, 2012
  10. 09/17 Pass nr_heads to filter_refs() by referencemhagger@alum.mit.edu, Aug 25, 2012
  11. 10/17 Remove ineffective optimizationmhagger@alum.mit.edu, Aug 25, 2012
  12. 11/17 filter_refs(): do not leave gaps in return_refsmhagger@alum.mit.edu, Aug 25, 2012
  13. 12/17 filter_refs(): compress unmatched refs in heads arraymhagger@alum.mit.edu, Aug 25, 2012
  14. 13/17 cmd_fetch_pack: return early if finish_connect() returns an errormhagger@alum.mit.edu, Aug 25, 2012
  15. 14/17 Report missing refs even if no existing refs were receivedmhagger@alum.mit.edu, Aug 25, 2012
  16. 15/17 cmd_fetch_pack(): simplify computation of return valuemhagger@alum.mit.edu, Aug 25, 2012
  17. 16/17 fetch_pack(): free matching headsmhagger@alum.mit.edu, Aug 25, 2012
  18. 17/17 filter_refs(): simplify logicmhagger@alum.mit.edu, Aug 25, 2012
  19. Junio C HamanoAug 26, 2012

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.