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

[PATCH 11/36] http-walker: convert struct object_request to use struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Feb 19, 2018, 22:59 UTC
Message-ID
<20180219225927.386065-12-sandals@crustytoothpaste.net>
In-Reply-To
<20180219225927.386065-1-sandals@crustytoothpaste.net>

Convert struct object_request to use struct object_id by updating the definition and applying the following semantic patch, plus the standard object_id transforms:

@@
struct object_request E1;
@@
- E1.sha1
+ E1.oid.hash
@@
struct object_request *E1;
@@
- E1->sha1
+ E1->oid.hash
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 http-walker.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/http-walker.c b/http-walker.c
index 07c2b1af82..f506f394ac 100644
--- a/http-walker.c
+++ b/http-walker.c
@@ -22,7 +22,7 @@ enum object_request_state {
 
 struct object_request {
 	struct walker *walker;
-	unsigned char sha1[20];
+	struct object_id oid;
 	struct alt_base *repo;
 	enum object_request_state state;
 	struct http_object_request *req;
@@ -56,7 +56,7 @@ static void start_object_request(struct walker *walker,
 	struct active_request_slot *slot;
 	struct http_object_request *req;
 
-	req = new_http_object_request(obj_req->repo->base, obj_req->sha1);
+	req = new_http_object_request(obj_req->repo->base, obj_req->oid.hash);
 	if (req == NULL) {
 		obj_req->state = ABORTED;
 		return;
@@ -82,7 +82,7 @@ static void finish_object_request(struct object_request *obj_req)
 		return;
 
 	if (obj_req->req->rename == 0)
-		walker_say(obj_req->walker, "got %s\n", sha1_to_hex(obj_req->sha1));
+		walker_say(obj_req->walker, "got %s\n", oid_to_hex(&obj_req->oid));
 }
 
 static void process_object_response(void *callback_data)
@@ -129,7 +129,7 @@ static int fill_active_slot(struct walker *walker)
 	list_for_each_safe(pos, tmp, head) {
 		obj_req = list_entry(pos, struct object_request, node);
 		if (obj_req->state == WAITING) {
-			if (has_sha1_file(obj_req->sha1))
+			if (has_sha1_file(obj_req->oid.hash))
 				obj_req->state = COMPLETE;
 			else {
 				start_object_request(walker, obj_req);
@@ -148,7 +148,7 @@ static void prefetch(struct walker *walker, unsigned char *sha1)
 
 	newreq = xmalloc(sizeof(*newreq));
 	newreq->walker = walker;
-	hashcpy(newreq->sha1, sha1);
+	hashcpy(newreq->oid.hash, sha1);
 	newreq->repo = data->alt;
 	newreq->state = WAITING;
 	newreq->req = NULL;
@@ -481,13 +481,13 @@ static int fetch_object(struct walker *walker, unsigned char *sha1)
 
 	list_for_each(pos, head) {
 		obj_req = list_entry(pos, struct object_request, node);
-		if (!hashcmp(obj_req->sha1, sha1))
+		if (!hashcmp(obj_req->oid.hash, sha1))
 			break;
 	}
 	if (obj_req == NULL)
 		return error("Couldn't find request for %s in the queue", hex);
 
-	if (has_sha1_file(obj_req->sha1)) {
+	if (has_sha1_file(obj_req->oid.hash)) {
 		if (obj_req->req != NULL)
 			abort_http_object_request(obj_req->req);
 		abort_object_request(obj_req);
@@ -541,7 +541,7 @@ static int fetch_object(struct walker *walker, unsigned char *sha1)
 	} else if (req->zret != Z_STREAM_END) {
 		walker->corrupt_object_found++;
 		ret = error("File %s (%s) corrupt", hex, req->url);
-	} else if (hashcmp(obj_req->sha1, req->real_sha1)) {
+	} else if (hashcmp(obj_req->oid.hash, req->real_sha1)) {
 		ret = error("File %s has bad hash", hex);
 	} else if (req->rename < 0) {
 		struct strbuf buf = STRBUF_INIT;
Previous: brian m. carlsonNext: Junio C Hamano
Message 37 of 39 in “object_id part 12”
  1. 00/36 object_id part 12brian m. carlson, Feb 19, 2018
  2. 01/36 bulk-checkin: convert index_bulk_checkin to struct object_idbrian m. carlson, Feb 19, 2018
  3. 02/36 builtin/write-tree: convert to struct object_idbrian m. carlson, Feb 19, 2018
  4. 03/36 cache-tree: convert write_*_as_tree to object_idbrian m. carlson, Feb 19, 2018
  5. 07/36 ref-filter: convert grab_objectname to struct object_idbrian m. carlson, Feb 19, 2018
  6. 13/36 replace_object: convert struct replace_object to object_idbrian m. carlson, Feb 19, 2018
  7. 14/36 builtin/mktag: convert to struct object_idbrian m. carlson, Feb 19, 2018
  8. 18/36 sha1_file: convert read_loose_object to use struct object_idbrian m. carlson, Feb 19, 2018
  9. 20/36 streaming: convert open_istream to use struct object_idbrian m. carlson, Feb 19, 2018
  10. 21/36 builtin/mktree: convert to struct object_idbrian m. carlson, Feb 19, 2018
  11. 24/36 packfile: convert unpack_entry to struct object_idbrian m. carlson, Feb 19, 2018
  12. 22/36 sha1_file: convert assert_sha1_type to object_idbrian m. carlson, Feb 19, 2018
  13. 29/36 tree-walk: convert get_tree_entry_follow_symlinks internals to object_idbrian m. carlson, Feb 19, 2018
  14. 31/36 tree-walk: convert tree entry functions to object_idbrian m. carlson, Feb 19, 2018
  15. 32/36 sha1_file: convert read_object_with_reference to object_idbrian m. carlson, Feb 19, 2018
  16. 35/36 sha1_file: introduce a constant for max header lengthbrian m. carlson, Feb 19, 2018
  17. 33/36 sha1_file: convert read_sha1_file to struct object_idbrian m. carlson, Feb 19, 2018
  18. 34/36 Convert lookup_replace_object to struct object_idbrian m. carlson, Feb 19, 2018
  19. 23/36 sha1_file: convert retry_bad_packed_offset to struct object_idbrian m. carlson, Feb 19, 2018
  20. 28/36 builtin/notes: convert static functions to object_idbrian m. carlson, Feb 19, 2018
  21. 30/36 streaming: convert istream internals to struct object_idbrian m. carlson, Feb 19, 2018
  22. 36/36 convert: convert to struct object_idbrian m. carlson, Feb 19, 2018
  23. 25/36 Convert remaining callers of sha1_object_info_extended to object_idbrian m. carlson, Feb 19, 2018
  24. 26/36 sha1_file: convert sha1_object_info* to object_idbrian m. carlson, Feb 19, 2018
  25. 27/36 builtin/fmt-merge-msg: convert remaining code to object_idbrian m. carlson, Feb 19, 2018
  26. 19/36 sha1_file: convert check_sha1_signature to struct object_idbrian m. carlson, Feb 19, 2018
  27. 17/36 builtin/index-pack: convert struct ref_delta_entry to object_idbrian m. carlson, Feb 19, 2018
  28. 06/36 tree: convert read_tree_recursive to struct object_idbrian m. carlson, Feb 19, 2018
  29. 15/36 archive: convert write_archive_entry_fn_t to object_idbrian m. carlson, Feb 19, 2018
  30. 16/36 archive: convert sha1_file_to_archive to struct object_idbrian m. carlson, Feb 19, 2018
  31. 09/36 wt-status: convert struct wt_status_state to object_idbrian m. carlson, Feb 19, 2018
  32. 12/36 send-pack: convert remaining functions to struct object_idbrian m. carlson, Feb 19, 2018
  33. 08/36 strbuf: convert strbuf_add_unique_abbrev to use struct object_idbrian m. carlson, Feb 19, 2018
  34. 05/36 resolve-undo: convert struct resolve_undo_info to object_idbrian m. carlson, Feb 19, 2018
  35. 04/36 cache-tree: convert remnants to struct object_idbrian m. carlson, Feb 19, 2018
  36. 10/36 Convert find_unique_abbrev* to struct object_idbrian m. carlson, Feb 19, 2018
  37. 11/36 http-walker: convert struct object_request to use struct object_idbrian m. carlson, Feb 19, 2018
  38. Junio C HamanoFeb 21, 2018
  39. brian m. carlsonFeb 22, 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.