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

[PATCH v2 16/42] Update struct index_state to use struct object_id

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
May 2, 2018, 00:25 UTC
Message-ID
<20180502002610.915892-17-sandals@crustytoothpaste.net>
In-Reply-To
<20180502002610.915892-1-sandals@crustytoothpaste.net>

Adjust struct index_state to use struct object_id instead of unsigned char [20].

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 cache.h                          |  2 +-
 read-cache.c                     | 16 ++++++++--------
 t/helper/test-dump-split-index.c |  2 +-
 unpack-trees.c                   |  2 +-
 4 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/cache.h b/cache.h
index f06737fb78..37d081b8e4 100644
--- a/cache.h
+++ b/cache.h
@@ -324,7 +324,7 @@ struct index_state {
 		 drop_cache_tree : 1;
 	struct hashmap name_hash;
 	struct hashmap dir_hash;
-	unsigned char sha1[20];
+	struct object_id oid;
 	struct untracked_cache *untracked;
 	uint64_t fsmonitor_last_update;
 	struct ewah_bitmap *fsmonitor_dirty;
diff --git a/read-cache.c b/read-cache.c
index f47666b975..9dbaeeec43 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1806,7 +1806,7 @@ int do_read_index(struct index_state *istate, const char *path, int must_exist)
 	if (verify_hdr(hdr, mmap_size) < 0)
 		goto unmap;
 
-	hashcpy(istate->sha1, (const unsigned char *)hdr + mmap_size - the_hash_algo->rawsz);
+	hashcpy(istate->oid.hash, (const unsigned char *)hdr + mmap_size - the_hash_algo->rawsz);
 	istate->version = ntohl(hdr->hdr_version);
 	istate->cache_nr = ntohl(hdr->hdr_entries);
 	istate->cache_alloc = alloc_nr(istate->cache_nr);
@@ -1902,10 +1902,10 @@ int read_index_from(struct index_state *istate, const char *path,
 	base_oid_hex = oid_to_hex(&split_index->base_oid);
 	base_path = xstrfmt("%s/sharedindex.%s", gitdir, base_oid_hex);
 	ret = do_read_index(split_index->base, base_path, 1);
-	if (hashcmp(split_index->base_oid.hash, split_index->base->sha1))
+	if (oidcmp(&split_index->base_oid, &split_index->base->oid))
 		die("broken index, expect %s in %s, got %s",
 		    base_oid_hex, base_path,
-		    sha1_to_hex(split_index->base->sha1));
+		    oid_to_hex(&split_index->base->oid));
 
 	freshen_shared_index(base_path, 0);
 	merge_base_index(istate);
@@ -2194,7 +2194,7 @@ static int verify_index_from(const struct index_state *istate, const char *path)
 	if (n != the_hash_algo->rawsz)
 		goto out;
 
-	if (hashcmp(istate->sha1, hash))
+	if (hashcmp(istate->oid.hash, hash))
 		goto out;
 
 	close(fd);
@@ -2373,7 +2373,7 @@ static int do_write_index(struct index_state *istate, struct tempfile *tempfile,
 			return -1;
 	}
 
-	if (ce_flush(&c, newfd, istate->sha1))
+	if (ce_flush(&c, newfd, istate->oid.hash))
 		return -1;
 	if (close_tempfile_gently(tempfile)) {
 		error(_("could not close '%s'"), tempfile->filename.buf);
@@ -2497,10 +2497,10 @@ static int write_shared_index(struct index_state *istate,
 		return ret;
 	}
 	ret = rename_tempfile(temp,
-			      git_path("sharedindex.%s", sha1_to_hex(si->base->sha1)));
+			      git_path("sharedindex.%s", oid_to_hex(&si->base->oid)));
 	if (!ret) {
-		hashcpy(si->base_oid.hash, si->base->sha1);
-		clean_shared_index_files(sha1_to_hex(si->base->sha1));
+		oidcpy(&si->base_oid, &si->base->oid);
+		clean_shared_index_files(oid_to_hex(&si->base->oid));
 	}
 
 	return ret;
diff --git a/t/helper/test-dump-split-index.c b/t/helper/test-dump-split-index.c
index 754e9bb624..63c689d6ee 100644
--- a/t/helper/test-dump-split-index.c
+++ b/t/helper/test-dump-split-index.c
@@ -14,7 +14,7 @@ int cmd__dump_split_index(int ac, const char **av)
 	int i;
 
 	do_read_index(&the_index, av[1], 1);
-	printf("own %s\n", sha1_to_hex(the_index.sha1));
+	printf("own %s\n", oid_to_hex(&the_index.oid));
 	si = the_index.split_index;
 	if (!si) {
 		printf("not a split index\n");
diff --git a/unpack-trees.c b/unpack-trees.c
index e73745051e..038ef7b926 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -1287,7 +1287,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
 	o->result.split_index = o->src_index->split_index;
 	if (o->result.split_index)
 		o->result.split_index->refcount++;
-	hashcpy(o->result.sha1, o->src_index->sha1);
+	oidcpy(&o->result.oid, &o->src_index->oid);
 	o->merge_size = len;
 	mark_all_ce_unused(o->src_index);
 
Previous: brian m. carlsonNext: brian m. carlson
Message 37 of 45 in “object_id part 13”
  1. 00/42 object_id part 13brian m. carlson, May 2, 2018
  2. 01/42 cache: add a function to read an object ID from a bufferbrian m. carlson, May 2, 2018
  3. 02/42 server-info: remove unused members from struct pack_infobrian m. carlson, May 2, 2018
  4. 06/42 sha1-file: convert freshen functions to object_idbrian m. carlson, May 2, 2018
  5. 07/42 packfile: convert find_pack_entry to object_idbrian m. carlson, May 2, 2018
  6. 11/42 tree-walk: avoid hard-coded 20 constantbrian m. carlson, May 2, 2018
  7. 05/42 packfile: convert has_sha1_pack to object_idbrian m. carlson, May 2, 2018
  8. 13/42 fsck: convert static functions to struct object_idbrian m. carlson, May 2, 2018
  9. 17/42 pack-redundant: convert linked lists to use struct object_idbrian m. carlson, May 2, 2018
  10. 15/42 split-index: convert struct split_index to object_idbrian m. carlson, May 2, 2018
  11. 14/42 submodule-config: convert structures to object_idbrian m. carlson, May 2, 2018
  12. 18/42 index-pack: abstract away hash function constantbrian m. carlson, May 2, 2018
  13. 12/42 tree-walk: convert get_tree_entry_follow_symlinks to object_idbrian m. carlson, May 2, 2018
  14. 10/42 pack-redundant: abstract away hash algorithmbrian m. carlson, May 2, 2018
  15. 09/42 pack-objects: abstract away hash algorithmbrian m. carlson, May 2, 2018
  16. 27/42 builtin/am: convert uses of EMPTY_TREE_SHA1_BIN to the_hash_algobrian m. carlson, May 2, 2018
  17. 28/42 builtin/merge: switch tree functions to use object_idbrian m. carlson, May 2, 2018
  18. 25/42 builtin/receive-pack: avoid hard-coded constants for push certsbrian m. carlson, May 2, 2018
  19. 35/42 sha1_file: convert cached object code to struct object_idbrian m. carlson, May 2, 2018
  20. 38/42 dir: use the_hash_algo for empty blob object IDbrian m. carlson, May 2, 2018
  21. 37/42 sequencer: use the_hash_algo for empty tree object IDbrian m. carlson, May 2, 2018
  22. 36/42 cache-tree: use is_empty_tree_oidbrian m. carlson, May 2, 2018
  23. 41/42 add--interactive: compute the empty tree valuebrian m. carlson, May 2, 2018
  24. 39/42 sha1_file: only expose empty object constants through git_hash_algobrian m. carlson, May 2, 2018
  25. 26/42 sha1-file: add functions for hex empty tree and blob OIDsbrian m. carlson, May 2, 2018
  26. 42/42 merge-one-file: compute empty blob object IDbrian m. carlson, May 2, 2018
  27. 40/42 Update shell scripts to compute empty tree object IDbrian m. carlson, May 2, 2018
  28. 34/42 builtin/reset: convert use of EMPTY_TREE_SHA1_BINbrian m. carlson, May 2, 2018
  29. 33/42 builtin/receive-pack: convert one use of EMPTY_TREE_SHA1_HEXbrian m. carlson, May 2, 2018
  30. 32/42 wt-status: convert two uses of EMPTY_TREE_SHA1_HEXbrian m. carlson, May 2, 2018
  31. 31/42 submodule: convert several uses of EMPTY_TREE_SHA1_HEXbrian m. carlson, May 2, 2018
  32. 30/42 sequencer: convert one use of EMPTY_TREE_SHA1_HEXbrian m. carlson, May 2, 2018
  33. 29/42 merge: convert empty tree constant to the_hash_algobrian m. carlson, May 2, 2018
  34. 23/42 upload-pack: replace use of several hard-coded constantsbrian m. carlson, May 2, 2018
  35. 22/42 revision: replace use of hard-coded constantsbrian m. carlson, May 2, 2018
  36. 24/42 diff: specify abbreviation size in terms of the_hash_algobrian m. carlson, May 2, 2018
  37. 16/42 Update struct index_state to use struct object_idbrian m. carlson, May 2, 2018
  38. 21/42 http: eliminate hard-coded constantsbrian m. carlson, May 2, 2018
  39. 20/42 dir: convert struct untracked_cache_dir to object_idbrian m. carlson, May 2, 2018
  40. 19/42 commit: convert uses of get_sha1_hex to get_oid_hexbrian m. carlson, May 2, 2018
  41. 08/42 packfile: abstract away hash constant valuesbrian m. carlson, May 2, 2018
  42. 04/42 packfile: remove unused member from struct pack_entrybrian m. carlson, May 2, 2018
  43. 03/42 Remove unused member in struct object_contextbrian m. carlson, May 2, 2018
  44. Duy NguyenMay 2, 2018
  45. brian m. carlsonMay 2, 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.