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

[PATCH 5/9] packfile: add repository argument to packed_object_info

From
Stefan Beller <sbeller@google.com>
Date
Apr 23, 2018, 23:43 UTC
Message-ID
<20180423234327.250484-6-sbeller@google.com>
In-Reply-To
<20180423234327.250484-1-sbeller@google.com>
From: Jonathan Nieder <jrnieder@gmail.com>

Add a repository argument to allow callers of packed_object_info to be more specific about which repository to handle. This is a small mechanical change; it doesn't change the implementation to handle repositories other than the_repository yet.

As with the previous commits, use a macro to catch callers passing a repository other than the_repository at compile time.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
---
 builtin/pack-objects.c | 3 ++-
 packfile.c             | 4 ++--
 packfile.h             | 3 ++-
 sha1_file.c            | 3 ++-
 4 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 8d4111f748..d65eb4a947 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -1572,7 +1572,8 @@ static void drop_reused_delta(struct object_entry *entry)
 
 	oi.sizep = &entry->size;
 	oi.typep = &entry->type;
-	if (packed_object_info(entry->in_pack, entry->in_pack_offset, &oi) < 0) {
+	if (packed_object_info(the_repository, entry->in_pack,
+			       entry->in_pack_offset, &oi) < 0) {
 		/*
 		 * We failed to get the info from this pack for some reason;
 		 * fall back to sha1_object_info, which may find another copy.
diff --git a/packfile.c b/packfile.c
index 3ecfba66af..5fa7d27d3b 100644
--- a/packfile.c
+++ b/packfile.c
@@ -1333,8 +1333,8 @@ static void add_delta_base_cache(struct packed_git *p, off_t base_offset,
 	hashmap_add(&delta_base_cache, ent);
 }
 
-int packed_object_info(struct packed_git *p, off_t obj_offset,
-		       struct object_info *oi)
+int packed_object_info_the_repository(struct packed_git *p, off_t obj_offset,
+				      struct object_info *oi)
 {
 	struct pack_window *w_curs = NULL;
 	unsigned long size;
diff --git a/packfile.h b/packfile.h
index a92c0b241c..bc8d840b1b 100644
--- a/packfile.h
+++ b/packfile.h
@@ -125,7 +125,8 @@ extern void release_pack_memory(size_t);
 /* global flag to enable extra checks when accessing packed objects */
 extern int do_check_packed_object_crc;
 
-extern int packed_object_info(struct packed_git *pack, off_t offset, struct object_info *);
+#define packed_object_info(r, p, o, oi) packed_object_info_##r(p, o, oi)
+extern int packed_object_info_the_repository(struct packed_git *pack, off_t offset, struct object_info *);
 
 extern void mark_bad_packed_object(struct packed_git *p, const unsigned char *sha1);
 extern const struct packed_git *has_packed_and_bad(const unsigned char *sha1);
diff --git a/sha1_file.c b/sha1_file.c
index 93f25c6c6a..b292e04fd3 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -1307,7 +1307,8 @@ int oid_object_info_extended_the_repository(const struct object_id *oid, struct
 		 * information below, so return early.
 		 */
 		return 0;
-	rtype = packed_object_info(e.p, e.offset, oi);
+
+	rtype = packed_object_info(the_repository, e.p, e.offset, oi);
 	if (rtype < 0) {
 		mark_bad_packed_object(e.p, real->hash);
 		return oid_object_info_extended(the_repository, real, oi, 0);
-- 
2.17.0.484.g0c8726318c-goog
Previous: Stefan BellerNext: Jonathan Tan
Message 8 of 19 in “object store: oid_object_info is the next contender”
  1. 0/9 object store: oid_object_info is the next contenderStefan Beller, Apr 23, 2018
  2. 1/9 cache.h: add repository argument to oid_object_info_extendedStefan Beller, Apr 23, 2018
  3. 2/9 cache.h: add repository argument to oid_object_infoStefan Beller, Apr 23, 2018
  4. brian m. carlsonApr 24, 2018
  5. Jonathan TanApr 24, 2018
  6. 3/9 packfile: add repository argument to retry_bad_packed_offsetStefan Beller, Apr 23, 2018
  7. 6/9 packfile: add repository argument to read_objectStefan Beller, Apr 23, 2018
  8. 5/9 packfile: add repository argument to packed_object_infoStefan Beller, Apr 23, 2018
  9. Jonathan TanApr 24, 2018
  10. Junio C HamanoApr 25, 2018
  11. 4/9 packfile: add repository argument to packed_to_object_typeStefan Beller, Apr 23, 2018
  12. 7/9 packfile: add repository argument to unpack_entryStefan Beller, Apr 23, 2018
  13. 8/9 packfile: add repository argument to cache_or_unpack_entryStefan Beller, Apr 23, 2018
  14. 9/9 cache.h: allow sha1_object_info to handle arbitrary repositoriesStefan Beller, Apr 23, 2018
  15. brian m. carlsonApr 24, 2018
  16. Stefan BellerApr 24, 2018
  17. Jonathan TanApr 24, 2018
  18. Brandon WilliamsApr 24, 2018
  19. Jonathan TanApr 24, 2018

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.