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

[PATCH 2/8] fast-import: cache oe in parse_new_tag

From
Dmitry Ivankov <divanorama@gmail.com>
Date
Sep 19, 2011, 01:27 UTC
Message-ID
<1316395657-6991-3-git-send-email-divanorama@gmail.com>
In-Reply-To
<1316395657-6991-1-git-send-email-divanorama@gmail.com>

parse_new_tag uses sha1_object_info to find out the type of an object given by a sha1 expression. But doesn't cache it in struct object_entry.

Make this call to sha1_object_info cached in struct object_entry.
Signed-off-by: Dmitry Ivankov <divanorama@gmail.com>
---
 fast-import.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/fast-import.c b/fast-import.c
index 42f9b17..2b049f7 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -2732,11 +2732,14 @@ static void parse_new_tag(void)
 		type = oe->type;
 		hashcpy(sha1, oe->idx.sha1);
 	} else if (!get_sha1(from, sha1)) {
-		struct object_entry *oe = find_object(sha1);
-		if (!oe) {
+		struct object_entry *oe = insert_object(sha1);
+		if (!oe->idx.offset) {
 			type = sha1_object_info(sha1, NULL);
 			if (type < 0)
 				die("Not a valid object: %s", from);
+			oe->type = type;
+			oe->pack_id = MAX_PACK_ID;
+			oe->idx.offset = 1; /* nonzero */
 		} else
 			type = oe->type;
 	} else
-- 
1.7.3.4
Previous: Dmitry IvankovNext: Dmitry Ivankov
Message 3 of 13 in “fast-import: cache oe more often”
  1. 0/8 fast-import: cache oe more oftenDmitry Ivankov, Sep 19, 2011
  2. 1/8 fast-import: cache oe in file_change_mDmitry Ivankov, Sep 19, 2011
  3. 2/8 fast-import: cache oe in parse_new_tagDmitry Ivankov, Sep 19, 2011
  4. 3/8 fast-import: cache oe in note_change_nDmitry Ivankov, Sep 19, 2011
  5. 4/8 fast-import: extract common sha1_file access functionsDmitry Ivankov, Sep 19, 2011
  6. 5/8 fast-import: tiny optimization in read_marksDmitry Ivankov, Sep 19, 2011
  7. 6/8 fast-import: cache oe in load_treeDmitry Ivankov, Sep 19, 2011
  8. 7/8 fast-import: cache oe in cat_blobDmitry Ivankov, Sep 19, 2011
  9. 8/8 fast-import: cache objects while dereferencingDmitry Ivankov, Sep 19, 2011
  10. Junio C HamanoSep 20, 2011
  11. Jonathan NiederSep 20, 2011
  12. Dmitry IvankovSep 20, 2011
  13. Jonathan NiederSep 20, 2011

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.