object: convert create_object() to use object_id

There are no callers left of create_object() that aren't just passing us the "hash" member of a "struct object_id". Let's take the whole struct, which gets us closer to removing all raw sha1 variables. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Jun 20, 2019 at 03:41 UTC a378509e1c8d817b3abe42bd8b3c8aa2a6f9af8a
7 files changed +9 -13
blob.c
+1 -2
@@ -9,8 +9,7 @@ struct blob *lookup_blob(struct repository *r, const struct object_id *oid)
9 {
10 struct object *obj = lookup_object(r, oid);
11 if (!obj)
12 - return create_object(r, oid->hash,
13 - alloc_blob_node(r));
12 + return create_object(r, oid, alloc_blob_node(r));
13 return object_as_type(r, obj, OBJ_BLOB, 0);
14 }
15
commit-graph.c
+1 -1
@@ -1214,7 +1214,7 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g)
1214 hashcpy(cur_oid.hash, g->chunk_oid_lookup + g->hash_len * i);
1215
1216 graph_commit = lookup_commit(r, &cur_oid);
1217 - odb_commit = (struct commit *)create_object(r, cur_oid.hash, alloc_commit_node(r));
1217 + odb_commit = (struct commit *)create_object(r, &cur_oid, alloc_commit_node(r));
1218 if (parse_commit_internal(odb_commit, 0, 0)) {
1219 graph_report(_("failed to parse commit %s from object database for commit-graph"),
1220 oid_to_hex(&cur_oid));
commit.c
+1 -2
@@ -59,8 +59,7 @@ struct commit *lookup_commit(struct repository *r, const struct object_id *oid)
59 {
60 struct object *obj = lookup_object(r, oid);
61 if (!obj)
62 - return create_object(r, oid->hash,
63 - alloc_commit_node(r));
62 + return create_object(r, oid, alloc_commit_node(r));
63 return object_as_type(r, obj, OBJ_COMMIT, 0);
64 }
65
object.c
+3 -3
@@ -141,13 +141,13 @@ static void grow_object_hash(struct repository *r)
141 r->parsed_objects->obj_hash_size = new_hash_size;
142 }
143
144 -void *create_object(struct repository *r, const unsigned char *sha1, void *o)
144 +void *create_object(struct repository *r, const struct object_id *oid, void *o)
145 {
146 struct object *obj = o;
147
148 obj->parsed = 0;
149 obj->flags = 0;
150 - hashcpy(obj->oid.hash, sha1);
150 + oidcpy(&obj->oid, oid);
151
152 if (r->parsed_objects->obj_hash_size - 1 <= r->parsed_objects->nr_objs * 2)
153 grow_object_hash(r);
@@ -182,7 +182,7 @@ struct object *lookup_unknown_object(const struct object_id *oid)
182 {
183 struct object *obj = lookup_object(the_repository, oid);
184 if (!obj)
185 - obj = create_object(the_repository, oid->hash,
185 + obj = create_object(the_repository, oid,
186 alloc_object_node(the_repository));
187 return obj;
188 }
object.h
+1 -1
@@ -118,7 +118,7 @@ struct object *get_indexed_object(unsigned int);
118 */
119 struct object *lookup_object(struct repository *r, const struct object_id *oid);
120
121 -void *create_object(struct repository *r, const unsigned char *sha1, void *obj);
121 +void *create_object(struct repository *r, const struct object_id *oid, void *obj);
122
123 void *object_as_type(struct repository *r, struct object *obj, enum object_type type, int quiet);
124
tag.c
+1 -2
@@ -102,8 +102,7 @@ struct tag *lookup_tag(struct repository *r, const struct object_id *oid)
102 {
103 struct object *obj = lookup_object(r, oid);
104 if (!obj)
105 - return create_object(r, oid->hash,
106 - alloc_tag_node(r));
105 + return create_object(r, oid, alloc_tag_node(r));
106 return object_as_type(r, obj, OBJ_TAG, 0);
107 }
108
tree.c
+1 -2
@@ -199,8 +199,7 @@ struct tree *lookup_tree(struct repository *r, const struct object_id *oid)
199 {
200 struct object *obj = lookup_object(r, oid);
201 if (!obj)
202 - return create_object(r, oid->hash,
203 - alloc_tree_node(r));
202 + return create_object(r, oid, alloc_tree_node(r));
203 return object_as_type(r, obj, OBJ_TREE, 0);
204 }
205