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

[PATCH v3 29/32] object.c: allow parse_object to handle arbitrary repositories

From
Stefan Beller <sbeller@google.com>
Date
Jun 29, 2018, 01:22 UTC
Message-ID
<20180629012222.167426-30-sbeller@google.com>
In-Reply-To
<20180629012222.167426-1-sbeller@google.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
---
 object.c | 14 +++++++-------
 object.h |  3 +--
 2 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/object.c b/object.c
index cd870fee22b..b0faab85d40 100644
--- a/object.c
+++ b/object.c
@@ -245,28 +245,28 @@ struct object *parse_object_or_die(const struct object_id *oid,
 	die(_("unable to parse object: %s"), name ? name : oid_to_hex(oid));
 }
 
-struct object *parse_object_the_repository(const struct object_id *oid)
+struct object *parse_object(struct repository *r, const struct object_id *oid)
 {
 	unsigned long size;
 	enum object_type type;
 	int eaten;
-	const struct object_id *repl = lookup_replace_object(the_repository, oid);
+	const struct object_id *repl = lookup_replace_object(r, oid);
 	void *buffer;
 	struct object *obj;
 
-	obj = lookup_object(the_repository, oid->hash);
+	obj = lookup_object(r, oid->hash);
 	if (obj && obj->parsed)
 		return obj;
 
 	if ((obj && obj->type == OBJ_BLOB && has_object_file(oid)) ||
 	    (!obj && has_object_file(oid) &&
-	     oid_object_info(the_repository, oid, NULL) == OBJ_BLOB)) {
+	     oid_object_info(r, oid, NULL) == OBJ_BLOB)) {
 		if (check_object_signature(repl, NULL, 0, NULL) < 0) {
 			error("sha1 mismatch %s", oid_to_hex(oid));
 			return NULL;
 		}
-		parse_blob_buffer(lookup_blob(the_repository, oid), NULL, 0);
-		return lookup_object(the_repository, oid->hash);
+		parse_blob_buffer(lookup_blob(r, oid), NULL, 0);
+		return lookup_object(r, oid->hash);
 	}
 
 	buffer = read_object_file(oid, &type, &size);
@@ -277,7 +277,7 @@ struct object *parse_object_the_repository(const struct object_id *oid)
 			return NULL;
 		}
 
-		obj = parse_object_buffer(the_repository, oid, type, size,
+		obj = parse_object_buffer(r, oid, type, size,
 					  buffer, &eaten);
 		if (!eaten)
 			free(buffer);
diff --git a/object.h b/object.h
index 38198bb73a1..fa5ca975678 100644
--- a/object.h
+++ b/object.h
@@ -124,8 +124,7 @@ void *object_as_type(struct repository *r, struct object *obj, enum object_type
  *
  * Returns NULL if the object is missing or corrupt.
  */
-#define parse_object(r, oid) parse_object_##r(oid)
-struct object *parse_object_the_repository(const struct object_id *oid);
+struct object *parse_object(struct repository *r, const struct object_id *oid);
 
 /*
  * Like parse_object, but will die() instead of returning NULL. If the
-- 
2.18.0.399.gad0ab374a1-goog
Previous: Stefan BellerNext: Stefan Beller
Message 27 of 42 in “object-store: lookup_commit”
  1. 00/32 object-store: lookup_commitStefan Beller, Jun 29, 2018
  2. 02/32 object: add repository argument to lookup_objectStefan Beller, Jun 29, 2018
  3. 01/32 object: add repository argument to parse_objectStefan Beller, Jun 29, 2018
  4. 03/32 object: add repository argument to parse_object_bufferStefan Beller, Jun 29, 2018
  5. 05/32 blob: add repository argument to lookup_blobStefan Beller, Jun 29, 2018
  6. 04/32 object: add repository argument to object_as_typeStefan Beller, Jun 29, 2018
  7. 08/32 commit: add repository argument to lookup_commit_referenceStefan Beller, Jun 29, 2018
  8. 10/32 commit: add repository argument to parse_commit_bufferStefan Beller, Jun 29, 2018
  9. Derrick StoleeJun 29, 2018
  10. 06/32 tree: add repository argument to lookup_treeStefan Beller, Jun 29, 2018
  11. 11/32 commit: add repository argument to set_commit_bufferStefan Beller, Jun 29, 2018
  12. 12/32 commit: add repository argument to get_cached_commit_bufferStefan Beller, Jun 29, 2018
  13. 14/32 tag: add repository argument to parse_tag_bufferStefan Beller, Jun 29, 2018
  14. 15/32 tag: add repository argument to deref_tagStefan Beller, Jun 29, 2018
  15. 16/32 object: allow object_as_type to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  16. 17/32 object: allow lookup_object to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  17. 18/32 blob: allow lookup_blob to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  18. 19/32 tree: allow lookup_tree to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  19. 20/32 commit: allow lookup_commit to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  20. 21/32 tag: allow lookup_tag to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  21. 23/32 commit.c: allow parse_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  22. 24/32 commit-slabs: remove realloc counter outside of slab structStefan Beller, Jun 29, 2018
  23. 25/32 commit.c: migrate the commit buffer to the parsed object storeStefan Beller, Jun 29, 2018
  24. 26/32 commit.c: allow set_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  25. 28/32 object.c: allow parse_object_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  26. 30/32 tag.c: allow deref_tag to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  27. 29/32 object.c: allow parse_object to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  28. 31/32 commit.c: allow lookup_commit_reference_gently to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  29. 32/32 commit.c: allow lookup_commit_reference to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  30. 22/32 tag: allow parse_tag_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  31. 27/32 commit.c: allow get_cached_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 29, 2018
  32. 07/32 commit: add repository argument to lookup_commit_reference_gentlyStefan Beller, Jun 29, 2018
  33. 09/32 commit: add repository argument to lookup_commitStefan Beller, Jun 29, 2018
  34. Derrick StoleeJun 29, 2018
  35. 13/32 tag: add repository argument to lookup_tagStefan Beller, Jun 29, 2018
  36. Derrick StoleeJun 29, 2018
  37. Junio C HamanoJun 29, 2018
  38. Junio C HamanoJun 29, 2018
  39. Stefan BellerJun 29, 2018
  40. Junio C HamanoJun 29, 2018
  41. Brandon WilliamsJun 29, 2018
  42. Junio C HamanoJul 3, 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.