object: allow create_object to handle arbitrary repositories

Reviewed-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Stefan Beller committed May 8, 2018 at 12:37 UTC 341e45e46bba094ef1274957ef5891f43e91b344
2 files changed +7 -8
object.c
+6 -6
@@ -139,7 +139,7 @@ static void grow_object_hash(struct repository *r)
139 r->parsed_objects->obj_hash_size = new_hash_size;
140 }
141
142 -void *create_object_the_repository(const unsigned char *sha1, void *o)
142 +void *create_object(struct repository *r, const unsigned char *sha1, void *o)
143 {
144 struct object *obj = o;
145
@@ -147,12 +147,12 @@ void *create_object_the_repository(const unsigned char *sha1, void *o)
147 obj->flags = 0;
148 hashcpy(obj->oid.hash, sha1);
149
150 - if (the_repository->parsed_objects->obj_hash_size - 1 <= the_repository->parsed_objects->nr_objs * 2)
151 - grow_object_hash(the_repository);
150 + if (r->parsed_objects->obj_hash_size - 1 <= r->parsed_objects->nr_objs * 2)
151 + grow_object_hash(r);
152
153 - insert_obj_hash(obj, the_repository->parsed_objects->obj_hash,
154 - the_repository->parsed_objects->obj_hash_size);
155 - the_repository->parsed_objects->nr_objs++;
153 + insert_obj_hash(obj, r->parsed_objects->obj_hash,
154 + r->parsed_objects->obj_hash_size);
155 + r->parsed_objects->nr_objs++;
156 return obj;
157 }
158
object.h
+1 -2
@@ -93,8 +93,7 @@ extern struct object *get_indexed_object(unsigned int);
93 */
94 struct object *lookup_object(const unsigned char *sha1);
95
96 -#define create_object(r, s, o) create_object_##r(s, o)
97 -extern void *create_object_the_repository(const unsigned char *sha1, void *obj);
96 +extern void *create_object(struct repository *r, const unsigned char *sha1, void *obj);
97
98 void *object_as_type(struct object *obj, enum object_type type, int quiet);
99